Home
last modified time | relevance | path

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

/linux-4.1.27/arch/s390/include/asm/
Dscsw.h138 union scsw { union
220 static inline int scsw_is_tm(union scsw *scsw) in scsw_is_tm() argument
222 return css_general_characteristics.fcx && (scsw->tm.x == 1); in scsw_is_tm()
232 static inline u32 scsw_key(union scsw *scsw) in scsw_key() argument
234 if (scsw_is_tm(scsw)) in scsw_key()
235 return scsw->tm.key; in scsw_key()
237 return scsw->cmd.key; in scsw_key()
247 static inline u32 scsw_eswf(union scsw *scsw) in scsw_eswf() argument
249 if (scsw_is_tm(scsw)) in scsw_eswf()
250 return scsw->tm.eswf; in scsw_eswf()
[all …]
Dcio.h215 union scsw scsw; member
/linux-4.1.27/drivers/s390/cio/
Ddevice_status.c31 if (!scsw_is_valid_cstat(&irb->scsw) || in ccw_device_msg_control_check()
32 !(scsw_cstat(&irb->scsw) & (SCHN_STAT_CHN_DATA_CHK | in ccw_device_msg_control_check()
41 scsw_dstat(&irb->scsw), scsw_cstat(&irb->scsw)); in ccw_device_msg_control_check()
80 cdev->private->irb.scsw.cmd.ectl = 0; in ccw_device_accumulate_ecw()
81 if ((irb->scsw.cmd.stctl & SCSW_STCTL_ALERT_STATUS) && in ccw_device_accumulate_ecw()
82 !(irb->scsw.cmd.stctl & SCSW_STCTL_INTER_STATUS)) in ccw_device_accumulate_ecw()
83 cdev->private->irb.scsw.cmd.ectl = irb->scsw.cmd.ectl; in ccw_device_accumulate_ecw()
85 if (!cdev->private->irb.scsw.cmd.ectl) in ccw_device_accumulate_ecw()
97 if (!irb->scsw.cmd.eswf && in ccw_device_accumulate_esw_valid()
98 (irb->scsw.cmd.stctl == SCSW_STCTL_STATUS_PEND)) in ccw_device_accumulate_esw_valid()
[all …]
Dccwreq.c172 struct cmd_scsw *scsw = &irb->scsw.cmd; in ccwreq_status() local
179 if (scsw->fctl & (SCSW_FCTL_HALT_FUNC | SCSW_FCTL_CLEAR_FUNC)) in ccwreq_status()
182 if (scsw->cc == 3 || scsw->pno) in ccwreq_status()
213 if (scsw->cstat != 0) in ccwreq_status()
216 if (scsw->dstat & ~(DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in ccwreq_status()
219 if (!(scsw->dstat & DEV_STAT_DEV_END)) in ccwreq_status()
222 if (scsw->cc == 1 && (scsw->stctl & SCSW_STCTL_ALERT_STATUS)) in ccwreq_status()
339 scsw_cstat(&sch->schib.scsw), in ccw_request_timeout()
340 scsw_dstat(&sch->schib.scsw), in ccw_request_timeout()
Ddevice_fsm.c148 if (!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_HALT_PEND) && in ccw_device_cancel_halt_clear()
149 !(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_CLEAR_PEND)) { in ccw_device_cancel_halt_clear()
150 if (!scsw_is_tm(&sch->schib.scsw)) { in ccw_device_cancel_halt_clear()
159 if (!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_CLEAR_PEND)) { in ccw_device_cancel_halt_clear()
502 struct cmd_scsw *scsw = &irb->scsw.cmd; in create_fake_irb() local
503 scsw->cc = 1; in create_fake_irb()
504 scsw->fctl = SCSW_FCTL_START_FUNC; in create_fake_irb()
505 scsw->actl = SCSW_ACTL_START_PEND; in create_fake_irb()
506 scsw->stctl = SCSW_STCTL_STATUS_PEND; in create_fake_irb()
508 struct tm_scsw *scsw = &irb->scsw.tm; in create_fake_irb() local
[all …]
Deadm_sch.c80 sch->schib.scsw.eadm.actl |= SCSW_ACTL_START_PEND; in eadm_subchannel_start()
99 sch->schib.scsw.eadm.actl |= SCSW_ACTL_CLEAR_PEND; in eadm_subchannel_clear()
136 struct eadm_scsw *scsw = &sch->schib.scsw.eadm; in eadm_subchannel_irq() local
145 if ((scsw->stctl & (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND)) in eadm_subchannel_irq()
146 && scsw->eswf == 1 && irb->esw.eadm.erw.r) in eadm_subchannel_irq()
149 if (scsw->fctl & SCSW_FCTL_CLEAR_FUNC) in eadm_subchannel_irq()
161 scm_irq_handler((struct aob *)(unsigned long)scsw->aob, error); in eadm_subchannel_irq()
Dcio.c164 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()
237 sch->schib.scsw.cmd.actl |= SCSW_ACTL_HALT_PEND; in cio_halt()
270 sch->schib.scsw.cmd.actl |= SCSW_ACTL_CLEAR_PEND; in cio_clear()
576 memcpy (&sch->schib.scsw, &irb->scsw, sizeof (irb->scsw)); in do_cio_interrupt()
619 memcpy(&sch->schib.scsw, &irb->scsw, sizeof(union scsw)); in cio_tsch()
Ddevice_id.c145 struct cmd_scsw *scsw = &cdev->private->irb.scsw.cmd; in snsid_check() local
146 int len = sizeof(struct senseid) - scsw->count; in snsid_check()
Dchsc_sch.c137 if (!cc && scsw_stctl(&schib.scsw)) in chsc_subchannel_prepare()
215 return sch->schib.pmcw.ena && !scsw_fctl(&sch->schib.scsw); in chsc_subchannel_match_next_free()
271 sch->schib.scsw.cmd.fctl |= SCSW_FCTL_START_FUNC; in chsc_async()
306 if (!(scsw_stctl(&request->irb.scsw) & SCSW_STCTL_STATUS_PEND)) in chsc_examine_irb()
308 backed_up = scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb()
309 request->irb.scsw.cmd.cstat &= ~SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb()
310 if (scsw_cstat(&request->irb.scsw) == 0) in chsc_examine_irb()
314 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROG_CHECK) in chsc_examine_irb()
316 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROT_CHECK) in chsc_examine_irb()
318 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHN_DATA_CHK) in chsc_examine_irb()
[all …]
Ddevice_ops.c209 ((sch->schib.scsw.cmd.stctl & SCSW_STCTL_PRIM_STATUS) && in ccw_device_start_key()
210 !(sch->schib.scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS)) || in ccw_device_start_key()
410 !(sch->schib.scsw.cmd.actl & SCSW_ACTL_SUSPENDED)) in ccw_device_resume()
432 stctl = scsw_stctl(&cdev->private->irb.scsw); in ccw_device_call_handler()
766 if (!scsw_is_tm(&sch->schib.scsw) || in ccw_device_tm_intrg()
767 !(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_START_PEND)) in ccw_device_tm_intrg()
Dcio.h66 union scsw scsw; /* subchannel status word */ member
Dcmf.c308 if (scsw_fctl(&sch->schib.scsw) & SCSW_FCTL_START_FUNC) { in cmf_copy_block()
310 if ((!(scsw_actl(&sch->schib.scsw) & SCSW_ACTL_SUSPENDED)) && in cmf_copy_block()
311 (scsw_actl(&sch->schib.scsw) & in cmf_copy_block()
313 (!(scsw_stctl(&sch->schib.scsw) & SCSW_STCTL_SEC_STATUS))) in cmf_copy_block()
Ddevice_pgid.c94 if (status == IO_STATUS_ERROR && irb->scsw.cmd.cstat == 0) in nop_filter()
Dqdio_main.c1086 cstat = irb->scsw.cmd.cstat; in qdio_int_handler()
1087 dstat = irb->scsw.cmd.dstat; in qdio_int_handler()
Ddevice.c1164 if (scsw_actl(&sch->schib.scsw) == 0 || sch->schib.pmcw.lpum != mask) in io_subchannel_terminate_path()
1680 if (sch->schib.scsw.cmd.actl == 0) in ccw_device_wait_idle()
/linux-4.1.27/drivers/s390/block/
Ddasd_fba.c249 if ((irb->scsw.cmd.dstat & mask) == mask) in dasd_fba_check_for_device_change()
461 scsw_is_tm(&irb->scsw) ? "t" : "c", in dasd_fba_dump_sense_dbf()
462 scsw_cc(&irb->scsw), scsw_cstat(&irb->scsw), in dasd_fba_dump_sense_dbf()
463 scsw_dstat(&irb->scsw), sense[0], sense[1], in dasd_fba_dump_sense_dbf()
491 irb->scsw.cmd.cstat, irb->scsw.cmd.dstat); in dasd_fba_dump_sense()
495 (void *) (addr_t) irb->scsw.cmd.cpa); in dasd_fba_dump_sense()
537 if (act < ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2) { in dasd_fba_dump_sense()
538 act = ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2; in dasd_fba_dump_sense()
541 end = min((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa + 2, last); in dasd_fba_dump_sense()
Ddasd_3990_erp.c1613 if (scsw_is_tm(&cqr->irb.scsw)) { in dasd_3990_erp_action_1B_32()
1630 cpa = default_erp->refers->irb.scsw.cmd.cpa; in dasd_3990_erp_action_1B_32()
1769 if (scsw_is_tm(&cqr->irb.scsw)) { in dasd_3990_update_1B()
1788 cpa = previous_erp->irb.scsw.cmd.cpa; in dasd_3990_update_1B()
2224 if (scsw_cstat(&erp->refers->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK in dasd_3990_erp_control_check()
2444 if ((scsw_cstat(&cqr1->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK | in dasd_3990_erp_error_match()
2446 (scsw_cstat(&cqr2->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK | in dasd_3990_erp_error_match()
2720 if ((scsw_cstat(&cqr->irb.scsw) == 0x00) && in dasd_3990_erp_action()
2721 (scsw_dstat(&cqr->irb.scsw) == in dasd_3990_erp_action()
Ddasd_eckd.c2513 if ((scsw_dstat(&irb->scsw) & mask) == mask) { in dasd_eckd_check_for_device_change()
2543 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK)) { in dasd_eckd_check_for_device_change()
2560 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && in dasd_eckd_check_for_device_change()
4122 stat = (u64 *) &irb->scsw; in dasd_eckd_dump_sense_dbf()
4159 req, scsw_cc(&irb->scsw), scsw_fctl(&irb->scsw), in dasd_eckd_dump_sense_ccw()
4160 scsw_actl(&irb->scsw), scsw_stctl(&irb->scsw), in dasd_eckd_dump_sense_ccw()
4161 scsw_dstat(&irb->scsw), scsw_cstat(&irb->scsw), in dasd_eckd_dump_sense_ccw()
4166 (void *) (addr_t) irb->scsw.cmd.cpa); in dasd_eckd_dump_sense_ccw()
4217 irb->scsw.cmd.cpa; /* failing CCW */ in dasd_eckd_dump_sense_ccw()
4263 req, scsw_cc(&irb->scsw), scsw_fctl(&irb->scsw), in dasd_eckd_dump_sense_tcw()
[all …]
Ddasd.c1606 !(scsw_dstat(&irb->scsw) == (DEV_STAT_CHN_END | DEV_STAT_DEV_END) && in dasd_int_handler()
1607 scsw_cstat(&irb->scsw) == 0)) { in dasd_int_handler()
1626 if (scsw_dstat(&irb->scsw) & DEV_STAT_ATTENTION) { in dasd_int_handler()
1645 scsw_fctl(&irb->scsw) & SCSW_FCTL_CLEAR_FUNC) { in dasd_int_handler()
1662 if (scsw_dstat(&irb->scsw) == (DEV_STAT_CHN_END | DEV_STAT_DEV_END) && in dasd_int_handler()
1663 scsw_cstat(&irb->scsw) == 0) { in dasd_int_handler()
3789 if (scsw_is_tm(&irb->scsw) && (irb->scsw.tm.fcxs == 0x01)) { in dasd_get_sense()
3790 if (irb->scsw.tm.tcw) in dasd_get_sense()
3792 irb->scsw.tm.tcw); in dasd_get_sense()
/linux-4.1.27/drivers/s390/char/
Dtape_core.c925 irb->scsw.cmd.dstat, irb->scsw.cmd.cstat); in tape_dump_sense_dbf()
1138 if (irb->scsw.cmd.cc != 0 && in __tape_do_irq()
1139 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) && in __tape_do_irq()
1142 device->cdev_id, irb->scsw.cmd.cc, irb->scsw.cmd.fctl); in __tape_do_irq()
1150 request->rescnt = irb->scsw.cmd.count; in __tape_do_irq()
1151 else if ((irb->scsw.cmd.dstat == 0x85 || irb->scsw.cmd.dstat == 0x80) && in __tape_do_irq()
1167 if (irb->scsw.cmd.dstat != 0x0c) { in __tape_do_irq()
Dtape_34xx.c223 if (irb->scsw.cmd.dstat == 0x85) { /* READY */ in tape_34xx_unsolicited_irq()
837 if ((irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) && in tape_34xx_irq()
838 (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) && in tape_34xx_irq()
844 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in tape_34xx_irq()
847 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { in tape_34xx_irq()
851 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) { in tape_34xx_irq()
Dtape_3590.c806 if (irb->scsw.cmd.dstat == DEV_STAT_CHN_END) in tape_3590_unsolicited_irq()
809 else if (irb->scsw.cmd.dstat == 0x85) in tape_3590_unsolicited_irq()
812 else if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in tape_3590_unsolicited_irq()
1461 if ((irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) && in tape_3590_irq()
1462 (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) && in tape_3590_irq()
1469 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in tape_3590_irq()
1472 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { in tape_3590_irq()
1473 if (irb->scsw.cmd.dstat == DEV_STAT_UNIT_EXCEP) { in tape_3590_irq()
1483 if (irb->scsw.cmd.dstat & DEV_STAT_CHN_END) { in tape_3590_irq()
1488 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in tape_3590_irq()
Dfs3270.c224 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in fs3270_irq()
230 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in fs3270_irq()
234 rq->rescnt = irb->scsw.cmd.count; in fs3270_irq()
Dvmur.c310 intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, in ur_int_handler()
311 irb->scsw.cmd.count); in ur_int_handler()
322 else if (irb->scsw.cmd.dstat == (DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in ur_int_handler()
Draw3270.c355 else if (irb->scsw.cmd.fctl & SCSW_FCTL_HALT_FUNC) { in raw3270_irq()
358 } else if (irb->scsw.cmd.dstat == (DEV_STAT_CHN_END | DEV_STAT_DEV_END | in raw3270_irq()
365 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { in raw3270_irq()
698 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in raw3270_init_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()
Dcon3270.c407 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) in con3270_irq()
411 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in con3270_irq()
415 rq->rescnt = irb->scsw.cmd.count; in con3270_irq()
Dcon3215.c376 cstat = irb->scsw.cmd.cstat; in raw3215_irq()
377 dstat = irb->scsw.cmd.dstat; in raw3215_irq()
398 req->residual = irb->scsw.cmd.count; in raw3215_irq()
Dtty3270.c649 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in tty3270_irq()
657 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in tty3270_irq()
661 rq->rescnt = irb->scsw.cmd.count; in tty3270_irq()
/linux-4.1.27/drivers/s390/net/
Dlcs.c1343 cstat = irb->scsw.cmd.cstat; in lcs_get_problem()
1344 dstat = irb->scsw.cmd.dstat; in lcs_get_problem()
1404 cstat = irb->scsw.cmd.cstat; in lcs_irq()
1405 dstat = irb->scsw.cmd.dstat; in lcs_irq()
1407 LCS_DBF_TEXT_(5, trace, "%4x%4x", irb->scsw.cmd.cstat, in lcs_irq()
1408 irb->scsw.cmd.dstat); in lcs_irq()
1409 LCS_DBF_TEXT_(5, trace, "%4x%4x", irb->scsw.cmd.fctl, in lcs_irq()
1410 irb->scsw.cmd.actl); in lcs_irq()
1430 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) && in lcs_irq()
1431 (irb->scsw.cmd.cpa != 0)) { in lcs_irq()
[all …]
Dctcm_main.c1216 cstat = irb->scsw.cmd.cstat; in ctcm_irq_handler()
1217 dstat = irb->scsw.cmd.dstat; in ctcm_irq_handler()
1258 if (irb->scsw.cmd.cstat) { in ctcm_irq_handler()
1269 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in ctcm_irq_handler()
1278 if (irb->scsw.cmd.dstat & DEV_STAT_BUSY) { in ctcm_irq_handler()
1279 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) in ctcm_irq_handler()
1285 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in ctcm_irq_handler()
1289 if ((irb->scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS) || in ctcm_irq_handler()
1290 (irb->scsw.cmd.stctl == SCSW_STCTL_STATUS_PEND) || in ctcm_irq_handler()
1291 (irb->scsw.cmd.stctl == in ctcm_irq_handler()
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()
360 int len = ch->max_bufsize - ch->irb->scsw.cmd.count; in chx_rx()
1239 if (ch->irb->scsw.cmd.count != 0) in ctcmpc_chx_txdone()
1242 CTCM_FUNTAIL, dev->name, ch->irb->scsw.cmd.count); in ctcmpc_chx_txdone()
1394 int len = ch->max_bufsize - ch->irb->scsw.cmd.count; in ctcmpc_chx_rx()
Dqeth_core_main.c1002 cstat = irb->scsw.cmd.cstat; in qeth_get_problem()
1003 dstat = irb->scsw.cmd.dstat; in qeth_get_problem()
1095 cstat = irb->scsw.cmd.cstat; in qeth_irq()
1096 dstat = irb->scsw.cmd.dstat; in qeth_irq()
1116 if (irb->scsw.cmd.fctl & (SCSW_FCTL_CLEAR_FUNC)) in qeth_irq()
1119 if (irb->scsw.cmd.fctl & (SCSW_FCTL_HALT_FUNC)) in qeth_irq()
/linux-4.1.27/drivers/s390/kvm/
Dvirtio_ccw.c942 if (scsw_cstat(&irb->scsw) != 0) in irb_is_error()
944 if (scsw_dstat(&irb->scsw) & ~(DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in irb_is_error()
946 if (scsw_cc(&irb->scsw) != 0) in irb_is_error()
983 (scsw_stctl(&irb->scsw) == in virtio_ccw_int_handler()
989 if ((scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && in virtio_ccw_int_handler()
/linux-4.1.27/Documentation/s390/
Dcds.txt291 sense bytes available in the extended control word irb->scsw.ecw[]. No device
308 The irb->scsw.cstat field provides the (accumulated) subchannel status :
319 The irb->scsw.dstat field provides the (accumulated) device status :