Lines Matching refs:SCpnt
384 host->SCpnt = NULL; in acornscsi_resetcard()
562 if (host->SCpnt) in acornscsi_target()
563 return '0' + host->SCpnt->device->id; in acornscsi_target()
701 struct scsi_cmnd *SCpnt; in acornscsi_kick() local
704 SCpnt = host->origSCpnt; in acornscsi_kick()
708 if (!SCpnt) { in acornscsi_kick()
709 SCpnt = queue_remove_exclude(&host->queues.issue, host->busyluns); in acornscsi_kick()
710 if (!SCpnt) in acornscsi_kick()
716 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_kick()
717 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_kick()
720 DBG(host->SCpnt, printk("scsi%d.%c: moved command to disconnected queue\n", in acornscsi_kick()
723 host->SCpnt = NULL; in acornscsi_kick()
731 sbic_arm_write(host, SBIC_DESTID, SCpnt->device->id); in acornscsi_kick()
740 host->SCpnt = SCpnt; in acornscsi_kick()
741 host->scsi.SCp = SCpnt->SCp; in acornscsi_kick()
747 DBG(SCpnt,printk("scsi%d.%c: starting cmd %02X\n", in acornscsi_kick()
748 host->host->host_no, '0' + SCpnt->device->id, in acornscsi_kick()
749 SCpnt->cmnd[0])); in acornscsi_kick()
757 if (SCpnt->device->simple_tags) { in acornscsi_kick()
758 SCpnt->device->current_tag += 1; in acornscsi_kick()
759 if (SCpnt->device->current_tag == 0) in acornscsi_kick()
760 SCpnt->device->current_tag = 1; in acornscsi_kick()
761 SCpnt->tag = SCpnt->device->current_tag; in acornscsi_kick()
764 set_bit(SCpnt->device->id * 8 + in acornscsi_kick()
765 (u8)(SCpnt->device->lun & 0x07), host->busyluns); in acornscsi_kick()
769 switch (acornscsi_cmdtype(SCpnt->cmnd[0])) { in acornscsi_kick()
794 struct scsi_cmnd *SCpnt = *SCpntp; in acornscsi_done() local
801 if (SCpnt) { in acornscsi_done()
806 SCpnt->result = result << 16 | host->scsi.SCp.Message << 8 | host->scsi.SCp.Status; in acornscsi_done()
819 if (SCpnt->underflow == 0) { in acornscsi_done()
821 acornscsi_cmdtype(SCpnt->cmnd[0]) != CMD_MISC) in acornscsi_done()
824 if (host->scsi.SCp.scsi_xferred < SCpnt->underflow || in acornscsi_done()
845 switch (status_byte(SCpnt->result)) { in acornscsi_done()
854 scmd_printk(KERN_ERR, SCpnt, in acornscsi_done()
856 "result=%08X", SCpnt->result); in acornscsi_done()
857 scsi_print_command(SCpnt); in acornscsi_done()
859 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_done()
860 set_host_byte(SCpnt, DID_ERROR); in acornscsi_done()
865 if (!SCpnt->scsi_done) in acornscsi_done()
868 clear_bit(SCpnt->device->id * 8 + in acornscsi_done()
869 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_done()
871 SCpnt->scsi_done(SCpnt); in acornscsi_done()
1003 DBG(host->SCpnt, acornscsi_dumpdma(host, "stop")); in acornscsi_dma_stop()
1026 if (NO_WRITE & (1 << host->SCpnt->device->id)) { in acornscsi_dma_setup()
1062 DBG(host->SCpnt, acornscsi_dumpdma(host, "strt")); in acornscsi_dma_setup()
1101 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupi")); in acornscsi_dma_cleanup()
1119 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupo")); in acornscsi_dma_cleanup()
1140 DBG(host->SCpnt, acornscsi_dumpdma(host, "inti")); in acornscsi_dma_intr()
1189 DBG(host->SCpnt, acornscsi_dumpdma(host, "into")); in acornscsi_dma_intr()
1201 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_dma_intr()
1241 DBG(host->SCpnt, acornscsi_dumpdma(host, "adji")); in acornscsi_dma_adjust()
1266 DBG(host->SCpnt, acornscsi_dumpdma(host, "adjo")); in acornscsi_dma_adjust()
1309 struct scsi_cmnd *SCpnt = host->SCpnt; in acornscsi_sendcommand() local
1313 sbic_arm_writenext(host, SCpnt->cmd_len - host->scsi.SCp.sent_command); in acornscsi_sendcommand()
1317 if (acornscsi_write_pio(host, SCpnt->cmnd, in acornscsi_sendcommand()
1318 (int *)&host->scsi.SCp.sent_command, SCpnt->cmd_len, 1000000)) in acornscsi_sendcommand()
1502 acornscsi_dumplog(host, host->SCpnt->device->id); in acornscsi_message()
1516 host->SCpnt->SCp = host->scsi.SCp; in acornscsi_message()
1517 host->SCpnt->SCp.sent_command = 0; in acornscsi_message()
1532 host->scsi.SCp = host->SCpnt->SCp; in acornscsi_message()
1558 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) in acornscsi_message()
1559 host->device[host->SCpnt->device->id].sync_state = SYNC_NEGOCIATE; in acornscsi_message()
1581 host->SCpnt->device->simple_tags = 0; in acornscsi_message()
1582 set_bit(host->SCpnt->device->id * 8 + in acornscsi_message()
1583 (u8)(host->SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_message()
1592 host->device[host->SCpnt->device->id].sync_xfer = SYNCHTRANSFER_2DBA; in acornscsi_message()
1593 host->device[host->SCpnt->device->id].sync_state = SYNC_ASYNCHRONOUS; in acornscsi_message()
1594 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1617 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) { in acornscsi_message()
1624 host->device[host->SCpnt->device->id].sync_state = SYNC_COMPLETED; in acornscsi_message()
1628 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1641 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1644 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1694 IDENTIFY(host->device[host->SCpnt->device->id].disconnect_ok, in acornscsi_buildmessages()
1695 host->SCpnt->device->lun)); in acornscsi_buildmessages()
1700 acornscsi_abortcmd(host->SCpnt->tag); in acornscsi_buildmessages()
1706 if (host->SCpnt->tag) { in acornscsi_buildmessages()
1709 if (host->SCpnt->cmnd[0] == REQUEST_SENSE || in acornscsi_buildmessages()
1710 host->SCpnt->cmnd[0] == TEST_UNIT_READY || in acornscsi_buildmessages()
1711 host->SCpnt->cmnd[0] == INQUIRY) in acornscsi_buildmessages()
1715 msgqueue_addmsg(&host->scsi.msgs, 2, tag_type, host->SCpnt->tag); in acornscsi_buildmessages()
1720 if (host->device[host->SCpnt->device->id].sync_state == SYNC_NEGOCIATE) { in acornscsi_buildmessages()
1721 host->device[host->SCpnt->device->id].sync_state = SYNC_SENT_REQUEST; in acornscsi_buildmessages()
1746 residual = scsi_bufflen(host->SCpnt) - host->scsi.SCp.scsi_xferred; in acornscsi_starttransfer()
1748 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_starttransfer()
1781 if (host->SCpnt && !host->scsi.disconnectable) { in acornscsi_reconnect()
1784 host->host->host_no, target, host->SCpnt->device->id); in acornscsi_reconnect()
1785 host->SCpnt = NULL; in acornscsi_reconnect()
1794 if (host->scsi.disconnectable && host->SCpnt && in acornscsi_reconnect()
1795 host->SCpnt->device->id == target && host->SCpnt->device->lun == lun) in acornscsi_reconnect()
1812 if (host->SCpnt) { in acornscsi_reconnect()
1813 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect()
1814 host->SCpnt = NULL; in acornscsi_reconnect()
1830 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_reconnect_finish()
1832 if (host->SCpnt->device->id == host->scsi.reconnected.target && in acornscsi_reconnect_finish()
1833 host->SCpnt->device->lun == host->scsi.reconnected.lun && in acornscsi_reconnect_finish()
1834 host->SCpnt->tag == host->scsi.reconnected.tag) { in acornscsi_reconnect_finish()
1836 DBG(host->SCpnt, printk("scsi%d.%c: reconnected", in acornscsi_reconnect_finish()
1840 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect_finish()
1842 DBG(host->SCpnt, printk("scsi%d.%c: had to move command " in acornscsi_reconnect_finish()
1846 host->SCpnt = NULL; in acornscsi_reconnect_finish()
1849 if (!host->SCpnt) { in acornscsi_reconnect_finish()
1850 host->SCpnt = queue_remove_tgtluntag(&host->queues.disconnected, in acornscsi_reconnect_finish()
1855 DBG(host->SCpnt, printk("scsi%d.%c: had to get command", in acornscsi_reconnect_finish()
1860 if (!host->SCpnt) in acornscsi_reconnect_finish()
1866 host->scsi.SCp = host->SCpnt->SCp; in acornscsi_reconnect_finish()
1878 return host->SCpnt != NULL; in acornscsi_reconnect_finish()
1895 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_disconnect_unexpected()
1947 if (host->SCpnt && !host->scsi.disconnectable) in acornscsi_sbicintr()
1948 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
1986 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, 1); in acornscsi_sbicintr()
1991 acornscsi_done(host, &host->SCpnt, DID_NO_CONNECT); in acornscsi_sbicintr()
1996 host->origSCpnt = host->SCpnt; in acornscsi_sbicintr()
1997 host->SCpnt = NULL; in acornscsi_sbicintr()
2005 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2006 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2035 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
2041 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2042 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2079 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2087 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2088 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2091 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2097 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2098 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2101 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2124 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2137 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2147 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2162 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
2169 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2178 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2207 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2219 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2226 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2237 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2247 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2256 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2268 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_sbicintr()
2275 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2287 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2298 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2308 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2329 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2352 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2353 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
2359 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2366 acornscsi_done(host, &host->SCpnt, DID_OK); in acornscsi_sbicintr()
2377 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2384 if (host->SCpnt) in acornscsi_sbicintr()
2385 acornscsi_done(host, &host->SCpnt, DID_ABORT); in acornscsi_sbicintr()
2403 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2410 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2470 static int acornscsi_queuecmd_lck(struct scsi_cmnd *SCpnt, in acornscsi_queuecmd_lck() argument
2473 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_queuecmd_lck()
2478 host->host->host_no, SCpnt); in acornscsi_queuecmd_lck()
2483 if (acornscsi_cmdtype(SCpnt->cmnd[0]) == CMD_WRITE && (NO_WRITE & (1 << SCpnt->device->id))) { in acornscsi_queuecmd_lck()
2485 host->host->host_no, '0' + SCpnt->device->id); in acornscsi_queuecmd_lck()
2486 SCpnt->result = DID_NO_CONNECT << 16; in acornscsi_queuecmd_lck()
2487 done(SCpnt); in acornscsi_queuecmd_lck()
2492 SCpnt->scsi_done = done; in acornscsi_queuecmd_lck()
2493 SCpnt->host_scribble = NULL; in acornscsi_queuecmd_lck()
2494 SCpnt->result = 0; in acornscsi_queuecmd_lck()
2495 SCpnt->tag = 0; in acornscsi_queuecmd_lck()
2496 SCpnt->SCp.phase = (int)acornscsi_datadirection(SCpnt->cmnd[0]); in acornscsi_queuecmd_lck()
2497 SCpnt->SCp.sent_command = 0; in acornscsi_queuecmd_lck()
2498 SCpnt->SCp.scsi_xferred = 0; in acornscsi_queuecmd_lck()
2500 init_SCp(SCpnt); in acornscsi_queuecmd_lck()
2507 if (!queue_add_cmd_ordered(&host->queues.issue, SCpnt)) { in acornscsi_queuecmd_lck()
2508 SCpnt->result = DID_ERROR << 16; in acornscsi_queuecmd_lck()
2509 done(SCpnt); in acornscsi_queuecmd_lck()
2534 struct scsi_cmnd *SCpnt = *SCpntp1; in DEF_SCSI_QCMD() local
2536 if (SCpnt) { in DEF_SCSI_QCMD()
2539 SCpnt->result = result; in DEF_SCSI_QCMD()
2540 SCpnt->scsi_done(SCpnt); in DEF_SCSI_QCMD()
2543 if (SCpnt == *SCpntp2) in DEF_SCSI_QCMD()
2555 static enum res_abort acornscsi_do_abort(AS_Host *host, struct scsi_cmnd *SCpnt) in acornscsi_do_abort() argument
2559 if (queue_remove_cmd(&host->queues.issue, SCpnt)) { in acornscsi_do_abort()
2570 } else if (queue_remove_cmd(&host->queues.disconnected, SCpnt)) { in acornscsi_do_abort()
2582 } else if (host->SCpnt == SCpnt) { in acornscsi_do_abort()
2602 host->SCpnt = NULL; in acornscsi_do_abort()
2614 host->SCpnt = NULL; in acornscsi_do_abort()
2619 acornscsi_abortcmd(host, host->SCpnt->tag); in acornscsi_do_abort()
2623 } else if (host->origSCpnt == SCpnt) { in acornscsi_do_abort()
2647 int acornscsi_abort(struct scsi_cmnd *SCpnt) in acornscsi_abort() argument
2649 AS_Host *host = (AS_Host *) SCpnt->device->host->hostdata; in acornscsi_abort()
2662 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2668 switch (acornscsi_do_abort(host, SCpnt)) { in acornscsi_abort()
2678 clear_bit(SCpnt->device->id * 8 + in acornscsi_abort()
2679 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_abort()
2711 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2728 int acornscsi_host_reset(struct scsi_cmnd *SCpnt) in acornscsi_host_reset() argument
2730 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_host_reset()