/linux/arch/s390/include/asm/ |
H A D | scsw.h | 141 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 …]
|
H A D | cio.h | 237 union scsw scsw; member
|
/linux/drivers/s390/cio/ |
H A D | device_status.c | 34 if (!scsw_is_valid_cstat(&irb->scsw) || in ccw_device_msg_control_check() 35 !(scsw_cstat(&irb->scsw) & (SCHN_STAT_CHN_DATA_CHK | in ccw_device_msg_control_check() 44 scsw_dstat(&irb->scsw), scsw_cstat(&irb->scsw)); in ccw_device_msg_control_check() 83 cdev->private->dma_area->irb.scsw.cmd.ectl = 0; in ccw_device_accumulate_ecw() 84 if ((irb->scsw.cmd.stctl & SCSW_STCTL_ALERT_STATUS) && in ccw_device_accumulate_ecw() 85 !(irb->scsw.cmd.stctl & SCSW_STCTL_INTER_STATUS)) in ccw_device_accumulate_ecw() 86 cdev->private->dma_area->irb.scsw.cmd.ectl = irb->scsw.cmd.ectl; in ccw_device_accumulate_ecw() 88 if (!cdev->private->dma_area->irb.scsw.cmd.ectl) in ccw_device_accumulate_ecw() 100 if (!irb->scsw.cmd.eswf && in ccw_device_accumulate_esw_valid() 101 (irb->scsw.cmd.stctl == SCSW_STCTL_STATUS_PEND)) in ccw_device_accumulate_esw_valid() [all …]
|
H A D | ccwreq.c | 173 struct cmd_scsw *scsw = &irb->scsw.cmd; in ccwreq_status() local 180 if (scsw->fctl & (SCSW_FCTL_HALT_FUNC | SCSW_FCTL_CLEAR_FUNC)) in ccwreq_status() 183 if (scsw->cc == 3 || scsw->pno) in ccwreq_status() 215 if (scsw->cstat != 0) in ccwreq_status() 218 if (scsw->dstat & ~(DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in ccwreq_status() 221 if (!(scsw->dstat & DEV_STAT_DEV_END)) in ccwreq_status() 224 if (scsw->cc == 1 && (scsw->stctl & SCSW_STCTL_ALERT_STATUS)) in ccwreq_status() 340 scsw_cstat(&sch->schib.scsw), in ccw_request_timeout() 341 scsw_dstat(&sch->schib.scsw), in ccw_request_timeout()
|
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() 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 D | device_fsm.c | 458 struct cmd_scsw *scsw = &irb->scsw.cmd; in create_fake_irb() local 459 scsw->cc = 1; in create_fake_irb() 460 scsw->fctl = SCSW_FCTL_START_FUNC; in create_fake_irb() 461 scsw->actl = SCSW_ACTL_START_PEND; in create_fake_irb() 462 scsw->stctl = SCSW_STCTL_STATUS_PEND; in create_fake_irb() 464 struct tm_scsw *scsw = &irb->scsw.tm; in create_fake_irb() local 465 scsw->x = 1; in create_fake_irb() 466 scsw->cc = 1; in create_fake_irb() 467 scsw->fctl = SCSW_FCTL_START_FUNC; in create_fake_irb() 468 scsw->actl = SCSW_ACTL_START_PEND; in create_fake_irb() [all …]
|
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() local 134 if ((scsw->stctl & (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND)) in eadm_subchannel_irq() 135 && scsw->eswf == 1 && irb->esw.eadm.erw.r) in eadm_subchannel_irq() 138 if (scsw->fctl & SCSW_FCTL_CLEAR_FUNC) in eadm_subchannel_irq() 150 scm_irq_handler(dma32_to_virt(scsw->aob), error); in eadm_subchannel_irq()
|
H A D | trace.h | 128 __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 D | vfio_ccw_cp.h | 47 void cp_update_scsw(struct channel_program *cp, union scsw *scsw);
|
H A D | device_id.c | 148 struct cmd_scsw *scsw = &cdev->private->dma_area->irb.scsw.cmd; in snsid_check() local 149 int len = sizeof(struct senseid) - scsw->count; in snsid_check()
|
H A D | chsc_sch.c | 176 return sch->schib.pmcw.ena && !scsw_fctl(&sch->schib.scsw); in chsc_subchannel_match_next_free() 232 sch->schib.scsw.cmd.fctl |= SCSW_FCTL_START_FUNC; in chsc_async() 267 if (!(scsw_stctl(&request->irb.scsw) & SCSW_STCTL_STATUS_PEND)) in chsc_examine_irb() 269 backed_up = scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb() 270 request->irb.scsw.cmd.cstat &= ~SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb() 271 if (scsw_cstat(&request->irb.scsw) == 0) in chsc_examine_irb() 275 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROG_CHECK) in chsc_examine_irb() 277 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROT_CHECK) in chsc_examine_irb() 279 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHN_DATA_CHK) in chsc_examine_irb() 281 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHN_CTRL_CHK) in chsc_examine_irb()
|
H A D | vfio_ccw_private.h | 120 union scsw scsw; member
|
H A D | vfio_ccw_drv.c | 92 is_final = !(scsw_actl(&irb->scsw) & in vfio_ccw_sch_io_todo() 94 if (scsw_is_solicited(&irb->scsw)) { in vfio_ccw_sch_io_todo() 95 cp_update_scsw(&private->cp, &irb->scsw); in vfio_ccw_sch_io_todo()
|
H A D | vfio_ccw_cp.c | 902 void cp_update_scsw(struct channel_program *cp, union scsw *scsw) in cp_update_scsw() argument 905 dma32_t cpa = scsw->cmd.cpa; in cp_update_scsw() 936 scsw->cmd.cpa = cpa; in cp_update_scsw()
|
/linux/drivers/s390/block/ |
H A D | dasd_fba.c | 238 if ((irb->scsw.cmd.dstat & mask) == mask) in dasd_fba_check_for_device_change() 644 scsw_is_tm(&irb->scsw) ? "t" : "c", in dasd_fba_dump_sense_dbf() 645 scsw_cc(&irb->scsw), scsw_cstat(&irb->scsw), in dasd_fba_dump_sense_dbf() 646 scsw_dstat(&irb->scsw), sense[0], sense[1], in dasd_fba_dump_sense_dbf() 674 req, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat); in dasd_fba_dump_sense() 676 (void *)(u64)dma32_to_u32(irb->scsw.cmd.cpa)); in dasd_fba_dump_sense() 714 if (act < ((struct ccw1 *)dma32_to_virt(irb->scsw.cmd.cpa)) - 2) { in dasd_fba_dump_sense() 715 act = ((struct ccw1 *)dma32_to_virt(irb->scsw.cmd.cpa)) - 2; in dasd_fba_dump_sense() 718 end = min((struct ccw1 *)dma32_to_virt(irb->scsw.cmd.cpa) + 2, last); in dasd_fba_dump_sense()
|
H A D | dasd_3990_erp.c | 1606 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() 2483 if ((scsw_cstat(&cqr1->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK | in dasd_3990_erp_error_match() 2485 (scsw_cstat(&cqr2->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK | in dasd_3990_erp_error_match() 2756 if ((scsw_cstat(&cqr->irb.scsw) == 0x00) && in dasd_3990_erp_action() 2757 (scsw_dstat(&cqr->irb.scsw) == in dasd_3990_erp_action()
|
H A D | dasd_eckd.c | 3521 if (tpm && scsw_cstat(&irb.scsw) == 0x40) { in dasd_eckd_check_device_format() 3592 if ((scsw_dstat(&irb->scsw) & mask) == mask) { in dasd_eckd_check_for_device_change() 3614 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK)) { in dasd_eckd_check_for_device_change() 3651 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && in dasd_eckd_check_for_device_change() 5555 stat = (u64 *) &irb->scsw; in dasd_eckd_dump_sense_dbf() 5592 req, scsw_cc(&irb->scsw), scsw_fctl(&irb->scsw), in dasd_eckd_dump_sense_ccw() 5593 scsw_actl(&irb->scsw), scsw_stctl(&irb->scsw), in dasd_eckd_dump_sense_ccw() 5594 scsw_dstat(&irb->scsw), scsw_cstat(&irb->scsw), in dasd_eckd_dump_sense_ccw() 5597 dma32_to_virt(irb->scsw.cmd.cpa)); in dasd_eckd_dump_sense_ccw() 5640 fail = dma32_to_virt(irb->scsw.cmd.cpa); /* failing CCW */ in dasd_eckd_dump_sense_ccw() [all …]
|
H A D | dasd.c | 1582 return (scsw_tm_is_valid_schxs(&irb->scsw) && in dasd_check_hpf_error() 1583 (irb->scsw.tm.sesq == SCSW_SESQ_DEV_NOFCX || in dasd_check_hpf_error() 1584 irb->scsw.tm.sesq == SCSW_SESQ_PATH_NOFCX)); in dasd_check_hpf_error() 1608 scsw_is_tm(&irb->scsw) && in dasd_ese_needs_format() 1667 !(scsw_dstat(&irb->scsw) == (DEV_STAT_CHN_END | DEV_STAT_DEV_END) && in dasd_int_handler() 1668 scsw_cstat(&irb->scsw) == 0)) { in dasd_int_handler() 1715 if (scsw_dstat(&irb->scsw) & DEV_STAT_ATTENTION) { in dasd_int_handler() 1773 scsw_fctl(&irb->scsw) & SCSW_FCTL_CLEAR_FUNC) { in dasd_int_handler() 1790 if (scsw_dstat(&irb->scsw) == (DEV_STAT_CHN_END | DEV_STAT_DEV_END) && in dasd_int_handler() 1791 scsw_cstat(&irb->scsw) == 0) { in dasd_int_handler() [all …]
|
/linux/drivers/s390/net/ |
H A D | lcs.c | 1311 cstat = irb->scsw.cmd.cstat; in lcs_get_problem() 1312 dstat = irb->scsw.cmd.dstat; in lcs_get_problem() 1372 cstat = irb->scsw.cmd.cstat; in lcs_irq() 1373 dstat = irb->scsw.cmd.dstat; in lcs_irq() 1375 LCS_DBF_TEXT_(5, trace, "%4x%4x", irb->scsw.cmd.cstat, in lcs_irq() 1376 irb->scsw.cmd.dstat); in lcs_irq() 1377 LCS_DBF_TEXT_(5, trace, "%4x%4x", irb->scsw.cmd.fctl, in lcs_irq() 1378 irb->scsw.cmd.actl); in lcs_irq() 1398 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) && in lcs_irq() 1399 (irb->scsw.cmd.cpa != 0)) { in lcs_irq() [all …]
|
H A D | ctcm_main.c | 1165 cstat = irb->scsw.cmd.cstat; in ctcm_irq_handler() 1166 dstat = irb->scsw.cmd.dstat; in ctcm_irq_handler() 1207 if (irb->scsw.cmd.cstat) { in ctcm_irq_handler() 1218 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in ctcm_irq_handler() 1227 if (irb->scsw.cmd.dstat & DEV_STAT_BUSY) { in ctcm_irq_handler() 1228 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) in ctcm_irq_handler() 1234 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in ctcm_irq_handler() 1238 if ((irb->scsw.cmd.stctl & SCSW_STCTL_SEC_STATUS) || in ctcm_irq_handler() 1239 (irb->scsw.cmd.stctl == SCSW_STCTL_STATUS_PEND) || in ctcm_irq_handler() 1240 (irb->scsw.cmd.stctl == in ctcm_irq_handler()
|
H A D | ctcm_fsms.c | 263 if (ch->irb->scsw.cmd.count != 0) in chx_txdone() 266 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() 1234 if (ch->irb->scsw.cmd.count != 0) in ctcmpc_chx_txdone() 1237 CTCM_FUNTAIL, dev->name, ch->irb->scsw.cmd.count); in ctcmpc_chx_txdone() 1381 int len = ch->max_bufsize - ch->irb->scsw.cmd.count; in ctcmpc_chx_rx()
|
/linux/drivers/s390/char/ |
H A D | tape_3590.c | 802 if (irb->scsw.cmd.dstat == DEV_STAT_CHN_END) in tape_3590_unsolicited_irq() 805 else if (irb->scsw.cmd.dstat == 0x85) in tape_3590_unsolicited_irq() 808 else if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in tape_3590_unsolicited_irq() 1457 if ((irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) && in tape_3590_irq() 1458 (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) && in tape_3590_irq() 1465 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in tape_3590_irq() 1468 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { in tape_3590_irq() 1469 if (irb->scsw.cmd.dstat == DEV_STAT_UNIT_EXCEP) { in tape_3590_irq() 1479 if (irb->scsw.cmd.dstat & DEV_STAT_CHN_END) { in tape_3590_irq() 1484 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in tape_3590_irq()
|
H A D | tape_34xx.c | 224 if (irb->scsw.cmd.dstat == 0x85) { /* READY */ in tape_34xx_unsolicited_irq() 838 if ((irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) && in tape_34xx_irq() 839 (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) && in tape_34xx_irq() 845 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in tape_34xx_irq() 848 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { in tape_34xx_irq() 852 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_EXCEP) { in tape_34xx_irq()
|
H A D | fs3270.c | 221 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in fs3270_irq() 227 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in fs3270_irq() 231 rq->rescnt = irb->scsw.cmd.count; in fs3270_irq()
|
H A D | raw3270.c | 354 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) in raw3270_irq() 356 if (irb->scsw.cmd.dstat == (DEV_STAT_CHN_END | in raw3270_irq() 361 if ((irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) && in raw3270_irq() 704 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in raw3270_init_irq() 711 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in raw3270_init_irq()
|