Lines Matching refs:SCpnt
381 host->SCpnt = NULL; in acornscsi_resetcard()
559 if (host->SCpnt) in acornscsi_target()
560 return '0' + host->SCpnt->device->id; in acornscsi_target()
698 struct scsi_cmnd *SCpnt; in acornscsi_kick() local
701 SCpnt = host->origSCpnt; in acornscsi_kick()
705 if (!SCpnt) { in acornscsi_kick()
706 SCpnt = queue_remove_exclude(&host->queues.issue, host->busyluns); in acornscsi_kick()
707 if (!SCpnt) in acornscsi_kick()
713 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_kick()
714 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_kick()
717 DBG(host->SCpnt, printk("scsi%d.%c: moved command to disconnected queue\n", in acornscsi_kick()
720 host->SCpnt = NULL; in acornscsi_kick()
728 sbic_arm_write(host, SBIC_DESTID, SCpnt->device->id); in acornscsi_kick()
737 host->SCpnt = SCpnt; in acornscsi_kick()
738 host->scsi.SCp = SCpnt->SCp; in acornscsi_kick()
744 DBG(SCpnt,printk("scsi%d.%c: starting cmd %02X\n", in acornscsi_kick()
745 host->host->host_no, '0' + SCpnt->device->id, in acornscsi_kick()
746 SCpnt->cmnd[0])); in acornscsi_kick()
754 if (SCpnt->device->simple_tags) { in acornscsi_kick()
755 SCpnt->device->current_tag += 1; in acornscsi_kick()
756 if (SCpnt->device->current_tag == 0) in acornscsi_kick()
757 SCpnt->device->current_tag = 1; in acornscsi_kick()
758 SCpnt->tag = SCpnt->device->current_tag; in acornscsi_kick()
761 set_bit(SCpnt->device->id * 8 + in acornscsi_kick()
762 (u8)(SCpnt->device->lun & 0x07), host->busyluns); in acornscsi_kick()
766 switch (acornscsi_cmdtype(SCpnt->cmnd[0])) { in acornscsi_kick()
791 struct scsi_cmnd *SCpnt = *SCpntp; in acornscsi_done() local
798 if (SCpnt) { in acornscsi_done()
803 SCpnt->result = result << 16 | host->scsi.SCp.Message << 8 | host->scsi.SCp.Status; in acornscsi_done()
816 if (SCpnt->underflow == 0) { in acornscsi_done()
818 acornscsi_cmdtype(SCpnt->cmnd[0]) != CMD_MISC) in acornscsi_done()
821 if (host->scsi.SCp.scsi_xferred < SCpnt->underflow || in acornscsi_done()
842 switch (status_byte(SCpnt->result)) { in acornscsi_done()
851 scmd_printk(KERN_ERR, SCpnt, in acornscsi_done()
853 "result=%08X", SCpnt->result); in acornscsi_done()
854 scsi_print_command(SCpnt); in acornscsi_done()
856 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_done()
857 set_host_byte(SCpnt, DID_ERROR); in acornscsi_done()
862 if (!SCpnt->scsi_done) in acornscsi_done()
865 clear_bit(SCpnt->device->id * 8 + in acornscsi_done()
866 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_done()
868 SCpnt->scsi_done(SCpnt); in acornscsi_done()
1000 DBG(host->SCpnt, acornscsi_dumpdma(host, "stop")); in acornscsi_dma_stop()
1023 if (NO_WRITE & (1 << host->SCpnt->device->id)) { in acornscsi_dma_setup()
1059 DBG(host->SCpnt, acornscsi_dumpdma(host, "strt")); in acornscsi_dma_setup()
1098 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupi")); in acornscsi_dma_cleanup()
1116 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupo")); in acornscsi_dma_cleanup()
1137 DBG(host->SCpnt, acornscsi_dumpdma(host, "inti")); in acornscsi_dma_intr()
1186 DBG(host->SCpnt, acornscsi_dumpdma(host, "into")); in acornscsi_dma_intr()
1198 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_dma_intr()
1238 DBG(host->SCpnt, acornscsi_dumpdma(host, "adji")); in acornscsi_dma_adjust()
1263 DBG(host->SCpnt, acornscsi_dumpdma(host, "adjo")); in acornscsi_dma_adjust()
1306 struct scsi_cmnd *SCpnt = host->SCpnt; in acornscsi_sendcommand() local
1310 sbic_arm_writenext(host, SCpnt->cmd_len - host->scsi.SCp.sent_command); in acornscsi_sendcommand()
1314 if (acornscsi_write_pio(host, SCpnt->cmnd, in acornscsi_sendcommand()
1315 (int *)&host->scsi.SCp.sent_command, SCpnt->cmd_len, 1000000)) in acornscsi_sendcommand()
1499 acornscsi_dumplog(host, host->SCpnt->device->id); in acornscsi_message()
1513 host->SCpnt->SCp = host->scsi.SCp; in acornscsi_message()
1514 host->SCpnt->SCp.sent_command = 0; in acornscsi_message()
1529 host->scsi.SCp = host->SCpnt->SCp; in acornscsi_message()
1555 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) in acornscsi_message()
1556 host->device[host->SCpnt->device->id].sync_state = SYNC_NEGOCIATE; in acornscsi_message()
1578 host->SCpnt->device->simple_tags = 0; in acornscsi_message()
1579 set_bit(host->SCpnt->device->id * 8 + in acornscsi_message()
1580 (u8)(host->SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_message()
1589 host->device[host->SCpnt->device->id].sync_xfer = SYNCHTRANSFER_2DBA; in acornscsi_message()
1590 host->device[host->SCpnt->device->id].sync_state = SYNC_ASYNCHRONOUS; in acornscsi_message()
1591 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1614 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) { in acornscsi_message()
1621 host->device[host->SCpnt->device->id].sync_state = SYNC_COMPLETED; in acornscsi_message()
1625 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1638 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1641 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1691 IDENTIFY(host->device[host->SCpnt->device->id].disconnect_ok, in acornscsi_buildmessages()
1692 host->SCpnt->device->lun)); in acornscsi_buildmessages()
1697 acornscsi_abortcmd(host->SCpnt->tag); in acornscsi_buildmessages()
1703 if (host->SCpnt->tag) { in acornscsi_buildmessages()
1706 if (host->SCpnt->cmnd[0] == REQUEST_SENSE || in acornscsi_buildmessages()
1707 host->SCpnt->cmnd[0] == TEST_UNIT_READY || in acornscsi_buildmessages()
1708 host->SCpnt->cmnd[0] == INQUIRY) in acornscsi_buildmessages()
1712 msgqueue_addmsg(&host->scsi.msgs, 2, tag_type, host->SCpnt->tag); in acornscsi_buildmessages()
1717 if (host->device[host->SCpnt->device->id].sync_state == SYNC_NEGOCIATE) { in acornscsi_buildmessages()
1718 host->device[host->SCpnt->device->id].sync_state = SYNC_SENT_REQUEST; in acornscsi_buildmessages()
1743 residual = scsi_bufflen(host->SCpnt) - host->scsi.SCp.scsi_xferred; in acornscsi_starttransfer()
1745 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_starttransfer()
1778 if (host->SCpnt && !host->scsi.disconnectable) { in acornscsi_reconnect()
1781 host->host->host_no, target, host->SCpnt->device->id); in acornscsi_reconnect()
1782 host->SCpnt = NULL; in acornscsi_reconnect()
1791 if (host->scsi.disconnectable && host->SCpnt && in acornscsi_reconnect()
1792 host->SCpnt->device->id == target && host->SCpnt->device->lun == lun) in acornscsi_reconnect()
1809 if (host->SCpnt) { in acornscsi_reconnect()
1810 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect()
1811 host->SCpnt = NULL; in acornscsi_reconnect()
1827 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_reconnect_finish()
1829 if (host->SCpnt->device->id == host->scsi.reconnected.target && in acornscsi_reconnect_finish()
1830 host->SCpnt->device->lun == host->scsi.reconnected.lun && in acornscsi_reconnect_finish()
1831 host->SCpnt->tag == host->scsi.reconnected.tag) { in acornscsi_reconnect_finish()
1833 DBG(host->SCpnt, printk("scsi%d.%c: reconnected", in acornscsi_reconnect_finish()
1837 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect_finish()
1839 DBG(host->SCpnt, printk("scsi%d.%c: had to move command " in acornscsi_reconnect_finish()
1843 host->SCpnt = NULL; in acornscsi_reconnect_finish()
1846 if (!host->SCpnt) { in acornscsi_reconnect_finish()
1847 host->SCpnt = queue_remove_tgtluntag(&host->queues.disconnected, in acornscsi_reconnect_finish()
1852 DBG(host->SCpnt, printk("scsi%d.%c: had to get command", in acornscsi_reconnect_finish()
1857 if (!host->SCpnt) in acornscsi_reconnect_finish()
1863 host->scsi.SCp = host->SCpnt->SCp; in acornscsi_reconnect_finish()
1875 return host->SCpnt != NULL; in acornscsi_reconnect_finish()
1892 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_disconnect_unexpected()
1944 if (host->SCpnt && !host->scsi.disconnectable) in acornscsi_sbicintr()
1945 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
1983 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, 1); in acornscsi_sbicintr()
1988 acornscsi_done(host, &host->SCpnt, DID_NO_CONNECT); in acornscsi_sbicintr()
1993 host->origSCpnt = host->SCpnt; in acornscsi_sbicintr()
1994 host->SCpnt = NULL; in acornscsi_sbicintr()
2002 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2003 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2032 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
2038 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2039 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2076 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2084 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2085 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2088 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2094 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2095 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2098 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2121 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2134 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2144 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2159 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
2166 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2175 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2204 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2216 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2223 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2234 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2244 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2253 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2265 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2272 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2284 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2295 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2305 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2326 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2349 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2350 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
2356 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2363 acornscsi_done(host, &host->SCpnt, DID_OK); in acornscsi_sbicintr()
2374 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2381 if (host->SCpnt) in acornscsi_sbicintr()
2382 acornscsi_done(host, &host->SCpnt, DID_ABORT); in acornscsi_sbicintr()
2400 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2407 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2467 static int acornscsi_queuecmd_lck(struct scsi_cmnd *SCpnt, in acornscsi_queuecmd_lck() argument
2470 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_queuecmd_lck()
2475 host->host->host_no, SCpnt); in acornscsi_queuecmd_lck()
2480 if (acornscsi_cmdtype(SCpnt->cmnd[0]) == CMD_WRITE && (NO_WRITE & (1 << SCpnt->device->id))) { in acornscsi_queuecmd_lck()
2482 host->host->host_no, '0' + SCpnt->device->id); in acornscsi_queuecmd_lck()
2483 SCpnt->result = DID_NO_CONNECT << 16; in acornscsi_queuecmd_lck()
2484 done(SCpnt); in acornscsi_queuecmd_lck()
2489 SCpnt->scsi_done = done; in acornscsi_queuecmd_lck()
2490 SCpnt->host_scribble = NULL; in acornscsi_queuecmd_lck()
2491 SCpnt->result = 0; in acornscsi_queuecmd_lck()
2492 SCpnt->tag = 0; in acornscsi_queuecmd_lck()
2493 SCpnt->SCp.phase = (int)acornscsi_datadirection(SCpnt->cmnd[0]); in acornscsi_queuecmd_lck()
2494 SCpnt->SCp.sent_command = 0; in acornscsi_queuecmd_lck()
2495 SCpnt->SCp.scsi_xferred = 0; in acornscsi_queuecmd_lck()
2497 init_SCp(SCpnt); in acornscsi_queuecmd_lck()
2504 if (!queue_add_cmd_ordered(&host->queues.issue, SCpnt)) { in acornscsi_queuecmd_lck()
2505 SCpnt->result = DID_ERROR << 16; in acornscsi_queuecmd_lck()
2506 done(SCpnt); in acornscsi_queuecmd_lck()
2531 struct scsi_cmnd *SCpnt = *SCpntp1; in DEF_SCSI_QCMD() local
2533 if (SCpnt) { in DEF_SCSI_QCMD()
2536 SCpnt->result = result; in DEF_SCSI_QCMD()
2537 SCpnt->scsi_done(SCpnt); in DEF_SCSI_QCMD()
2540 if (SCpnt == *SCpntp2) in DEF_SCSI_QCMD()
2552 static enum res_abort acornscsi_do_abort(AS_Host *host, struct scsi_cmnd *SCpnt) in acornscsi_do_abort() argument
2556 if (queue_remove_cmd(&host->queues.issue, SCpnt)) { in acornscsi_do_abort()
2567 } else if (queue_remove_cmd(&host->queues.disconnected, SCpnt)) { in acornscsi_do_abort()
2579 } else if (host->SCpnt == SCpnt) { in acornscsi_do_abort()
2599 host->SCpnt = NULL; in acornscsi_do_abort()
2611 host->SCpnt = NULL; in acornscsi_do_abort()
2616 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_do_abort()
2620 } else if (host->origSCpnt == SCpnt) { in acornscsi_do_abort()
2644 int acornscsi_abort(struct scsi_cmnd *SCpnt) in acornscsi_abort() argument
2646 AS_Host *host = (AS_Host *) SCpnt->device->host->hostdata; in acornscsi_abort()
2659 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2665 switch (acornscsi_do_abort(host, SCpnt)) { in acornscsi_abort()
2675 clear_bit(SCpnt->device->id * 8 + in acornscsi_abort()
2676 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_abort()
2708 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2725 int acornscsi_host_reset(struct scsi_cmnd *SCpnt) in acornscsi_host_reset() argument
2727 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_host_reset()