/kernel/linux/linux-5.10/drivers/s390/cio/ |
H A D | css.h | 63 struct subchannel; 67 * @subchannel_type: subchannel type supported by this driver 71 * @sch_event: called for events affecting the subchannel 85 void (*irq)(struct subchannel *); 86 int (*chp_event)(struct subchannel *, struct chp_link *, int); 87 int (*sch_event)(struct subchannel *, int); 88 int (*probe)(struct subchannel *); 89 int (*remove)(struct subchannel *); 90 void (*shutdown)(struct subchannel *); 91 int (*prepare) (struct subchannel *); [all...] |
H A D | cio.h | 39 u32 st : 3; /* subchannel type */ 75 * subchannel information block 79 union scsw scsw; /* subchannel status word */ 94 /* subchannel data structure used by I/O subroutines */ 95 struct subchannel { struct 97 spinlock_t *lock; /* subchannel lock */ 104 } st; /* subchannel type */ 108 struct schib schib; /* subchannel information block */ 110 struct chsc_ssd_info ssd_info; /* subchannel description */ 122 #define to_subchannel(n) container_of(n, struct subchannel, de [all...] |
H A D | eadm_sch.c | 59 static int eadm_subchannel_start(struct subchannel *sch, struct aob *aob) in eadm_subchannel_start() 86 static int eadm_subchannel_clear(struct subchannel *sch) in eadm_subchannel_clear() 101 struct subchannel *sch = private->sch; in eadm_subchannel_timeout() 111 static void eadm_subchannel_set_timeout(struct subchannel *sch, int expires) in eadm_subchannel_set_timeout() 127 static void eadm_subchannel_irq(struct subchannel *sch) in eadm_subchannel_irq() 162 static struct subchannel *eadm_get_idle_sch(void) in eadm_get_idle_sch() 165 struct subchannel *sch; in eadm_get_idle_sch() 190 struct subchannel *sch; in eadm_start_aob() 204 /* Handle start subchannel failure. */ in eadm_start_aob() 217 static int eadm_subchannel_probe(struct subchannel *sc [all...] |
H A 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() 109 "subchannel 0.%x.%04x!\n", sch->schid.ssid, 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() 230 * Issue "Halt subchannel" and process condition code in cio_halt() 253 cio_clear(struct subchannel *sc [all...] |
H A D | css.c | 66 int (*fn_known_sch)(struct subchannel *, void *); 72 struct subchannel *sch = to_subchannel(dev); in call_fn_known_sch() 96 struct subchannel *sch; in call_fn_all_sch() 112 int for_each_subchannel_staged(int (*fn_known)(struct subchannel *, void *), in for_each_subchannel_staged() 152 static int css_sch_create_locks(struct subchannel *sch) in css_sch_create_locks() 166 struct subchannel *sch = to_subchannel(dev); in css_subchannel_release() 187 "at devno %04X, subchannel set %x\n", in css_validate_subchannel() 199 CIO_MSG_EVENT(4, "Subchannel 0.%x.%04x reports subchannel type %04X\n", in css_validate_subchannel() 205 struct subchannel *css_alloc_subchannel(struct subchannel_id schid, in css_alloc_subchannel() 208 struct subchannel *sc in css_alloc_subchannel() [all...] |
H A D | device.c | 138 static void io_subchannel_irq(struct subchannel *); 139 static int io_subchannel_probe(struct subchannel *); 140 static int 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 *, 152 static int io_subchannel_prepare(struct subchannel *sch) in io_subchannel_prepare() 272 static void io_subchannel_quiesce(struct subchannel *); 287 struct subchannel *sch; in ccw_device_set_offline() 554 struct subchannel *sc in available_show() [all...] |
H A D | device_pgid.c | 35 struct subchannel *sch = to_subchannel(cdev->dev.parent); in verify_done() 74 struct subchannel *sch = to_subchannel(cdev->dev.parent); in nop_do() 95 /* Only subchannel status might indicate a path error. */ in nop_filter() 106 struct subchannel *sch = to_subchannel(cdev->dev.parent); in nop_callback() 169 struct subchannel *sch = to_subchannel(cdev->dev.parent); in pgid_wipeout_start() 196 struct subchannel *sch = to_subchannel(cdev->dev.parent); in spid_do() 229 struct subchannel *sch = to_subchannel(cdev->dev.parent); in spid_callback() 334 struct subchannel *sch = to_subchannel(cdev->dev.parent); in pgid_to_donepm() 381 struct subchannel *sch = to_subchannel(cdev->dev.parent); in snid_done() 455 struct subchannel *sc in snid_do() [all...] |
H A D | vfio_ccw_private.h | 70 * @sch: pointer to the subchannel 78 * @region: additional regions for other subchannel operations 90 struct subchannel *sch; 115 extern int vfio_ccw_mdev_reg(struct subchannel *sch); 116 extern void vfio_ccw_mdev_unreg(struct subchannel *sch); 118 extern int vfio_ccw_sch_quiesce(struct subchannel *sch);
|
H A D | device_ops.c | 129 * ccw_device_clear() calls csch on @cdev's subchannel. 139 struct subchannel *sch; in ccw_device_clear() 195 struct subchannel *sch; in ccw_device_start_timeout_key() 358 * ccw_device_halt() calls hsch on @cdev's subchannel. 372 struct subchannel *sch; in ccw_device_halt() 396 * ccw_device_resume() calls rsch on @cdev's subchannel. 407 struct subchannel *sch; in ccw_device_resume() 452 * %0 if no subchannel for the device is available, 453 * else the mask of currently available paths for the ccw device's subchannel. 457 struct subchannel *sc in ccw_device_get_path_mask() [all...] |
H A D | device_fsm.c | 40 struct subchannel *sch; in ccw_timeout_log() 57 printk(KERN_WARNING "cio: subchannel bus id: %s\n", in ccw_timeout_log() 59 printk(KERN_WARNING "cio: subchannel lpm: %02x, opm: %02x, " in ccw_timeout_log() 85 printk(KERN_WARNING "cio: store subchannel returned: cc=%d\n", cc); in ccw_timeout_log() 131 struct subchannel *sch; in ccw_device_cancel_halt_clear() 172 __recover_lost_chpids(struct subchannel *sch, int old_lpm) in __recover_lost_chpids() 196 struct subchannel *sch; in ccw_device_recog_done() 321 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_oper_notify() 341 struct subchannel *sch; in ccw_device_done() 357 CIO_MSG_EVENT(0, "Boxed device %04x on subchannel in ccw_device_done() [all...] |
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_fsm.c | 20 struct subchannel *sch; in fsm_io_helper() 82 struct subchannel *sch; in fsm_do_halt() 123 struct subchannel *sch; in fsm_do_clear() 162 struct subchannel *sch = private->sch; in fsm_notoper() 223 struct subchannel *sch = private->sch; in fsm_disabled_irq()
|
H A D | vfio_ccw_drv.c | 39 int vfio_ccw_sch_quiesce(struct subchannel *sch) in vfio_ccw_sch_quiesce() 58 pr_err("vfio_ccw: could not quiesce subchannel 0.%x.%04x!\n", in vfio_ccw_sch_quiesce() 132 static void vfio_ccw_sch_irq(struct subchannel *sch) in vfio_ccw_sch_irq() 152 static int vfio_ccw_sch_probe(struct subchannel *sch) in vfio_ccw_sch_probe() 222 VFIO_CCW_MSG_EVENT(4, "bound to subchannel %x.%x.%04x\n", in vfio_ccw_sch_probe() 237 static int vfio_ccw_sch_remove(struct subchannel *sch) in vfio_ccw_sch_remove() 257 VFIO_CCW_MSG_EVENT(4, "unbound from subchannel %x.%x.%04x\n", in vfio_ccw_sch_remove() 263 static void vfio_ccw_sch_shutdown(struct subchannel *sch) in vfio_ccw_sch_shutdown() 269 * vfio_ccw_sch_event - process subchannel event 270 * @sch: subchannel [all...] |
/kernel/linux/linux-6.6/drivers/s390/cio/ |
H A D | cio.h | 40 u32 st : 3; /* subchannel type */ 64 * subchannel information block 68 union scsw scsw; /* subchannel status word */ 83 /* subchannel data structure used by I/O subroutines */ 84 struct subchannel { struct 86 spinlock_t *lock; /* subchannel lock */ 93 } st; /* subchannel type */ 97 struct schib schib; /* subchannel information block */ 99 struct chsc_ssd_info ssd_info; /* subchannel description */ 115 #define to_subchannel(n) container_of(n, struct subchannel, de [all...] |
H A D | css.h | 71 struct subchannel; 75 * @subchannel_type: subchannel type supported by this driver 79 * @sch_event: called for events affecting the 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 *); [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() 199 /* Handle start subchannel failure. */ in eadm_start_aob() 212 static int eadm_subchannel_probe(struct subchannel *sc [all...] |
H A 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() 109 "subchannel 0.%x.%04x!\n", sch->schid.ssid, 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() 230 * Issue "Halt subchannel" and process condition code in cio_halt() 253 cio_clear(struct subchannel *sc [all...] |
H A 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() 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() 186 "at devno %04X, subchannel set %x\n", in css_validate_subchannel() 198 CIO_MSG_EVENT(4, "Subchannel 0.%x.%04x reports subchannel type %04X\n", in css_validate_subchannel() 204 struct subchannel *css_alloc_subchannel(struct subchannel_id schid, in css_alloc_subchannel() 207 struct subchannel *sc in css_alloc_subchannel() [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() 543 struct subchannel *sch; in available_show() 568 struct subchannel *sc in initiate_logging() [all...] |
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() 96 /* Only subchannel status might indicate a path error. */ in nop_filter() 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 *sc in snid_do() [all...] |
H A D | device_fsm.c | 41 struct subchannel *sch; in ccw_timeout_log() 58 printk(KERN_WARNING "cio: subchannel bus id: %s\n", in ccw_timeout_log() 60 printk(KERN_WARNING "cio: subchannel lpm: %02x, opm: %02x, " in ccw_timeout_log() 86 printk(KERN_WARNING "cio: store subchannel returned: cc=%d\n", cc); 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() 346 CIO_MSG_EVENT(0, "Boxed device %04x on subchannel in ccw_device_done() [all...] |
H A D | device_ops.c | 129 * ccw_device_clear() calls csch on @cdev's subchannel. 139 struct subchannel *sch; in ccw_device_clear() 195 struct subchannel *sch; in ccw_device_start_timeout_key() 358 * ccw_device_halt() calls hsch on @cdev's subchannel. 372 struct subchannel *sch; in ccw_device_halt() 396 * ccw_device_resume() calls rsch on @cdev's subchannel. 407 struct subchannel *sch; in ccw_device_resume() 452 * %0 if no subchannel for the device is available, 453 * else the mask of currently available paths for the ccw device's subchannel. 457 struct subchannel *sc in ccw_device_get_path_mask() [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 | 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_drv.c | 37 int vfio_ccw_sch_quiesce(struct subchannel *sch) in vfio_ccw_sch_quiesce() 58 pr_err("vfio_ccw: could not quiesce subchannel 0.%x.%04x!\n", in vfio_ccw_sch_quiesce() 131 static void vfio_ccw_sch_irq(struct subchannel *sch) in vfio_ccw_sch_irq() 137 * The subchannel should still be disabled at this point, in vfio_ccw_sch_irq() 140 * disable the subchannel again. in vfio_ccw_sch_irq() 162 static int vfio_ccw_sch_probe(struct subchannel *sch) in vfio_ccw_sch_probe() 188 parent->mdev_type.pretty_name = "I/O subchannel (Non-QDIO)"; in vfio_ccw_sch_probe() 196 VFIO_CCW_MSG_EVENT(4, "bound to subchannel %x.%x.%04x\n", in vfio_ccw_sch_probe() 209 static void vfio_ccw_sch_remove(struct subchannel *sch) in vfio_ccw_sch_remove() 218 VFIO_CCW_MSG_EVENT(4, "unbound from subchannel in vfio_ccw_sch_remove() [all...] |