/linux-6.6.21/drivers/s390/cio/ |
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 …]
|
D | css.h | 71 struct subchannel; 88 void (*irq)(struct subchannel *); 89 int (*chp_event)(struct subchannel *, struct chp_link *, int); 90 int (*sch_event)(struct subchannel *, int); 91 int (*probe)(struct subchannel *); 92 void (*remove)(struct subchannel *); 93 void (*shutdown)(struct subchannel *); 102 extern void css_sch_device_unregister(struct subchannel *); 103 extern int css_register_subchannel(struct subchannel *); 104 extern struct subchannel *css_alloc_subchannel(struct subchannel_id, [all …]
|
D | cio.c | 88 int cio_set_options(struct subchannel *sch, int flags) in cio_set_options() 99 cio_start_handle_notoper(struct subchannel *sch, __u8 lpm) in cio_start_handle_notoper() 123 cio_start_key (struct subchannel *sch, /* subchannel structure */ in cio_start_key() 176 cio_start (struct subchannel *sch, struct ccw1 *cpa, __u8 lpm) in cio_start() 186 cio_resume (struct subchannel *sch) in cio_resume() 219 cio_halt(struct subchannel *sch) in cio_halt() 253 cio_clear(struct subchannel *sch) in cio_clear() 288 cio_cancel (struct subchannel *sch) in cio_cancel() 334 int cio_cancel_halt_clear(struct subchannel *sch, int *iretry) in cio_cancel_halt_clear() 379 static void cio_apply_config(struct subchannel *sch, struct schib *schib) in cio_apply_config() [all …]
|
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 …]
|
D | css.c | 65 int (*fn_known_sch)(struct subchannel *, void *); 71 struct subchannel *sch = to_subchannel(dev); in call_fn_known_sch() 95 struct subchannel *sch; in call_fn_all_sch() 111 int for_each_subchannel_staged(int (*fn_known)(struct subchannel *, void *), in for_each_subchannel_staged() argument 151 static int css_sch_create_locks(struct subchannel *sch) in css_sch_create_locks() 165 struct subchannel *sch = to_subchannel(dev); in css_subchannel_release() 204 struct subchannel *css_alloc_subchannel(struct subchannel_id schid, in css_alloc_subchannel() 207 struct subchannel *sch; in css_alloc_subchannel() 254 static int css_sch_device_register(struct subchannel *sch) in css_sch_device_register() 270 void css_sch_device_unregister(struct subchannel *sch) in css_sch_device_unregister() [all …]
|
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() 543 struct subchannel *sch; in available_show() 568 struct subchannel *sch = to_subchannel(dev); in initiate_logging() [all …]
|
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()
|
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 …]
|
D | device_ops.c | 139 struct subchannel *sch; in ccw_device_clear() 195 struct subchannel *sch; in ccw_device_start_timeout_key() 372 struct subchannel *sch; in ccw_device_halt() 407 struct subchannel *sch; in ccw_device_resume() 457 struct subchannel *sch; in ccw_device_get_path_mask() 477 struct subchannel *sch; in ccw_device_get_chp_desc() 496 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_get_util_str() 543 struct subchannel *sch; in ccw_device_tm_start_timeout_key() 642 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_get_mdc() 687 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_tm_intrg() [all …]
|
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 …]
|
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()
|
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;
|
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()
|
D | chsc_sch.c | 54 static void chsc_subchannel_irq(struct subchannel *sch) in chsc_subchannel_irq() 77 static int chsc_subchannel_probe(struct subchannel *sch) in chsc_subchannel_probe() 99 static void chsc_subchannel_remove(struct subchannel *sch) in chsc_subchannel_remove() 113 static void chsc_subchannel_shutdown(struct subchannel *sch) in chsc_subchannel_shutdown() 174 struct subchannel *sch = to_subchannel(dev); in chsc_subchannel_match_next_free() 179 static struct subchannel *chsc_get_next_subchannel(struct subchannel *sch) in chsc_get_next_subchannel() 208 struct subchannel *sch = NULL; in chsc_async()
|
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()
|
D | eadm_sch.h | 15 struct subchannel *sch;
|
D | vfio_ccw_cp.h | 46 union orb *cp_get_orb(struct channel_program *cp, struct subchannel *sch);
|
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()
|
D | chp.h | 64 u8 chp_get_sch_opm(struct subchannel *sch);
|
/linux-6.6.21/Documentation/ABI/testing/ |
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-6.6.21/Documentation/arch/s390/ |
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
|
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 …]
|
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-6.6.21/arch/s390/boot/ |
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-6.6.21/Documentation/virt/kvm/s390/ |
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.
|