Home
last modified time | relevance | path

Searched refs:scsw (Results 1 – 24 of 24) sorted by relevance

/linux/arch/s390/include/asm/
H A Dscsw.h141 union scsw { union
231 static inline int scsw_is_tm(union scsw *scsw) in scsw_is_tm() argument
233 return css_general_characteristics.fcx && (scsw->tm.x == 1); in scsw_is_tm()
243 static inline u32 scsw_key(union scsw *scsw) in scsw_key() argument
245 if (scsw_is_tm(scsw)) in scsw_key()
246 return scsw->tm.key; in scsw_key()
248 return scsw->cmd.key; in scsw_key()
258 static inline u32 scsw_eswf(union scsw *scsw) in scsw_eswf() argument
260 if (scsw_is_tm(scsw)) in scsw_eswf()
261 return scsw->tm.eswf; in scsw_eswf()
[all …]
/linux/drivers/s390/cio/
H A Dvfio_ccw_fsm.c49 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()
247 union scsw *scsw = &private->scsw; in fsm_io_request() local
253 memcpy(scsw, io_region->scsw_area, sizeof(*scsw)); in fsm_io_request()
255 if (scsw->cmd.fctl & SCSW_FCTL_START_FUNC) { in fsm_io_request()
304 } else if (scsw->cmd.fctl & SCSW_FCTL_HALT_FUNC) { in fsm_io_request()
312 } else if (scsw->cmd.fctl & SCSW_FCTL_CLEAR_FUNC) { in fsm_io_request()
324 trace_vfio_ccw_fsm_io_request(scsw->cmd.fctl, schid, in fsm_io_request()
H A Ddevice_fsm.c459 struct cmd_scsw *scsw = &irb->scsw.cmd; in create_fake_irb() local
460 scsw->cc = 1; in create_fake_irb()
461 scsw->fctl = SCSW_FCTL_START_FUNC; in create_fake_irb()
462 scsw->actl = SCSW_ACTL_START_PEND; in create_fake_irb()
463 scsw->stctl = SCSW_STCTL_STATUS_PEND; in create_fake_irb()
465 struct tm_scsw *scsw = &irb->scsw.tm; in create_fake_irb() local
466 scsw->x = 1; in create_fake_irb()
467 scsw->cc = 1; in create_fake_irb()
468 scsw->fctl = SCSW_FCTL_START_FUNC; in create_fake_irb()
469 scsw->actl = SCSW_ACTL_START_PEND; in create_fake_irb()
[all …]
H A Deadm_sch.c77 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() local
135 if ((scsw->stctl & (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND)) in eadm_subchannel_irq()
136 && scsw->eswf == 1 && irb->esw.eadm.erw.r) in eadm_subchannel_irq()
139 if (scsw->fctl & SCSW_FCTL_CLEAR_FUNC) in eadm_subchannel_irq()
151 scm_irq_handler(dma32_to_virt(scsw->aob), error); in eadm_subchannel_irq()
H A Dvfio_ccw_cp.h57 void cp_update_scsw(struct channel_program *cp, union scsw *scsw);
H A Dtrace.h128 __entry->scsw_dcc = scsw_cc(&irb->scsw);
129 __entry->scsw_pno = scsw_pno(&irb->scsw);
130 __entry->scsw_fctl = scsw_fctl(&irb->scsw);
131 __entry->scsw_actl = scsw_actl(&irb->scsw);
132 __entry->scsw_stctl = scsw_stctl(&irb->scsw);
133 __entry->scsw_dstat = scsw_dstat(&irb->scsw);
134 __entry->scsw_cstat = scsw_cstat(&irb->scsw);
H A Dchsc_sch.c175 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()
266 if (!(scsw_stctl(&request->irb.scsw) & SCSW_STCTL_STATUS_PEND)) in chsc_examine_irb()
268 backed_up = scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb()
269 request->irb.scsw.cmd.cstat &= ~SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb()
270 if (scsw_cstat(&request->irb.scsw) == 0) in chsc_examine_irb()
274 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROG_CHECK) in chsc_examine_irb()
276 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROT_CHECK) in chsc_examine_irb()
278 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHN_DATA_CHK) in chsc_examine_irb()
280 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHN_CTRL_CHK) in chsc_examine_irb()
H A Dvfio_ccw_cp.c932 void cp_update_scsw(struct channel_program *cp, union scsw *scsw) in cp_update_scsw() argument
935 dma32_t cpa = scsw->cmd.cpa; in cp_update_scsw()
966 scsw->cmd.cpa = cpa; in cp_update_scsw()
H A Dcmf.c279 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 Ddevice_pgid.c97 if (status == IO_STATUS_ERROR && irb->scsw.cmd.cstat == 0) in nop_filter()
/linux/drivers/s390/block/
H A Ddasd_fba.c237 if ((irb->scsw.cmd.dstat & mask) == mask) in dasd_fba_check_for_device_change()
643 scsw_is_tm(&irb->scsw) ? "t" : "c", in dasd_fba_dump_sense_dbf()
644 scsw_cc(&irb->scsw), scsw_cstat(&irb->scsw), in dasd_fba_dump_sense_dbf()
645 scsw_dstat(&irb->scsw), sense[0], sense[1], in dasd_fba_dump_sense_dbf()
673 req, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat); in dasd_fba_dump_sense()
675 (void *)(u64)dma32_to_u32(irb->scsw.cmd.cpa)); in dasd_fba_dump_sense()
713 if (act < ((struct ccw1 *)dma32_to_virt(irb->scsw.cmd.cpa)) - 2) { in dasd_fba_dump_sense()
714 act = ((struct ccw1 *)dma32_to_virt(irb->scsw.cmd.cpa)) - 2; in dasd_fba_dump_sense()
717 end = min((struct ccw1 *)dma32_to_virt(irb->scsw.cmd.cpa) + 2, last); in dasd_fba_dump_sense()
H A Ddasd_3990_erp.c1606 if (scsw_is_tm(&cqr->irb.scsw)) { in dasd_3990_erp_action_1B_32()
1623 cpa = default_erp->refers->irb.scsw.cmd.cpa; in dasd_3990_erp_action_1B_32()
1761 if (scsw_is_tm(&cqr->irb.scsw)) { in dasd_3990_update_1B()
1780 cpa = previous_erp->irb.scsw.cmd.cpa; in dasd_3990_update_1B()
2262 if (scsw_cstat(&erp->refers->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK in dasd_3990_erp_control_check()
2484 if ((scsw_cstat(&cqr1->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK | in dasd_3990_erp_error_match()
2486 (scsw_cstat(&cqr2->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK | in dasd_3990_erp_error_match()
2757 if ((scsw_cstat(&cqr->irb.scsw) == 0x00) && in dasd_3990_erp_action()
2758 (scsw_dstat(&cqr->irb.scsw) == in dasd_3990_erp_action()
H A Ddasd.c1576 return (scsw_tm_is_valid_schxs(&irb->scsw) && in dasd_check_hpf_error()
1577 (irb->scsw.tm.sesq == SCSW_SESQ_DEV_NOFCX || in dasd_check_hpf_error()
1578 irb->scsw.tm.sesq == SCSW_SESQ_PATH_NOFCX)); in dasd_check_hpf_error()
1602 scsw_is_tm(&irb->scsw) && in dasd_ese_needs_format()
1661 !(scsw_dstat(&irb->scsw) == (DEV_STAT_CHN_END | DEV_STAT_DEV_END) && in dasd_int_handler()
1662 scsw_cstat(&irb->scsw) == 0)) { in dasd_int_handler()
1709 if (scsw_dstat(&irb->scsw) & DEV_STAT_ATTENTION) { in dasd_int_handler()
1766 scsw_fctl(&irb->scsw) & SCSW_FCTL_CLEAR_FUNC) { in dasd_int_handler()
1783 if (scsw_dstat(&irb->scsw) == (DEV_STAT_CHN_END | DEV_STAT_DEV_END) && in dasd_int_handler()
1784 scsw_cstat(&irb->scsw) == 0) { in dasd_int_handler()
[all …]
H A Ddasd_eckd.c3988 if (tpm && scsw_cstat(&irb.scsw) == 0x40) { in dasd_eckd_check_device_format()
4059 if ((scsw_dstat(&irb->scsw) & mask) == mask) { in dasd_eckd_check_for_device_change()
4081 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK)) { in dasd_eckd_check_for_device_change()
4118 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && in dasd_eckd_check_for_device_change()
6490 stat = (u64 *) &irb->scsw; in dasd_eckd_dump_sense_dbf()
6527 req, scsw_cc(&irb->scsw), scsw_fctl(&irb->scsw), in dasd_eckd_dump_sense_ccw()
6528 scsw_actl(&irb->scsw), scsw_stctl(&irb->scsw), in dasd_eckd_dump_sense_ccw()
6529 scsw_dstat(&irb->scsw), scsw_cstat(&irb->scsw), in dasd_eckd_dump_sense_ccw()
6532 dma32_to_virt(irb->scsw.cmd.cpa)); in dasd_eckd_dump_sense_ccw()
6575 fail = dma32_to_virt(irb->scsw.cmd.cpa); /* failing CCW */ in dasd_eckd_dump_sense_ccw()
[all …]
/linux/drivers/s390/char/
H A Dtape_3490.c195 if (irb->scsw.cmd.dstat == 0x85) { /* READY */ in tape_3490_unsolicited_irq()
621 if ((irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) && in tape_3490_irq()
622 (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) && in tape_3490_irq()
628 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in tape_3490_irq()
631 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { in tape_3490_irq()
635 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) { in tape_3490_irq()
H A Dtape_core.c904 irb->scsw.cmd.dstat, irb->scsw.cmd.cstat); in tape_dump_sense_dbf()
1119 if (irb->scsw.cmd.cc != 0 && in __tape_do_irq()
1120 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) && in __tape_do_irq()
1123 device->cdev_id, irb->scsw.cmd.cc, irb->scsw.cmd.fctl); in __tape_do_irq()
1131 request->rescnt = irb->scsw.cmd.count; in __tape_do_irq()
1133 } else if ((irb->scsw.cmd.dstat == 0x85 || irb->scsw.cmd.dstat == 0x80) && in __tape_do_irq()
1148 if (irb->scsw.cmd.dstat != 0x0c) { in __tape_do_irq()
H A Dvmur.c306 intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, in ur_int_handler()
307 irb->scsw.cmd.count); in ur_int_handler()
313 if (scsw_dstat(&irb->scsw) & DEV_STAT_DEV_END) { in ur_int_handler()
327 else if (irb->scsw.cmd.dstat == (DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in ur_int_handler()
H A Dfs3270.c220 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in fs3270_irq()
226 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in fs3270_irq()
230 rq->rescnt = irb->scsw.cmd.count; in fs3270_irq()
H A Draw3270.c356 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) in raw3270_irq()
358 if (irb->scsw.cmd.dstat == (DEV_STAT_CHN_END | in raw3270_irq()
363 if ((irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) && in raw3270_irq()
706 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in raw3270_init_irq()
713 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in raw3270_init_irq()
/linux/drivers/s390/net/
H A Dctcm_main.c1164 cstat = irb->scsw.cmd.cstat; in ctcm_irq_handler()
1165 dstat = irb->scsw.cmd.dstat; in ctcm_irq_handler()
1206 if (irb->scsw.cmd.cstat) { in ctcm_irq_handler()
1217 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in ctcm_irq_handler()
1226 if (irb->scsw.cmd.dstat & DEV_STAT_BUSY) { in ctcm_irq_handler()
1227 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) in ctcm_irq_handler()
1233 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in ctcm_irq_handler()
1237 if ((irb->scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS) || in ctcm_irq_handler()
1238 (irb->scsw.cmd.stctl == SCSW_STCTL_STATUS_PEND) || in ctcm_irq_handler()
1239 (irb->scsw.cmd.stctl == in ctcm_irq_handler()
H A Dctcm_fsms.c262 if (ch->irb->scsw.cmd.count != 0) in chx_txdone()
265 CTCM_FUNTAIL, dev->name, ch->irb->scsw.cmd.count); in chx_txdone()
359 int len = ch->max_bufsize - ch->irb->scsw.cmd.count; in chx_rx()
1240 if (ch->irb->scsw.cmd.count != 0) in ctcmpc_chx_txdone()
1243 CTCM_FUNTAIL, dev->name, ch->irb->scsw.cmd.count); in ctcmpc_chx_txdone()
1388 int len = ch->max_bufsize - ch->irb->scsw.cmd.count; in ctcmpc_chx_rx()
H A Dqeth_core_main.c1115 cstat = irb->scsw.cmd.cstat; in qeth_get_problem()
1116 dstat = irb->scsw.cmd.dstat; in qeth_get_problem()
1248 if (irb->scsw.cmd.fctl & SCSW_FCTL_CLEAR_FUNC) { in qeth_irq()
1253 if (irb->scsw.cmd.fctl & SCSW_FCTL_HALT_FUNC) { in qeth_irq()
1258 if (iob && (irb->scsw.cmd.fctl & (SCSW_FCTL_CLEAR_FUNC | in qeth_irq()
1264 cstat = irb->scsw.cmd.cstat; in qeth_irq()
1265 dstat = irb->scsw.cmd.dstat; in qeth_irq()
1295 if (scsw_cmd_is_valid_cc(&irb->scsw) && irb->scsw.cmd.cc == 1 && iob) { in qeth_irq()
1317 if (irb->scsw.cmd.count > iob->length) { in qeth_irq()
1323 iob->length - irb->scsw.cmd.count); in qeth_irq()
/linux/drivers/s390/virtio/
H A Dvirtio_ccw.c1115 if (scsw_cstat(&irb->scsw) != 0) in irb_is_error()
1117 if (scsw_dstat(&irb->scsw) & ~(DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in irb_is_error()
1119 if (scsw_cc(&irb->scsw) != 0) in irb_is_error()
1193 (scsw_stctl(&irb->scsw) == in virtio_ccw_int_handler()
1199 if ((scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && in virtio_ccw_int_handler()
/linux/Documentation/arch/s390/
H A Dcds.rst320 sense bytes available in the extended control word irb->scsw.ecw[]. No device
339 The irb->scsw.cstat field provides the (accumulated) subchannel status :
352 The irb->scsw.dstat field provides the (accumulated) device status :