Lines Matching refs:SCpnt
375 host->SCpnt = NULL; in acornscsi_resetcard()
553 if (host->SCpnt) in acornscsi_target()
554 return '0' + host->SCpnt->device->id; in acornscsi_target()
692 struct scsi_cmnd *SCpnt; in acornscsi_kick() local
695 SCpnt = host->origSCpnt; in acornscsi_kick()
699 if (!SCpnt) { in acornscsi_kick()
700 SCpnt = queue_remove_exclude(&host->queues.issue, host->busyluns); in acornscsi_kick()
701 if (!SCpnt) in acornscsi_kick()
707 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_kick()
708 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_kick()
711 DBG(host->SCpnt, printk("scsi%d.%c: moved command to disconnected queue\n", in acornscsi_kick()
714 host->SCpnt = NULL; in acornscsi_kick()
722 sbic_arm_write(host, SBIC_DESTID, SCpnt->device->id); in acornscsi_kick()
731 host->SCpnt = SCpnt; in acornscsi_kick()
732 host->scsi.SCp = *arm_scsi_pointer(SCpnt); in acornscsi_kick()
738 DBG(SCpnt,printk("scsi%d.%c: starting cmd %02X\n", in acornscsi_kick()
739 host->host->host_no, '0' + SCpnt->device->id, in acornscsi_kick()
740 SCpnt->cmnd[0])); in acornscsi_kick()
744 set_bit(SCpnt->device->id * 8 + in acornscsi_kick()
745 (u8)(SCpnt->device->lun & 0x07), host->busyluns); in acornscsi_kick()
749 switch (acornscsi_cmdtype(SCpnt->cmnd[0])) { in acornscsi_kick()
774 struct scsi_cmnd *SCpnt = *SCpntp; in acornscsi_done() local
781 if (SCpnt) { in acornscsi_done()
786 set_host_byte(SCpnt, result); in acornscsi_done()
788 scsi_msg_to_host_byte(SCpnt, host->scsi.SCp.Message); in acornscsi_done()
789 set_status_byte(SCpnt, host->scsi.SCp.Status); in acornscsi_done()
802 if (SCpnt->underflow == 0) { in acornscsi_done()
804 acornscsi_cmdtype(SCpnt->cmnd[0]) != CMD_MISC) in acornscsi_done()
807 if (host->scsi.SCp.scsi_xferred < SCpnt->underflow || in acornscsi_done()
828 switch (get_status_byte(SCpnt)) { in acornscsi_done()
837 scmd_printk(KERN_ERR, SCpnt, in acornscsi_done()
839 "result=%08X", SCpnt->result); in acornscsi_done()
840 scsi_print_command(SCpnt); in acornscsi_done()
842 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_done()
843 set_host_byte(SCpnt, DID_ERROR); in acornscsi_done()
848 clear_bit(SCpnt->device->id * 8 + in acornscsi_done()
849 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_done()
851 scsi_done(SCpnt); in acornscsi_done()
983 DBG(host->SCpnt, acornscsi_dumpdma(host, "stop")); in acornscsi_dma_stop()
1006 if (NO_WRITE & (1 << host->SCpnt->device->id)) { in acornscsi_dma_setup()
1042 DBG(host->SCpnt, acornscsi_dumpdma(host, "strt")); in acornscsi_dma_setup()
1081 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupi")); in acornscsi_dma_cleanup()
1099 DBG(host->SCpnt, acornscsi_dumpdma(host, "cupo")); in acornscsi_dma_cleanup()
1120 DBG(host->SCpnt, acornscsi_dumpdma(host, "inti")); in acornscsi_dma_intr()
1169 DBG(host->SCpnt, acornscsi_dumpdma(host, "into")); in acornscsi_dma_intr()
1221 DBG(host->SCpnt, acornscsi_dumpdma(host, "adji")); in acornscsi_dma_adjust()
1246 DBG(host->SCpnt, acornscsi_dumpdma(host, "adjo")); in acornscsi_dma_adjust()
1289 struct scsi_cmnd *SCpnt = host->SCpnt; in acornscsi_sendcommand() local
1293 sbic_arm_writenext(host, SCpnt->cmd_len - host->scsi.SCp.sent_command); in acornscsi_sendcommand()
1297 if (acornscsi_write_pio(host, SCpnt->cmnd, in acornscsi_sendcommand()
1298 (int *)&host->scsi.SCp.sent_command, SCpnt->cmd_len, 1000000)) in acornscsi_sendcommand()
1483 acornscsi_dumplog(host, host->SCpnt->device->id); in acornscsi_message()
1497 scsi_pointer = arm_scsi_pointer(host->SCpnt); in acornscsi_message()
1514 host->scsi.SCp = *arm_scsi_pointer(host->SCpnt); in acornscsi_message()
1540 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) in acornscsi_message()
1541 host->device[host->SCpnt->device->id].sync_state = SYNC_NEGOCIATE; in acornscsi_message()
1557 host->device[host->SCpnt->device->id].sync_xfer = SYNCHTRANSFER_2DBA; in acornscsi_message()
1558 host->device[host->SCpnt->device->id].sync_state = SYNC_ASYNCHRONOUS; in acornscsi_message()
1559 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1578 if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) { in acornscsi_message()
1585 host->device[host->SCpnt->device->id].sync_state = SYNC_COMPLETED; in acornscsi_message()
1589 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1602 host->device[host->SCpnt->device->id].sync_xfer = in acornscsi_message()
1605 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_message()
1655 IDENTIFY(host->device[host->SCpnt->device->id].disconnect_ok, in acornscsi_buildmessages()
1656 host->SCpnt->device->lun)); in acornscsi_buildmessages()
1668 if (host->device[host->SCpnt->device->id].sync_state == SYNC_NEGOCIATE) { in acornscsi_buildmessages()
1669 host->device[host->SCpnt->device->id].sync_state = SYNC_SENT_REQUEST; in acornscsi_buildmessages()
1694 residual = scsi_bufflen(host->SCpnt) - host->scsi.SCp.scsi_xferred; in acornscsi_starttransfer()
1696 sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); in acornscsi_starttransfer()
1729 if (host->SCpnt && !host->scsi.disconnectable) { in acornscsi_reconnect()
1732 host->host->host_no, target, host->SCpnt->device->id); in acornscsi_reconnect()
1733 host->SCpnt = NULL; in acornscsi_reconnect()
1742 if (host->scsi.disconnectable && host->SCpnt && in acornscsi_reconnect()
1743 host->SCpnt->device->id == target && host->SCpnt->device->lun == lun) in acornscsi_reconnect()
1760 if (host->SCpnt) { in acornscsi_reconnect()
1761 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect()
1762 host->SCpnt = NULL; in acornscsi_reconnect()
1778 if (host->scsi.disconnectable && host->SCpnt) { in acornscsi_reconnect_finish()
1780 if (host->SCpnt->device->id == host->scsi.reconnected.target && in acornscsi_reconnect_finish()
1781 host->SCpnt->device->lun == host->scsi.reconnected.lun && in acornscsi_reconnect_finish()
1782 scsi_cmd_to_rq(host->SCpnt)->tag == host->scsi.reconnected.tag) { in acornscsi_reconnect_finish()
1784 DBG(host->SCpnt, printk("scsi%d.%c: reconnected", in acornscsi_reconnect_finish()
1788 queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); in acornscsi_reconnect_finish()
1790 DBG(host->SCpnt, printk("scsi%d.%c: had to move command " in acornscsi_reconnect_finish()
1794 host->SCpnt = NULL; in acornscsi_reconnect_finish()
1797 if (!host->SCpnt) { in acornscsi_reconnect_finish()
1798 host->SCpnt = queue_remove_tgtluntag(&host->queues.disconnected, in acornscsi_reconnect_finish()
1803 DBG(host->SCpnt, printk("scsi%d.%c: had to get command", in acornscsi_reconnect_finish()
1808 if (!host->SCpnt) in acornscsi_reconnect_finish()
1814 host->scsi.SCp = *arm_scsi_pointer(host->SCpnt); in acornscsi_reconnect_finish()
1826 return host->SCpnt != NULL; in acornscsi_reconnect_finish()
1843 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_disconnect_unexpected()
1889 if (host->SCpnt && !host->scsi.disconnectable) in acornscsi_sbicintr()
1890 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
1928 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, 1); in acornscsi_sbicintr()
1933 acornscsi_done(host, &host->SCpnt, DID_NO_CONNECT); in acornscsi_sbicintr()
1938 host->origSCpnt = host->SCpnt; in acornscsi_sbicintr()
1939 host->SCpnt = NULL; in acornscsi_sbicintr()
1947 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
1977 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
1983 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2021 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2029 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2039 if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) in acornscsi_sbicintr()
2066 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2079 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2089 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2104 ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); in acornscsi_sbicintr()
2149 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2168 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2179 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2189 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2198 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2217 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2229 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2240 host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - in acornscsi_sbicintr()
2250 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2271 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2294 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2295 acornscsi_done(host, &host->SCpnt, DID_ERROR); in acornscsi_sbicintr()
2301 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2308 acornscsi_done(host, &host->SCpnt, DID_OK); in acornscsi_sbicintr()
2319 acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); in acornscsi_sbicintr()
2326 if (host->SCpnt) in acornscsi_sbicintr()
2327 acornscsi_done(host, &host->SCpnt, DID_ABORT); in acornscsi_sbicintr()
2345 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()
2411 static int acornscsi_queuecmd_lck(struct scsi_cmnd *SCpnt) in acornscsi_queuecmd_lck() argument
2413 struct scsi_pointer *scsi_pointer = arm_scsi_pointer(SCpnt); in acornscsi_queuecmd_lck()
2415 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_queuecmd_lck()
2418 if (acornscsi_cmdtype(SCpnt->cmnd[0]) == CMD_WRITE && (NO_WRITE & (1 << SCpnt->device->id))) { in acornscsi_queuecmd_lck()
2420 host->host->host_no, '0' + SCpnt->device->id); in acornscsi_queuecmd_lck()
2421 set_host_byte(SCpnt, DID_NO_CONNECT); in acornscsi_queuecmd_lck()
2422 done(SCpnt); in acornscsi_queuecmd_lck()
2427 SCpnt->host_scribble = NULL; in acornscsi_queuecmd_lck()
2428 SCpnt->result = 0; in acornscsi_queuecmd_lck()
2429 scsi_pointer->phase = (int)acornscsi_datadirection(SCpnt->cmnd[0]); in acornscsi_queuecmd_lck()
2433 init_SCp(SCpnt); in acornscsi_queuecmd_lck()
2440 if (!queue_add_cmd_ordered(&host->queues.issue, SCpnt)) { in acornscsi_queuecmd_lck()
2441 set_host_byte(SCpnt, DID_ERROR); in acornscsi_queuecmd_lck()
2442 done(SCpnt); in acornscsi_queuecmd_lck()
2463 static enum res_abort acornscsi_do_abort(AS_Host *host, struct scsi_cmnd *SCpnt) in acornscsi_do_abort() argument
2467 if (queue_remove_cmd(&host->queues.issue, SCpnt)) { in acornscsi_do_abort()
2478 } else if (queue_remove_cmd(&host->queues.disconnected, SCpnt)) { in acornscsi_do_abort()
2490 } else if (host->SCpnt == SCpnt) { in acornscsi_do_abort()
2510 host->SCpnt = NULL; in acornscsi_do_abort()
2522 host->SCpnt = NULL; in acornscsi_do_abort()
2531 } else if (host->origSCpnt == SCpnt) { in acornscsi_do_abort()
2555 int acornscsi_abort(struct scsi_cmnd *SCpnt) in acornscsi_abort() argument
2557 AS_Host *host = (AS_Host *) SCpnt->device->host->hostdata; in acornscsi_abort()
2570 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2576 switch (acornscsi_do_abort(host, SCpnt)) { in acornscsi_abort()
2586 clear_bit(SCpnt->device->id * 8 + in acornscsi_abort()
2587 (u8)(SCpnt->device->lun & 0x7), host->busyluns); in acornscsi_abort()
2620 acornscsi_dumplog(host, SCpnt->device->id); in acornscsi_abort()
2637 int acornscsi_host_reset(struct scsi_cmnd *SCpnt) in acornscsi_host_reset() argument
2639 AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; in acornscsi_host_reset()