Home
last modified time | relevance | path

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

123

/openbmc/linux/drivers/s390/cio/
H A 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 …]
H A 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 …]
H A 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 …]
H A 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 …]
H A 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 …]
H A 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()
546 struct subchannel *sch; in available_show()
571 struct subchannel *sch = to_subchannel(dev); in initiate_logging()
[all …]
H A 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()
H A 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 …]
H A 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 …]
H A 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 …]
H A 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()
H A 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;
H A 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()
H A 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()
H A 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()
H A Deadm_sch.h15 struct subchannel *sch;
H A Dvfio_ccw_cp.h46 union orb *cp_get_orb(struct channel_program *cp, struct subchannel *sch);
H A 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()
/openbmc/qemu/docs/system/s390x/
H A Dcss.rst6 devices passed via vfio-ccw). It supports multiple subchannel sets (MSS) and
18 Supported values for the subchannel set id (``<ssid>``) range from ``0-3``.
21 Any device may be put into any subchannel set, there is no restriction by
27 next free device number in subchannel set 0, skipping to the next subchannel
30 QEMU places a device at the first free subchannel in the specified subchannel
32 different subchannel. (This is similar to how z/VM works.)
43 prior to this one), this will show up as ``0.0.0000`` under subchannel
49 * a virtio-rng device in subchannel set ``0``::
54 under subchannel ``0.0.0001``.
59 * a virtio-gpu device in subchannel set ``2``::
[all …]
H A Dvfio-ccw.rst37 * Locate the subchannel for the device (in this example, ``0.0.2b09``)::
42 * Unbind the subchannel (in this example, ``0.0.0313``) from the standard
43 I/O subchannel driver and bind it to the vfio-ccw driver::
/openbmc/linux/Documentation/ABI/testing/
H A 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.
/openbmc/linux/Documentation/arch/s390/
H A 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
H A 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 …]
H A 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 …]
/openbmc/linux/arch/s390/boot/
H A 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

123