| /linux/drivers/s390/cio/ |
| H A D | cio.c | 117 CIO_HEX_EVENT(0, &sch->schib, sizeof (struct schib)); in cio_start_handle_notoper() 162 sch->schib.scsw.cmd.actl |= SCSW_ACTL_START_PEND; in cio_start_key() 199 sch->schib.scsw.cmd.actl |= SCSW_ACTL_RESUME_PEND; in cio_resume() 238 sch->schib.scsw.cmd.actl |= SCSW_ACTL_HALT_PEND; in cio_halt() 272 sch->schib.scsw.cmd.actl |= SCSW_ACTL_CLEAR_PEND; in cio_clear() 340 if (!sch->schib.pmcw.ena) in cio_cancel_halt_clear() 344 if (!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_HALT_PEND) && in cio_cancel_halt_clear() 345 !(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_CLEAR_PEND)) { in cio_cancel_halt_clear() 346 if (!scsw_is_tm(&sch->schib.scsw)) { in cio_cancel_halt_clear() 358 if (!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_CLEAR_PEND)) { in cio_cancel_halt_clear() [all …]
|
| H A D | trace.h | 25 TP_PROTO(struct subchannel_id schid, struct schib *schib, int cc), 26 TP_ARGS(schid, schib, cc), 32 __field_struct(struct schib, schib) 50 __entry->devno = schib->pmcw.dev; 51 __entry->schib = *schib; 52 __entry->pmcw_ena = schib->pmcw.ena; 53 __entry->pmcw_st = schib->pmcw.st; 54 __entry->pmcw_dnv = schib->pmcw.dnv; 55 __entry->pmcw_dev = schib->pmcw.dev; 56 __entry->pmcw_lpm = schib->pmcw.lpm; [all …]
|
| H A D | device_ops.c | 145 if (!sch->schib.pmcw.dnv) in ccw_device_clear() 147 if (!sch->schib.pmcw.ena) in ccw_device_clear() 203 if (!sch->schib.pmcw.dnv) in ccw_device_start_timeout_key() 205 if (!sch->schib.pmcw.ena) in ccw_device_start_timeout_key() 225 ((sch->schib.scsw.cmd.stctl & SCSW_STCTL_PRIM_STATUS) && in ccw_device_start_timeout_key() 226 !(sch->schib.scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS))) in ccw_device_start_timeout_key() 386 if (!sch->schib.pmcw.dnv) in ccw_device_halt() 388 if (!sch->schib.pmcw.ena) in ccw_device_halt() 422 if (!sch->schib.pmcw.dnv) in ccw_device_resume() 424 if (!sch->schib.pmcw.ena) in ccw_device_resume() [all …]
|
| H A D | css.h | 114 struct schib *schib); 160 struct schib; 161 int css_sch_is_valid(struct schib *);
|
| H A D | device_fsm.c | 41 struct schib schib; in ccw_timeout_log() local 50 cc = stsch(sch->schid, &schib); in ccw_timeout_log() 90 &schib, sizeof(schib), 0); in ccw_timeout_log() 173 if (!sch->schib.pmcw.dnv) in __recover_lost_chpids() 183 chpid.id = sch->schib.pmcw.chpid[i]; in __recover_lost_chpids() 212 sch->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_recog_done() 480 u8 broken_paths = (sch->schib.pmcw.pam & sch->opm) ^ sch->vpm; in ccw_device_handle_broken_paths() 617 if (scsw_actl(&sch->schib.scsw) != 0) in ccw_device_offline() 678 if (scsw_actl(&sch->schib.scsw) != 0 || in ccw_device_online_verify() 679 (scsw_stctl(&sch->schib.scsw) & SCSW_STCTL_STATUS_PEND) || in ccw_device_online_verify() [all …]
|
| H A D | cio.h | 67 struct schib { struct 98 struct schib schib; /* subchannel information block */ member
|
| H A D | ioasm.h | 16 int stsch(struct subchannel_id schid, struct schib *addr); 17 int msch(struct subchannel_id schid, struct schib *addr);
|
| H A D | device.c | 741 priv->dev_id.devno = sch->schib.pmcw.dev; in io_subchannel_initialize_dev() 925 old_enabled = old_sch->schib.pmcw.dnv && old_sch->schib.pmcw.ena; in ccw_device_move_to_sch() 1009 sch->lpm = sch->schib.pmcw.pam & sch->opm; in io_subchannel_init_fields() 1014 sch->schib.pmcw.dev, sch->schid.ssid, in io_subchannel_init_fields() 1015 sch->schid.sch_no, sch->schib.pmcw.pim, in io_subchannel_init_fields() 1016 sch->schib.pmcw.pam, sch->schib.pmcw.pom); in io_subchannel_init_fields() 1128 if (scsw_actl(&sch->schib.scsw) == 0 || sch->schib.pmcw.lpum != mask) in io_subchannel_terminate_path() 1210 if (!sch->schib.pmcw.dnv || !sch->schib.pmcw.ena) in io_subchannel_quiesce() 1257 if (sch->schib.pmcw.dnv && in recovery_check() 1258 (sch->schib.pmcw.pam & sch->opm) == sch->vpm) in recovery_check() [all …]
|
| H A D | ioasm.c | 19 static inline int __stsch(struct subchannel_id schid, struct schib *addr) in __stsch() 38 int stsch(struct subchannel_id schid, struct schib *addr) in stsch() 49 static inline int __msch(struct subchannel_id schid, struct schib *addr) in __msch() 68 int msch(struct subchannel_id schid, struct schib *addr) in msch()
|
| H A D | vfio_ccw_fsm.c | 49 sch->schib.scsw.cmd.actl |= SCSW_ACTL_START_PEND; in fsm_io_helper() 101 sch->schib.scsw.cmd.actl |= SCSW_ACTL_HALT_PEND; in fsm_do_halt() 140 sch->schib.scsw.cmd.actl = SCSW_ACTL_CLEAR_PEND; in fsm_do_clear() 402 if (!sch->schib.pmcw.dnv || !sch->schib.pmcw.ena) in fsm_close()
|
| H A D | device_pgid.c | 78 req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & sch->opm & in nop_do() 183 req->lpm = sch->schib.pmcw.pam; in pgid_wipeout_start() 460 req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & in snid_do() 518 sch->lpm = sch->schib.pmcw.pam; in verify_start() 524 cdev->private->pgid_todo_mask = sch->schib.pmcw.pam; in verify_start() 614 req->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_disband_start() 674 req->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_stlck_start()
|
| H A D | eadm_sch.c | 77 sch->schib.scsw.eadm.actl |= SCSW_ACTL_START_PEND; in eadm_subchannel_start() 96 sch->schib.scsw.eadm.actl |= SCSW_ACTL_CLEAR_PEND; in eadm_subchannel_clear() 126 struct eadm_scsw *scsw = &sch->schib.scsw.eadm; in eadm_subchannel_irq()
|
| H A D | cmf.c | 279 if (scsw_fctl(&sch->schib.scsw) & SCSW_FCTL_START_FUNC) { in cmf_copy_block() 281 if ((!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_SUSPENDED)) && in cmf_copy_block() 282 (scsw_actl(&sch->schib.scsw) & in cmf_copy_block() 284 (!(scsw_stctl(&sch->schib.scsw) & SCSW_STCTL_SEC_STATUS))) in cmf_copy_block()
|
| H A D | vfio_ccw_chp.c | 44 memcpy(region, &sch->schib, sizeof(*region)); in vfio_ccw_schib_region_read()
|
| H A D | chsc_sch.c | 175 return sch->schib.pmcw.ena && !scsw_fctl(&sch->schib.scsw); in chsc_subchannel_match_next_free() 231 sch->schib.scsw.cmd.fctl |= SCSW_FCTL_START_FUNC; in chsc_async()
|
| H A D | chp.c | 81 if (!sch->schib.pmcw.dnv) in chp_get_sch_opm() 88 chpid.id = sch->schib.pmcw.chpid[i]; in chp_get_sch_opm()
|
| /linux/Documentation/arch/s390/ |
| H A D | vfio-ccw.rst | 285 vfio-ccw schib region 288 The vfio-ccw schib region is used to return Subchannel-Information
|