Lines Matching refs:SCpnt
371 host->SCpnt = NULL; in acornscsi_resetcard()
549 if (host->SCpnt) in acornscsi_target()
550 return '0' + host->SCpnt->device->id; in acornscsi_target()
688 struct scsi_cmnd *SCpnt; in acornscsi_kick() local
691 SCpnt = host->origSCpnt; in acornscsi_kick()
695 if (!SCpnt) { in acornscsi_kick()
696 SCpnt = queue_remove_exclude(&host->queues.issue, host->busyluns); in acornscsi_kick()
697 if (!SCpnt) in acornscsi_kick()
703 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_kick()
704 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_kick()
707 DBG(host->SCpnt, printk("scsi%d.%c: moved command to disconnected queue\n", in acornscsi_kick()
710 host->SCpnt = NULL; in acornscsi_kick()
718 sbic_arm_write(host, SBIC_DESTID, SCpnt->device->id); in acornscsi_kick()
727 host->SCpnt = SCpnt; in acornscsi_kick()
728 host->scsi.SCp = SCpnt->SCp; in acornscsi_kick()
734 DBG(SCpnt,printk("scsi%d.%c: starting cmd %02X\n", in acornscsi_kick()
735 host->host->host_no, '0' + SCpnt->device->id, in acornscsi_kick()
736 SCpnt->cmnd[0])); in acornscsi_kick()
740 set_bit(SCpnt->device->id * 8 + in acornscsi_kick()
741 (u8)(SCpnt->device->lun & 0x07), host->busyluns); in acornscsi_kick()
745 switch (acornscsi_cmdtype(SCpnt->cmnd[0])) { in acornscsi_kick()
770 struct scsi_cmnd *SCpnt = *SCpntp; in acornscsi_done() local
777 if (SCpnt) { in acornscsi_done()
782 set_host_byte(SCpnt, result); in acornscsi_done()
784 scsi_msg_to_host_byte(SCpnt, host->scsi.SCp.Message); in acornscsi_done()
785 set_status_byte(SCpnt, host->scsi.SCp.Status); in acornscsi_done()
798 if (SCpnt->underflow == 0) { in acornscsi_done()
800 acornscsi_cmdtype(SCpnt->cmnd[0]) != CMD_MISC) in acornscsi_done()
803 if (host->scsi.SCp.scsi_xferred < SCpnt->underflow || in acornscsi_done()
824 switch (get_status_byte(SCpnt)) { in acornscsi_done()
833 scmd_printk(KERN_ERR, SCpnt, in acornscsi_done()
835 "result=%08X", SCpnt->result); in acornscsi_done()
836 scsi_print_command(SCpnt); in acornscsi_done()
838 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_done()
839 set_host_byte(SCpnt, DID_ERROR); in acornscsi_done()
844 if (!SCpnt->scsi_done) in acornscsi_done()
847 clear_bit(SCpnt->device->id * 8 + in acornscsi_done()
848 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_done()
850 SCpnt->scsi_done(SCpnt); in acornscsi_done()
982 DBG(host->SCpnt, acornscsi_dumpdma(host, "stop")); in acornscsi_dma_stop()
1005 if (NO_WRITE & (1 << host->SCpnt->device->id)) { in acornscsi_dma_setup()
1041 DBG(host->SCpnt, acornscsi_dumpdma(host, "strt")); in acornscsi_dma_setup()
1080 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupi")); in acornscsi_dma_cleanup()
1098 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupo")); in acornscsi_dma_cleanup()
1119 DBG(host->SCpnt, acornscsi_dumpdma(host, "inti")); in acornscsi_dma_intr()
1168 DBG(host->SCpnt, acornscsi_dumpdma(host, "into")); in acornscsi_dma_intr()
1220 DBG(host->SCpnt, acornscsi_dumpdma(host, "adji")); in acornscsi_dma_adjust()
1245 DBG(host->SCpnt, acornscsi_dumpdma(host, "adjo")); in acornscsi_dma_adjust()
1288 struct scsi_cmnd *SCpnt = host->SCpnt; in acornscsi_sendcommand() local
1292 sbic_arm_writenext(host, SCpnt->cmd_len - host->scsi.SCp.sent_command); in acornscsi_sendcommand()
1296 if (acornscsi_write_pio(host, SCpnt->cmnd, in acornscsi_sendcommand()
1297 (int *)&host->scsi.SCp.sent_command, SCpnt->cmd_len, 1000000)) in acornscsi_sendcommand()
1481 acornscsi_dumplog(host, host->SCpnt->device->id); in acornscsi_message()
1495 host->SCpnt->SCp = host->scsi.SCp; in acornscsi_message()
1496 host->SCpnt->SCp.sent_command = 0; in acornscsi_message()
1511 host->scsi.SCp = host->SCpnt->SCp; in acornscsi_message()
1537 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) in acornscsi_message()
1538 host->device[host->SCpnt->device->id].sync_state = SYNC_NEGOCIATE; in acornscsi_message()
1554 host->device[host->SCpnt->device->id].sync_xfer = SYNCHTRANSFER_2DBA; in acornscsi_message()
1555 host->device[host->SCpnt->device->id].sync_state = SYNC_ASYNCHRONOUS; in acornscsi_message()
1556 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1575 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) { in acornscsi_message()
1582 host->device[host->SCpnt->device->id].sync_state = SYNC_COMPLETED; in acornscsi_message()
1586 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1599 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1602 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1652 IDENTIFY(host->device[host->SCpnt->device->id].disconnect_ok, in acornscsi_buildmessages()
1653 host->SCpnt->device->lun)); in acornscsi_buildmessages()
1665 if (host->device[host->SCpnt->device->id].sync_state == SYNC_NEGOCIATE) { in acornscsi_buildmessages()
1666 host->device[host->SCpnt->device->id].sync_state = SYNC_SENT_REQUEST; in acornscsi_buildmessages()
1691 residual = scsi_bufflen(host->SCpnt) - host->scsi.SCp.scsi_xferred; in acornscsi_starttransfer()
1693 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_starttransfer()
1726 if (host->SCpnt && !host->scsi.disconnectable) { in acornscsi_reconnect()
1729 host->host->host_no, target, host->SCpnt->device->id); in acornscsi_reconnect()
1730 host->SCpnt = NULL; in acornscsi_reconnect()
1739 if (host->scsi.disconnectable && host->SCpnt && in acornscsi_reconnect()
1740 host->SCpnt->device->id == target && host->SCpnt->device->lun == lun) in acornscsi_reconnect()
1757 if (host->SCpnt) { in acornscsi_reconnect()
1758 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect()
1759 host->SCpnt = NULL; in acornscsi_reconnect()
1775 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_reconnect_finish()
1777 if (host->SCpnt->device->id == host->scsi.reconnected.target && in acornscsi_reconnect_finish()
1778 host->SCpnt->device->lun == host->scsi.reconnected.lun && in acornscsi_reconnect_finish()
1779 scsi_cmd_to_rq(host->SCpnt)->tag == host->scsi.reconnected.tag) { in acornscsi_reconnect_finish()
1781 DBG(host->SCpnt, printk("scsi%d.%c: reconnected", in acornscsi_reconnect_finish()
1785 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect_finish()
1787 DBG(host->SCpnt, printk("scsi%d.%c: had to move command " in acornscsi_reconnect_finish()
1791 host->SCpnt = NULL; in acornscsi_reconnect_finish()
1794 if (!host->SCpnt) { in acornscsi_reconnect_finish()
1795 host->SCpnt = queue_remove_tgtluntag(&host->queues.disconnected, in acornscsi_reconnect_finish()
1800 DBG(host->SCpnt, printk("scsi%d.%c: had to get command", in acornscsi_reconnect_finish()
1805 if (!host->SCpnt) in acornscsi_reconnect_finish()
1811 host->scsi.SCp = host->SCpnt->SCp; in acornscsi_reconnect_finish()
1823 return host->SCpnt != NULL; in acornscsi_reconnect_finish()
1840 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_disconnect_unexpected()
1886 if (host->SCpnt && !host->scsi.disconnectable) in acornscsi_sbicintr()
1887 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
1925 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, 1); in acornscsi_sbicintr()
1930 acornscsi_done(host, &host->SCpnt, DID_NO_CONNECT); in acornscsi_sbicintr()
1935 host->origSCpnt = host->SCpnt; in acornscsi_sbicintr()
1936 host->SCpnt = NULL; in acornscsi_sbicintr()
1944 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
1974 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
1980 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2018 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2026 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2036 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2063 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2076 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2086 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2101 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
2146 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2165 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2176 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2186 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2195 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2214 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - 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 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2268 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2291 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2292 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
2298 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2305 acornscsi_done(host, &host->SCpnt, DID_OK); in acornscsi_sbicintr()
2316 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2323 if (host->SCpnt) in acornscsi_sbicintr()
2324 acornscsi_done(host, &host->SCpnt, DID_ABORT); in acornscsi_sbicintr()
2342 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()
2409 static int acornscsi_queuecmd_lck(struct scsi_cmnd *SCpnt, in acornscsi_queuecmd_lck() argument
2412 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_queuecmd_lck()
2417 host->host->host_no, SCpnt); in acornscsi_queuecmd_lck()
2422 if (acornscsi_cmdtype(SCpnt->cmnd[0]) == CMD_WRITE && (NO_WRITE & (1 << SCpnt->device->id))) { in acornscsi_queuecmd_lck()
2424 host->host->host_no, '0' + SCpnt->device->id); in acornscsi_queuecmd_lck()
2425 set_host_byte(SCpnt, DID_NO_CONNECT); in acornscsi_queuecmd_lck()
2426 done(SCpnt); in acornscsi_queuecmd_lck()
2431 SCpnt->scsi_done = done; in acornscsi_queuecmd_lck()
2432 SCpnt->host_scribble = NULL; in acornscsi_queuecmd_lck()
2433 SCpnt->result = 0; in acornscsi_queuecmd_lck()
2434 SCpnt->SCp.phase = (int)acornscsi_datadirection(SCpnt->cmnd[0]); in acornscsi_queuecmd_lck()
2435 SCpnt->SCp.sent_command = 0; in acornscsi_queuecmd_lck()
2436 SCpnt->SCp.scsi_xferred = 0; in acornscsi_queuecmd_lck()
2438 init_SCp(SCpnt); in acornscsi_queuecmd_lck()
2445 if (!queue_add_cmd_ordered(&host->queues.issue, SCpnt)) { in acornscsi_queuecmd_lck()
2446 set_host_byte(SCpnt, DID_ERROR); in acornscsi_queuecmd_lck()
2447 done(SCpnt); in acornscsi_queuecmd_lck()
2468 static enum res_abort acornscsi_do_abort(AS_Host *host, struct scsi_cmnd *SCpnt) in acornscsi_do_abort() argument
2472 if (queue_remove_cmd(&host->queues.issue, SCpnt)) { in acornscsi_do_abort()
2483 } else if (queue_remove_cmd(&host->queues.disconnected, SCpnt)) { in acornscsi_do_abort()
2495 } else if (host->SCpnt == SCpnt) { in acornscsi_do_abort()
2515 host->SCpnt = NULL; in acornscsi_do_abort()
2527 host->SCpnt = NULL; in acornscsi_do_abort()
2536 } else if (host->origSCpnt == SCpnt) { in acornscsi_do_abort()
2560 int acornscsi_abort(struct scsi_cmnd *SCpnt) in acornscsi_abort() argument
2562 AS_Host *host = (AS_Host *) SCpnt->device->host->hostdata; in acornscsi_abort()
2575 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2581 switch (acornscsi_do_abort(host, SCpnt)) { in acornscsi_abort()
2591 clear_bit(SCpnt->device->id * 8 + in acornscsi_abort()
2592 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_abort()
2625 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2642 int acornscsi_host_reset(struct scsi_cmnd *SCpnt) in acornscsi_host_reset() argument
2644 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_host_reset()