Home
last modified time | relevance | path

Searched refs:subchannel (Results 1 – 25 of 48) sorted by relevance

12

/linux-6.6.21/drivers/s390/cio/
Dcio.h84 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 …]
Dcss.h71 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 …]
Dcio.c88 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 …]
Deadm_sch.c60 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 …]
Dcss.c65 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 …]
Ddevice.c138 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 …]
Dvfio_ccw_fsm.c21 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()
Ddevice_pgid.c36 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 …]
Ddevice_ops.c139 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 …]
Ddevice_fsm.c41 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 …]
Dvfio_ccw_drv.c37 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()
Dio_sch.h32 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;
Dvfio_ccw_private.h130 int vfio_ccw_sch_quiesce(struct subchannel *sch);
172 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in vfio_ccw_fsm_event()
Dchsc_sch.c54 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()
Dccwreq.c78 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()
Deadm_sch.h15 struct subchannel *sch;
Dvfio_ccw_cp.h46 union orb *cp_get_orb(struct channel_program *cp, struct subchannel *sch);
Ddevice_status.c31 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()
Dchp.h64 u8 chp_get_sch_opm(struct subchannel *sch);
/linux-6.6.21/Documentation/ABI/testing/
Dsysfs-bus-css4 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/
Ddriver-model.rst11 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
Dvfio-ccw.rst8 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 …]
Dcds.rst48 * 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/
Dhead.S43 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/
Ds390-diag.rst64 General register 2 contains a subchannel-identification word denoting
65 the subchannel of the virtio-ccw proxy device to be notified.

12