/openbmc/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.ena) in ccw_device_clear() 201 if (!sch->schib.pmcw.ena) in ccw_device_start_timeout_key() 217 ((sch->schib.scsw.cmd.stctl & SCSW_STCTL_PRIM_STATUS) && in ccw_device_start_timeout_key() 218 !(sch->schib.scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS))) in ccw_device_start_timeout_key() 378 if (!sch->schib.pmcw.ena) in ccw_device_halt() 412 if (!sch->schib.pmcw.ena) in ccw_device_resume() 417 !(sch->schib.scsw.cmd.actl & SCSW_ACTL_SUSPENDED)) in ccw_device_resume() 482 chpid.id = sch->schib.pmcw.chpid[chp_idx]; in ccw_device_get_chp_desc() 502 chpid.id = sch->schib.pmcw.chpid[chp_idx]; in ccw_device_get_util_str() 547 if (!sch->schib.pmcw.ena) in ccw_device_tm_start_timeout_key() [all …]
|
H A D | css.c | 175 struct schib *schib) in css_validate_subchannel() argument 179 switch (schib->pmcw.st) { in css_validate_subchannel() 182 if (!css_sch_is_valid(schib)) in css_validate_subchannel() 184 else if (is_blacklisted(schid.ssid, schib->pmcw.dev)) { in css_validate_subchannel() 187 schib->pmcw.dev, schid.ssid); in css_validate_subchannel() 199 schid.ssid, schid.sch_no, schib->pmcw.st); in css_validate_subchannel() 205 struct schib *schib) in css_alloc_subchannel() argument 210 ret = css_validate_subchannel(schid, schib); in css_alloc_subchannel() 219 sch->schib = *schib; in css_alloc_subchannel() 220 sch->st = schib->pmcw.st; in css_alloc_subchannel() [all …]
|
H A D | css.h | 105 struct schib *schib); 151 struct schib; 152 int css_sch_is_valid(struct schib *);
|
H A D | ioasm.c | 18 static inline int __stsch(struct subchannel_id schid, struct schib *addr) in __stsch() 36 int stsch(struct subchannel_id schid, struct schib *addr) in stsch() 47 static inline int __msch(struct subchannel_id schid, struct schib *addr) in __msch() 65 int msch(struct subchannel_id schid, struct schib *addr) in msch()
|
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 | cio.h | 66 struct schib { struct 97 struct schib schib; /* subchannel information block */ member
|
H A D | device_fsm.c | 40 struct schib schib; in ccw_timeout_log() local 49 cc = stsch(sch->schid, &schib); in ccw_timeout_log() 89 &schib, sizeof(schib), 0); in ccw_timeout_log() 179 chpid.id = sch->schib.pmcw.chpid[i]; in __recover_lost_chpids() 208 sch->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_recog_done() 476 u8 broken_paths = (sch->schib.pmcw.pam & sch->opm) ^ sch->vpm; in ccw_device_handle_broken_paths() 608 if (scsw_actl(&sch->schib.scsw) != 0) in ccw_device_offline() 669 if (scsw_actl(&sch->schib.scsw) != 0 || in ccw_device_online_verify() 670 (scsw_stctl(&sch->schib.scsw) & SCSW_STCTL_STATUS_PEND) || in ccw_device_online_verify() 948 sch->lpm = sch->schib.pmcw.pam & sch->opm; in ccw_device_trigger_reprobe() [all …]
|
H A D | ccwreq.c | 337 if ((0x80 >> chp) & sch->schib.pmcw.lpum) in ccw_request_timeout() 340 scsw_cstat(&sch->schib.scsw), in ccw_request_timeout() 341 scsw_dstat(&sch->schib.scsw), in ccw_request_timeout() 343 sch->schib.pmcw.chpid[chp]); in ccw_request_timeout()
|
H A D | device.c | 744 priv->dev_id.devno = sch->schib.pmcw.dev; in io_subchannel_initialize_dev() 928 old_enabled = old_sch->schib.pmcw.ena; in ccw_device_move_to_sch() 947 sch->schib.pmcw.dev, rc); in ccw_device_move_to_sch() 1012 sch->lpm = sch->schib.pmcw.pam & sch->opm; in io_subchannel_init_fields() 1017 sch->schib.pmcw.dev, sch->schid.ssid, in io_subchannel_init_fields() 1018 sch->schid.sch_no, sch->schib.pmcw.pim, in io_subchannel_init_fields() 1019 sch->schib.pmcw.pam, sch->schib.pmcw.pom); in io_subchannel_init_fields() 1131 if (scsw_actl(&sch->schib.scsw) == 0 || sch->schib.pmcw.lpum != mask) in io_subchannel_terminate_path() 1213 if (!sch->schib.pmcw.ena) in io_subchannel_quiesce() 1260 if ((sch->schib.pmcw.pam & sch->opm) == sch->vpm) in recovery_check() [all …]
|
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 | 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.ena) in fsm_close()
|
H A D | eadm_sch.c | 76 sch->schib.scsw.eadm.actl |= SCSW_ACTL_START_PEND; in eadm_subchannel_start() 95 sch->schib.scsw.eadm.actl |= SCSW_ACTL_CLEAR_PEND; in eadm_subchannel_clear() 125 struct eadm_scsw *scsw = &sch->schib.scsw.eadm; in eadm_subchannel_irq()
|
H A D | vfio_ccw_drv.c | 164 struct pmcw *pmcw = &sch->schib.pmcw; in vfio_ccw_sch_probe() 324 if (sch->schib.pmcw.lpum & mask) in vfio_ccw_chp_event() 329 if (sch->schib.pmcw.lpum & mask) in vfio_ccw_chp_event()
|
H A D | vfio_ccw_chp.c | 36 memcpy(region, &sch->schib, sizeof(*region)); in vfio_ccw_schib_region_read()
|
/openbmc/qemu/hw/s390x/ |
H A D | css.c | 702 SCHIB *schib = &sch->curr_status; in sch_handle_clear_func() local 709 schib->pmcw.lpum = 0; in sch_handle_clear_func() 710 schib->pmcw.pom = 0xff; in sch_handle_clear_func() 711 schib->scsw.flags &= ~SCSW_FLAGS_MASK_PNO; in sch_handle_clear_func() 716 schib->scsw.ctrl &= ~SCSW_ACTL_CLEAR_PEND; in sch_handle_clear_func() 717 schib->scsw.ctrl |= SCSW_STCTL_STATUS_PEND; in sch_handle_clear_func() 719 schib->scsw.dstat = 0; in sch_handle_clear_func() 720 schib->scsw.cstat = 0; in sch_handle_clear_func() 721 schib->pmcw.lpum = path; in sch_handle_clear_func() 727 SCHIB *schib = &sch->curr_status; in sch_handle_halt_func() local [all …]
|
H A D | 3270-ccw.c | 85 SCHIB *schib = &sch->curr_status; in emulated_ccw_3270_cb() local 89 schib->scsw.ctrl &= ~SCSW_ACTL_START_PEND; in emulated_ccw_3270_cb() 90 schib->scsw.ctrl &= ~SCSW_CTRL_MASK_STCTL; in emulated_ccw_3270_cb() 91 schib->scsw.ctrl |= SCSW_STCTL_PRIMARY | SCSW_STCTL_SECONDARY | in emulated_ccw_3270_cb()
|
/openbmc/qemu/hw/vfio/ |
H A D | ccw.c | 129 SCHIB *schib = &sch->curr_status; in vfio_ccw_handle_store() local 158 schib->pmcw.pnom = s->pmcw.pnom; in vfio_ccw_handle_store() 159 schib->pmcw.lpum = s->pmcw.lpum; in vfio_ccw_handle_store() 160 schib->pmcw.pam = s->pmcw.pam; in vfio_ccw_handle_store() 161 schib->pmcw.pom = s->pmcw.pom; in vfio_ccw_handle_store() 164 schib->scsw.flags |= SCSW_FLAGS_MASK_PNO; in vfio_ccw_handle_store() 315 SCHIB *schib = &sch->curr_status; in vfio_ccw_io_notifier_handler() local 331 schib->scsw.flags |= SCSW_FLAGS_MASK_CC; in vfio_ccw_io_notifier_handler() 332 schib->scsw.ctrl &= ~SCSW_CTRL_MASK_STCTL; in vfio_ccw_io_notifier_handler() 333 schib->scsw.ctrl |= (SCSW_STCTL_ALERT | SCSW_STCTL_STATUS_PEND); in vfio_ccw_io_notifier_handler() [all …]
|
/openbmc/qemu/target/s390x/ |
H A D | ioinst.c | 114 static int ioinst_schib_valid(SCHIB *schib) in ioinst_schib_valid() argument 116 if ((be16_to_cpu(schib->pmcw.flags) & PMCW_FLAGS_MASK_INVALID) || in ioinst_schib_valid() 117 (be32_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_INVALID)) { in ioinst_schib_valid() 121 if (be32_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_XMWME) { in ioinst_schib_valid() 126 if ((be32_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_MBFC) && in ioinst_schib_valid() 127 (be64_to_cpu(schib->mba) & 0x03fUL)) { in ioinst_schib_valid() 137 SCHIB schib; in ioinst_handle_msch() local 148 s390_cpu_pv_mem_read(cpu, addr, &schib, sizeof(schib)); in ioinst_handle_msch() 149 } else if (s390_cpu_virt_mem_read(cpu, addr, ar, &schib, sizeof(schib))) { in ioinst_handle_msch() 154 !ioinst_schib_valid(&schib)) { in ioinst_handle_msch() [all …]
|
/openbmc/qemu/pc-bios/s390-ccw/ |
H A D | netmain.c | 439 static bool find_net_dev(Schib *schib, int dev_no) in find_net_dev() argument 445 r = stsch_err(net_schid, schib); in find_net_dev() 449 if (!schib->pmcw.dnv) { in find_net_dev() 459 if (dev_no < 0 || schib->pmcw.dev == dev_no) { in find_net_dev() 469 Schib schib; in virtio_setup() local 487 found = find_net_dev(&schib, dev_no); in virtio_setup() 491 found = find_net_dev(&schib, -1); in virtio_setup()
|
H A D | main.c | 72 Schib schib; in is_dev_possibly_bootable() local 76 r = stsch_err(blk_schid, &schib); in is_dev_possibly_bootable() 80 if (!schib.pmcw.dnv) { in is_dev_possibly_bootable() 119 if (schib.pmcw.dev == dev_no) { in is_dev_possibly_bootable()
|
H A D | cio.h | 117 typedef struct schib { struct 377 static inline int stsch_err(struct subchannel_id schid, struct schib *addr) in stsch_err() 393 static inline int msch(struct subchannel_id schid, struct schib *addr) in msch() 408 static inline int msch_err(struct subchannel_id schid, struct schib *addr) in msch_err()
|
H A D | cio.c | 44 Schib schib; in enable_subchannel() local 46 stsch_err(schid, &schib); in enable_subchannel() 47 schib.pmcw.ena = 1; in enable_subchannel() 48 msch(schid, &schib); in enable_subchannel()
|
/openbmc/qemu/include/hw/s390x/ |
H A D | css.h | 246 IOInstEnding css_do_stsch(SubchDev *sch, SCHIB *schib); 248 IOInstEnding css_do_msch(SubchDev *sch, const SCHIB *schib);
|