#include <linux/module.h>#include <linux/errno.h>#include <linux/kernel_stat.h>#include <linux/signal.h>#include <linux/sched.h>#include <linux/interrupt.h>#include <linux/malloc.h>#include <linux/string.h>#include <linux/smp.h>#include <linux/tasks.h>#include <linux/smp_lock.h>#include <linux/init.h>#include <asm/system.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/bitops.h>#include <asm/smp.h>#include <asm/pgtable.h>#include <asm/delay.h>#include <asm/processor.h>#include <asm/lowcore.h>#include <asm/s390io.h>#include <asm/s390dyn.h>#include <asm/s390mach.h>Include dependency graph for s390io.c:

Go to the source code of this file.
Defines | |
| #define | CONFIG_DEBUG_CRW |
| #define | REIPL_DEVID_MAGIC 0x87654321 |
| #define | PGMCHK_OPERAND_EXC 0x15 |
Functions | |
| int | do_none (unsigned int irq, int cpu, struct pt_regs *regs) |
| int | enable_none (unsigned int irq) |
| int | disable_none (unsigned int irq) |
| static void | init_IRQ_handler (int irq, void *dev_id, struct pt_regs *regs) |
| static int | s390_setup_irq (unsigned int irq, struct s390_irqaction *new) |
| static void | s390_process_subchannels (void) |
| static void | s390_device_recognition_all (void) |
| static void | s390_device_recognition_irq (int irq) |
| static int | s390_validate_subchannel (int irq, int enable) |
| static int | s390_SenseID (int irq, senseid_t *sid, __u8 lpm) |
| static int | s390_SetPGID (int irq, __u8 lpm, pgid_t *pgid) |
| static int | s390_SensePGID (int irq, __u8 lpm, pgid_t *pgid) |
| static int | s390_process_IRQ (unsigned int irq) |
| static int | disable_subchannel (unsigned int irq) |
| int | s390_DevicePathVerification (int irq, __u8 domask) |
| void | tod_wait (unsigned long usecs) |
| asmlinkage void | do_IRQ (struct pt_regs regs, unsigned int irq, __u32 s390_intparm) |
| static void * | alloc_bootmem (unsigned long size) |
| static int | free_bootmem (unsigned long buffer, unsigned long size) |
| void | s390_displayhex (char *str, void *ptr, s32 cnt) |
| int | s390_request_irq_special (int irq, io_handler_func_t io_handler, not_oper_handler_func_t not_oper_handler, unsigned long irqflags, const char *devname, devstat_t *dev_id) |
| int | s390_request_irq (unsigned int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char *devname, void *dev_id) |
| void | s390_free_irq (unsigned int irq, void *dev_id) |
| int | disable_irq (unsigned int irq) |
| int | enable_irq (unsigned int irq) |
| static int | enable_subchannel (unsigned int irq) |
| unsigned long | s390_init_IRQ (unsigned long memstart) |
| int | s390_start_IO (int irq, ccw1_t *cpa, unsigned long user_intparm, __u8 lpm, unsigned long flag) |
| int | do_IO (int irq, ccw1_t *cpa, unsigned long user_intparm, __u8 lpm, unsigned long flag) |
| int | resume_IO (int irq) |
| int | halt_IO (int irq, unsigned long user_intparm, unsigned long flag) |
| int | clear_IO (int irq, unsigned long user_intparm, unsigned long flag) |
| int | set_cons_dev (int irq) |
| int | reset_cons_dev (int irq) |
| int | wait_cons_dev (int irq) |
| int | enable_cpu_sync_isc (int irq) |
| int | disable_cpu_sync_isc (int irq) |
| void | VM_virtual_device_info (unsigned int devno, senseid_t *ps) |
| int | read_dev_chars (int irq, void **buffer, int length) |
| int | read_conf_data (int irq, void **buffer, int *length, __u8 lpm) |
| int | get_dev_info (int irq, dev_info_t *pdi) |
| static int __inline__ | get_next_available_irq (ioinfo_t *pi) |
| int | get_irq_first (void) |
| int | get_irq_next (int irq) |
| int | get_dev_info_by_irq (int irq, dev_info_t *pdi) |
| int | get_dev_info_by_devno (unsigned int devno, dev_info_t *pdi) |
| int | get_irq_by_devno (unsigned int devno) |
| unsigned int | get_devno_by_irq (int irq) |
| static int __inline__ | s390_SetMultiPath (int irq) |
| void | s390_do_crw_pending (crwe_t *pcrwe) |
| void | do_reipl (int) |
| void | reipl (int sch) |
| EXPORT_SYMBOL (halt_IO) | |
| EXPORT_SYMBOL (clear_IO) | |
| EXPORT_SYMBOL (do_IO) | |
| EXPORT_SYMBOL (resume_IO) | |
| EXPORT_SYMBOL (ioinfo) | |
| EXPORT_SYMBOL (get_dev_info_by_irq) | |
| EXPORT_SYMBOL (get_dev_info_by_devno) | |
| EXPORT_SYMBOL (get_irq_by_devno) | |
| EXPORT_SYMBOL (get_devno_by_irq) | |
| EXPORT_SYMBOL (get_irq_first) | |
| EXPORT_SYMBOL (get_irq_next) | |
| EXPORT_SYMBOL (read_conf_data) | |
| EXPORT_SYMBOL (read_dev_chars) | |
| EXPORT_SYMBOL (s390_request_irq_special) | |
Variables | |
| s390_irqaction | init_IRQ_action |
| unsigned int | highest_subchannel |
| ioinfo_t * | ioinfo_head = NULL |
| ioinfo_t * | ioinfo_tail = NULL |
| ioinfo_t * | ioinfo [__MAX_SUBCHANNELS] |
| static spinlock_t | sync_isc = SPIN_LOCK_UNLOCKED |
| static psw_t | io_sync_wait |
| static int | cons_dev = -1 |
| static int | init_IRQ_complete = 0 |
| static schib_t | init_schib |
| static irb_t | init_irb |
| static __u64 | irq_IPL_TOD |
| hw_interrupt_type | no_irq_type |
| static unsigned long | memory_start = 0 |
|
|
|
|
|
Referenced by s390_validate_subchannel(). |
|
|
Definition at line 43 of file s390io.c. Referenced by reipl(), and s390_free_irq(). |
|
|
Definition at line 684 of file s390io.c. References memory_start, and ret. Referenced by read_conf_data(), and s390_validate_subchannel(). |
|
||||||||||||||||
|
Definition at line 1659 of file s390io.c. References __LC_IO_INT_PARM, __LC_SUBCHANNEL_NR, __LC_SYNC_IO_WORD, _IO_PSW_MASK, _PSW_ACC_REG_MODE, _PSW_HOME_SPACE_MODE, _PSW_IO_WAIT, _PSW_PRIM_SPACE_MODE, _PSW_SEC_SPACE_MODE, irqdesc::action, psw_t::addr, devstat_t::cstat, irqaction::dev_id, _ioinfo::devstat, DEVSTAT_CLEAR_FUNCTION, DEVSTAT_FINAL_STATUS, DEVSTAT_NOT_OPER, DEVSTAT_STATUS_PENDING, disable_cpu_sync_isc(), devstat_t::dstat, EBUSY, EIO, enable_cpu_sync_isc(), ENODEV, FIX_PSW, devstat_t::flag, _ioinfo::flags, highest_subchannel, _lowcore::io_new_psw, irq_desc, devstat_t::lpum, psw_t::mask, memcpy, memset, NULL, panic(), ret, s390_process_IRQ(), devstat_t::scnt, spin_lock_irqsave, spin_unlock_irqrestore, _ioinfo::u_intparm, and _ioinfo::ui. Referenced by s390_free_irq(). Here is the call graph for this function: ![]() |
|
|
Definition at line 2985 of file s390io.c. References EBUSY, EINVAL, EIO, ENODEV, highest_subchannel, rc, retry, s390_process_IRQ(), _ioinfo::schib, and _ioinfo::ui. Referenced by clear_IO(), halt_IO(), s390_device_recognition_irq(), and s390_start_IO(). Here is the call graph for this function: ![]() |
|
|
Definition at line 370 of file s390io.c. References hw_interrupt_type::disable, ENODEV, irq_desc_t::handler, _ioinfo::irq_desc, IRQ_DISABLED, ret, irq_desc_t::status, and synchronize_irq. |
|
|
Definition at line 67 of file s390io.c. References ENODEV. |
|
|
Definition at line 523 of file s390io.c. References _ioinfo::devno, EBUSY, EIO, ENODEV, _ioinfo::flags, highest_subchannel, KERN_CRIT, printk, ret, retry, s390_process_IRQ(), _ioinfo::schib, and _ioinfo::ui. Referenced by s390_free_irq(), and s390_setup_irq(). Here is the call graph for this function: ![]() |
|
||||||||||||||||||||||||
|
Definition at line 1238 of file s390io.c. References EBUSY, ENODEV, _ioinfo::flags, highest_subchannel, _ioinfo::qcpa, _ioinfo::qflag, _ioinfo::qintparm, _ioinfo::qlpm, ret, s390_start_IO(), and _ioinfo::ui. Referenced by ctc_irq_bh(), ctc_irq_handler(), ctc_read_retry(), ctc_tx(), ctc_write_retry(), dasd_start_IO(), lcs_doio_func(), raw3215_start_io(), tape34xx_error_recovery_do_retry(), tape_ioctl(), tape_mtioctop(), tape_read(), tape_release(), tape_write(), tapeblock_exec_IO(), and tapeblock_mediumdetect(). Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
Definition at line 2907 of file s390io.c. References count, EBUSY, EINVAL, EIO, ENODEV, highest_subchannel, rc, s390_process_IRQ(), _ioinfo::schib, and _ioinfo::ui. Referenced by clear_IO(), halt_IO(), s390_device_recognition_irq(), and s390_start_IO(). Here is the call graph for this function: ![]() |
|
|
Definition at line 393 of file s390io.c. References hw_interrupt_type::enable, ENODEV, irq_desc_t::handler, _ioinfo::irq_desc, ret, and irq_desc_t::status. |
|
|
Definition at line 66 of file s390io.c. References ENODEV. |
|
|
Definition at line 414 of file s390io.c. References cons_dev, _ioinfo::devno, EBUSY, EIO, ENODEV, _ioinfo::flags, highest_subchannel, KERN_CRIT, printk, ret, retry, s390_process_IRQ(), _ioinfo::schib, tod_wait(), and _ioinfo::ui. Referenced by s390_setup_irq(). Here is the call graph for this function: ![]() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
Definition at line 693 of file s390io.c. References EINVAL, memory_start, and ret. Referenced by read_conf_data(), and s390_device_recognition_irq(). |
|
||||||||||||
|
Definition at line 3691 of file s390io.c. References get_dev_info_by_irq(). Referenced by raw3215_find_dev(). Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 3847 of file s390io.c. References DEVSTAT_DEVICE_OWNED, DEVSTAT_NOT_OPER, DEVSTAT_UNKNOWN_DEV, EINVAL, ENODEV, _ioinfo::flags, highest_subchannel, i, memcpy, memset, NULL, rc, _ioinfo::senseid, and _ioinfo::ui. Referenced by lcs_probe(). |
|
||||||||||||
|
Definition at line 3791 of file s390io.c. References DEVSTAT_DEVICE_OWNED, DEVSTAT_NOT_OPER, DEVSTAT_UNKNOWN_DEV, EINVAL, ENODEV, _ioinfo::flags, highest_subchannel, memcpy, memset, NULL, _ioinfo::schib, _ioinfo::senseid, and _ioinfo::ui. Referenced by channel_scan(), dasd_set_device_level(), get_dev_info(), lcs_probe(), tape_init(), tape_oper_handler(), tape_parm_parse(), and tape_setup(). |
|
|
Definition at line 3945 of file s390io.c. References highest_subchannel, and _ioinfo::schib. Referenced by dasd_init(), dasd_oper_handler(), and dasd_set_device_level(). |
|
|
Definition at line 3920 of file s390io.c. References highest_subchannel, i, rc, and _ioinfo::schib. Referenced by __initfunc(), cleanup_dasd(), ctc_probe(), and dasd_init(). |
|
|
Definition at line 3728 of file s390io.c. References ENODEV, get_next_available_irq(), _ioinfo::irq, _ioinfo::next, and _ioinfo::ui. Referenced by dasd_init(), lcs_probe(), raw3215_find_dev(), tape_init(), and tape_parm_parse(). Here is the call graph for this function: ![]() |
|
|
Definition at line 3758 of file s390io.c. References EINVAL, ENODEV, get_next_available_irq(), _ioinfo::irq, _ioinfo::next, and next. Referenced by dasd_init(), lcs_probe(), raw3215_find_dev(), tape_init(), and tape_parm_parse(). Here is the call graph for this function: ![]() |
|
|
Definition at line 3696 of file s390io.c. References ENODEV, _ioinfo::irq, _ioinfo::next, NULL, TRUE, and _ioinfo::ui. Referenced by get_irq_first(), and get_irq_next(). |
|
||||||||||||||||
|
Definition at line 1375 of file s390io.c. References __LC_IO_INT_PARM, __LC_SUBCHANNEL_NR, __LC_SYNC_IO_WORD, _IO_PSW_MASK, _PSW_ACC_REG_MODE, _PSW_HOME_SPACE_MODE, _PSW_IO_WAIT, _PSW_PRIM_SPACE_MODE, _PSW_SEC_SPACE_MODE, irqdesc::action, psw_t::addr, devstat_t::cstat, irqaction::dev_id, _ioinfo::devstat, DEVSTAT_FINAL_STATUS, DEVSTAT_HALT_FUNCTION, DEVSTAT_NOT_OPER, DEVSTAT_STATUS_PENDING, disable_cpu_sync_isc(), devstat_t::dstat, EBUSY, EIO, enable_cpu_sync_isc(), ENODEV, FIX_PSW, devstat_t::flag, _ioinfo::flags, highest_subchannel, _lowcore::io_new_psw, irq_desc, devstat_t::lpum, psw_t::mask, memcpy, memset, NULL, panic(), ret, s390_process_IRQ(), devstat_t::scnt, spin_lock_irqsave, spin_unlock_irqrestore, _ioinfo::u_intparm, and _ioinfo::ui. Referenced by ctc_open(), ctc_release(), dasd_do_chanq(), lcs_hsch_func(), s390_free_irq(), and s390_start_IO(). Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
Definition at line 762 of file s390io.c. Referenced by read_conf_data(), read_dev_chars(), s390_device_recognition_irq(), s390_SenseID(), s390_SensePGID(), and s390_SetPGID(). |
|
||||||||||||||||||||
|
Definition at line 3478 of file s390io.c. References __cli, __restore_flags, __save_flags, irq_desc_t::action, alloc_bootmem(), ccw1_t, CCW_FLAG_SLI, irqaction::dev_id, DEVSTAT_FLAG_SENSE_AVAIL, DEVSTAT_NOT_OPER, DEVSTAT_STATUS_PENDING, EINVAL, EIO, ENODEV, ENOMEM, EOPNOTSUPP, devstat_t::flag, _ioinfo::flags, found, free_bootmem(), free_irq(), highest_subchannel, init_IRQ_complete, init_IRQ_handler(), _ioinfo::irq_desc, kfree(), kmalloc(), memset, NULL, request_irq(), ret, retry, s390_start_IO(), _ioinfo::senseccw, _ioinfo::senseid, and virt_to_phys. Referenced by dasd_eckd_check_characteristics(), and s390_device_recognition_irq(). Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
Definition at line 3343 of file s390io.c. References __cli, __restore_flags, __save_flags, irq_desc_t::action, irqdesc::action, ccw1_t, CCW_CMD_RDC, CCW_FLAG_SLI, irqaction::dev_id, DEVSTAT_STATUS_PENDING, EBUSY, EINVAL, ENODEV, ENOMEM, _ioinfo::flags, free_irq(), highest_subchannel, init_IRQ_handler(), _ioinfo::irq_desc, irq_desc, kmalloc(), memset, request_irq(), ret, retry, s390_start_IO(), _ioinfo::senseccw, and virt_to_phys. Referenced by dasd_eckd_check_characteristics(), and dasd_fba_check_characteristics(). Here is the call graph for this function: ![]() |
|
|
Definition at line 5580 of file s390io.c. References do_reipl, free_irq(), highest_subchannel, i, REIPL_DEVID_MAGIC, and x10000. Referenced by do_machine_restart(), and machine_restart(). Here is the call graph for this function: ![]() |
|
|
Definition at line 2788 of file s390io.c. References cons_dev, _ioinfo::devstat, DEVSTAT_NOT_OPER, EBUSY, EIO, ENODEV, devstat_t::flag, highest_subchannel, rc, and _ioinfo::schib. |
|
|
Definition at line 1310 of file s390io.c. References EBUSY, EINVAL, ENODEV, ENOTCONN, _ioinfo::flags, highest_subchannel, ret, s390_process_IRQ(), and _ioinfo::ui. Referenced by lcs_interrupt_resume_read(), and lcs_resume_write(). Here is the call graph for this function: ![]() |
|
|
Definition at line 4081 of file s390io.c. References highest_subchannel, and s390_device_recognition_irq(). Referenced by s390_init_IRQ(). Here is the call graph for this function: ![]() |
|
|
Definition at line 3976 of file s390io.c. References disable_cpu_sync_isc(), enable_cpu_sync_isc(), free_bootmem(), free_irq(), init_IRQ_complete, init_IRQ_handler(), kfree(), memset, read_conf_data(), request_irq(), ret, s390_displayhex(), s390_SenseID(), spin_lock_irqsave, spin_unlock_irqrestore, sprintf(), _ioinfo::ui, x80, and xff. Referenced by s390_device_recognition_all(), and s390_do_crw_pending(). Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 4839 of file s390io.c. References __LC_CPUADDR, __LC_CPUID, ENODEV, EOPNOTSUPP, first, _ioinfo::flags, i, irq_IPL_TOD, memcpy, _ioinfo::opm, _ioinfo::pgid, printk, ret, s390_SensePGID(), s390_SetPGID(), _ioinfo::schib, _ioinfo::ui, and x80. Referenced by s390_request_irq_special(). Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
Definition at line 108 of file s390io.c. References printk, s32, and u32. Referenced by s390_device_recognition_irq(), s390_process_IRQ(), and s390_start_IO(). |
|
|
Definition at line 5390 of file s390io.c. References irqdesc::action, _crwe::crw, CRW_RSC_CONFIG, CRW_RSC_CPATH, CRW_RSC_CSS, CRW_RSC_MONITOR, CRW_RSC_SCH, _crwe::crwe_next, irqaction::dev_id, _ioinfo::devno, DEVSTAT_DEVICE_GONE, DEVSTAT_REVALIDATE, _ioinfo::flags, free_irq(), highest_subchannel, irq_desc, lock, _ioinfo::nopfunc, NULL, _devreg::oper_func, printk, _crw::rsc, _crw::rsid, s390_device_recognition_irq(), s390_search_devreg(), s390_validate_subchannel(), and _ioinfo::ui. Referenced by s390_machine_check_handler(). Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 226 of file s390io.c. References irq_desc_t::action, irqdesc::action, |