/linux/drivers/s390/cio/ |
H A D | cio.h | 84 struct subchannel { struct 115 #define to_subchannel(n) container_of(n, struct subchannel, dev) argument 117 extern int cio_enable_subchannel(struct subchannel *, u32); 118 extern int cio_disable_subchannel (struct subchannel *); 119 extern int cio_cancel (struct subchannel *); 120 extern int cio_clear (struct subchannel *); 121 extern int cio_cancel_halt_clear(struct subchannel *, int *); 122 extern int cio_resume (struct subchannel *); 123 extern int cio_halt (struct subchannel *); 124 extern int cio_start (struct subchannel *, struct ccw1 *, __u8); [all …]
|
H A D | css.h | 80 struct subchannel; 97 void (*irq)(struct subchannel *); 98 int (*chp_event)(struct subchannel *, struct chp_link *, int); 99 int (*sch_event)(struct subchannel *, int); 100 int (*probe)(struct subchannel *); 101 void (*remove)(struct subchannel *); 102 void (*shutdown)(struct subchannel *); 111 extern void css_sch_device_unregister(struct subchannel *); 112 extern int css_register_subchannel(struct subchannel *); 113 extern struct subchannel *css_alloc_subchannel(struct subchannel_id, [all …]
|
H A D | eadm_sch.c | 60 static int eadm_subchannel_start(struct subchannel *sch, struct aob *aob) in eadm_subchannel_start() 87 static int eadm_subchannel_clear(struct subchannel *sch) in eadm_subchannel_clear() 102 struct subchannel *sch = private->sch; in eadm_subchannel_timeout() 112 static void eadm_subchannel_set_timeout(struct subchannel *sch, int expires) in eadm_subchannel_set_timeout() 122 static void eadm_subchannel_irq(struct subchannel *sch) in eadm_subchannel_irq() 157 static struct subchannel *eadm_get_idle_sch(void) in eadm_get_idle_sch() 160 struct subchannel *sch; in eadm_get_idle_sch() 185 struct subchannel *sch; in eadm_start_aob() 212 static int eadm_subchannel_probe(struct subchannel *sch) in eadm_subchannel_probe() 245 static void eadm_quiesce(struct subchannel *sch) in eadm_quiesce() [all …]
|
H A D | device.c | 138 static void io_subchannel_irq(struct subchannel *); 139 static int io_subchannel_probe(struct subchannel *); 140 static void io_subchannel_remove(struct subchannel *); 141 static void io_subchannel_shutdown(struct subchannel *); 142 static int io_subchannel_sch_event(struct subchannel *, int); 143 static int io_subchannel_chp_event(struct subchannel *, struct chp_link *, 261 static void io_subchannel_quiesce(struct subchannel *); 276 struct subchannel *sch; in ccw_device_set_offline() 546 struct subchannel *sch; in available_show() 571 struct subchannel *sch = to_subchannel(dev); in initiate_logging() [all …]
|
H A D | vfio_ccw_fsm.c | 21 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_io_helper() 81 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_do_halt() 120 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_do_clear() 157 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_notoper() 225 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_disabled_irq() 235 struct subchannel *sch = to_subchannel(p->vdev.dev->parent); in get_schid() 359 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_irq() 376 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_open() 397 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_close()
|
H A D | device_pgid.c | 36 struct subchannel *sch = to_subchannel(cdev->dev.parent); in verify_done() 75 struct subchannel *sch = to_subchannel(cdev->dev.parent); in nop_do() 107 struct subchannel *sch = to_subchannel(cdev->dev.parent); in nop_callback() 170 struct subchannel *sch = to_subchannel(cdev->dev.parent); in pgid_wipeout_start() 197 struct subchannel *sch = to_subchannel(cdev->dev.parent); in spid_do() 230 struct subchannel *sch = to_subchannel(cdev->dev.parent); in spid_callback() 335 struct subchannel *sch = to_subchannel(cdev->dev.parent); in pgid_to_donepm() 382 struct subchannel *sch = to_subchannel(cdev->dev.parent); in snid_done() 456 struct subchannel *sch = to_subchannel(cdev->dev.parent); in snid_do() 513 struct subchannel *sch = to_subchannel(cdev->dev.parent); in verify_start() [all …]
|
H A D | device_fsm.c | 41 struct subchannel *sch; in ccw_timeout_log() 126 struct subchannel *sch; in ccw_device_cancel_halt_clear() 167 __recover_lost_chpids(struct subchannel *sch, int old_lpm) in __recover_lost_chpids() 191 struct subchannel *sch; in ccw_device_recog_done() 310 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_oper_notify() 330 struct subchannel *sch; in ccw_device_done() 389 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_recognition() 430 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_report_path_events() 475 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_handle_broken_paths() 486 struct subchannel *sch; in ccw_device_verify_done() [all …]
|
H A D | device_ops.c | 139 struct subchannel *sch; in ccw_device_clear() 195 struct subchannel *sch; in ccw_device_start_timeout_key() 376 struct subchannel *sch; in ccw_device_halt() 411 struct subchannel *sch; in ccw_device_resume() 461 struct subchannel *sch; in ccw_device_get_path_mask() 481 struct subchannel *sch; in ccw_device_get_chp_desc() 500 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_get_util_str() 547 struct subchannel *sch; in ccw_device_tm_start_timeout_key() 650 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_get_mdc() 695 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_tm_intrg() [all …]
|
H A D | vfio_ccw_drv.c | 37 int vfio_ccw_sch_quiesce(struct subchannel *sch) in vfio_ccw_sch_quiesce() 131 static void vfio_ccw_sch_irq(struct subchannel *sch) in vfio_ccw_sch_irq() 162 static int vfio_ccw_sch_probe(struct subchannel *sch) in vfio_ccw_sch_probe() 209 static void vfio_ccw_sch_remove(struct subchannel *sch) in vfio_ccw_sch_remove() 223 static void vfio_ccw_sch_shutdown(struct subchannel *sch) in vfio_ccw_sch_shutdown() 245 static int vfio_ccw_sch_event(struct subchannel *sch, int process) in vfio_ccw_sch_event() 299 static int vfio_ccw_chp_event(struct subchannel *sch, in vfio_ccw_chp_event()
|
H A D | io_sch.h | 32 static inline struct ccw_device *sch_get_cdev(struct subchannel *sch) in sch_get_cdev() 38 static inline void sch_set_cdev(struct subchannel *sch, in sch_set_cdev() 132 struct subchannel *sch;
|
H A D | vfio_ccw_private.h | 130 int vfio_ccw_sch_quiesce(struct subchannel *sch); 172 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in vfio_ccw_fsm_event()
|
H A D | ccwreq.c | 78 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccwreq_do() 153 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_request_cancel() 329 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_request_timeout()
|
H A D | eadm_sch.h | 15 struct subchannel *sch;
|
H A D | vfio_ccw_cp.h | 46 union orb *cp_get_orb(struct channel_program *cp, struct subchannel *sch);
|
H A D | device_status.c | 31 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_msg_control_check() 56 struct subchannel *sch; in ccw_device_path_notoper() 314 struct subchannel *sch; in ccw_device_do_sense()
|
H A D | chp.h | 66 u8 chp_get_sch_opm(struct subchannel *sch);
|
H A D | device.h | 88 void io_subchannel_init_config(struct subchannel *sch);
|
H A D | chsc.c | 233 static int s390_subchannel_remove_chpid(struct subchannel *sch, void *data) in s390_subchannel_remove_chpid() 272 static int __s390_process_res_acc(struct subchannel *sch, void *data) in __s390_process_res_acc() 306 static int process_fces_event(struct subchannel *sch, void *data) in process_fces_event() 778 static void __s390_subchannel_vary_chpid(struct subchannel *sch, in __s390_subchannel_vary_chpid() 793 static int s390_subchannel_vary_chpid_off(struct subchannel *sch, void *data) in s390_subchannel_vary_chpid_off() 801 static int s390_subchannel_vary_chpid_on(struct subchannel *sch, void *data) in s390_subchannel_vary_chpid_on()
|
H A D | vfio_ccw_chp.c | 19 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in vfio_ccw_schib_region_read()
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-bus-css | 4 Description: Contains the subchannel type, as reported by the hardware. 5 This attribute is present for all subchannel types. 12 subchannel types. 18 subchannel, as reported by the channel subsystem 19 during subchannel recognition. 21 Note: This is an I/O-subchannel specific attribute. 32 Note: This is an I/O-subchannel specific attribute. 56 the driver must still match the subchannel type of the device.
|
/linux/Documentation/arch/s390/ |
H A D | driver-model.rst | 11 All ccw devices are accessed via a subchannel, this is reflected in the 24 In this example, device 0815 is accessed via subchannel 0 in subchannel set 0, 25 device 4711 via subchannel 1 in subchannel set 0, and subchannel 2 is a non-I/O 26 subchannel. Device 1234 is accessed via subchannel 0 in subchannel set 1. 28 The subchannel named 'defunct' does not represent any real subchannel on the 29 system; it is a pseudo subchannel where disconnected ccw devices are moved to 31 former subchannel. The ccw devices will be moved again to a proper subchannel 32 if they become operational again on that subchannel. 57 There is also some data exported on a per-subchannel basis (see under 221 distinct handlers (e.g. multi subchannel devices), this is a member of ccw_device
|
H A D | vfio-ccw.rst | 8 Here we describe the vfio support for I/O subchannel devices for 25 (the real I/O subchannel device) to do further address translation and 60 devices via the vfio mediated device framework and the subchannel device 115 - The vfio_ccw driver for the physical subchannel device. 116 This is an I/O subchannel driver for the real subchannel device. It 161 | | device | | | vfio_ccw.ko |<-> subchannel 168 1. vfio_ccw.ko drives the physical I/O subchannel, and registers the 170 When vfio_ccw probing the subchannel device, it registers device 172 under the device node in sysfs would be created for the subchannel 230 The subchannel was status pending or busy, or a request is already active. [all …]
|
H A D | cds.rst | 48 * The functions use a ccw_device instead of an irq (subchannel). 121 single device is uniquely identified to the system by a so called subchannel, 135 Up to kernel 2.4, Linux/390 used to provide interfaces via the IRQ (subchannel). 140 of those devices is uniquely defined by a so called subchannel by the ESA/390 141 channel subsystem. While the subchannel numbers are system generated, each 142 subchannel also takes a user defined attribute, the so called device number. 143 Both subchannel number and device number cannot exceed 65535. During sysfs 339 The irb->scsw.cstat field provides the (accumulated) subchannel status : 438 -ENODEV cdev invalid or not-operational subchannel 452 a halt subchannel (HSCH) I/O command. For those purposes the ccw_device_halt() [all …]
|
/linux/arch/s390/boot/ |
H A D | head.S | 43 lgh %r1,__LC_SUBCHANNEL_ID # test if subchannel number 45 llgf %r1,__LC_SUBCHANNEL_ID # load ipl subchannel number 114 c %r1,__LC_SUBCHANNEL_ID # compare subchannel number 157 c %r1,__LC_SUBCHANNEL_ID # compare subchannel number
|
/linux/Documentation/virt/kvm/s390/ |
H A D | s390-diag.rst | 64 General register 2 contains a subchannel-identification word denoting 65 the subchannel of the virtio-ccw proxy device to be notified.
|