Lines Matching refs:scsi
146 unsigned int off = reg << info->scsi.io_shift; in fas216_readb()
147 return readb(info->scsi.io_base + off); in fas216_readb()
152 unsigned int off = reg << info->scsi.io_shift; in fas216_writeb()
153 writeb(val, info->scsi.io_base + off); in fas216_writeb()
198 info->scsi.io_shift, info->scsi.irq, in fas216_dumpinfo()
199 info->scsi.cfg[0], info->scsi.cfg[1], info->scsi.cfg[2], in fas216_dumpinfo()
200 info->scsi.cfg[3]); in fas216_dumpinfo()
202 info->scsi.type, info->scsi.phase); in fas216_dumpinfo()
203 print_SCp(&info->scsi.SCp, " SCp={ ", " }\n"); in fas216_dumpinfo()
205 info->scsi.async_stp, in fas216_dumpinfo()
206 info->scsi.disconnectable, info->scsi.aborting); in fas216_dumpinfo()
278 if (info->scsi.phase < ARRAY_SIZE(phases) && in fas216_drv_phase()
279 phases[info->scsi.phase]) in fas216_drv_phase()
280 return phases[info->scsi.phase]; in fas216_drv_phase()
421 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) { in fas216_get_last_msg()
478 cntl3 = info->scsi.cfg[2]; in fas216_set_sync()
563 msgqueue_flush(&info->scsi.msgs); in fas216_handlesync()
564 msgqueue_addmsg(&info->scsi.msgs, 5, in fas216_handlesync()
567 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_handlesync()
606 msgqueue_flush(&info->scsi.msgs); in fas216_handlesync()
607 msgqueue_addmsg(&info->scsi.msgs, 1, MESSAGE_REJECT); in fas216_handlesync()
608 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_handlesync()
614 dev->stp = info->scsi.async_stp; in fas216_handlesync()
632 struct scsi_pointer *SCp = &info->scsi.SCp; in fas216_updateptrs()
672 struct scsi_pointer *SCp = &info->scsi.SCp; in fas216_pio()
720 total = info->scsi.SCp.phase; in fas216_cleanuptransfer()
722 total = info->scsi.SCp.this_residual; in fas216_cleanuptransfer()
738 if (info->scsi.phase == PHASE_DATAOUT) in fas216_cleanuptransfer()
757 info->scsi.SCp.ptr, info->scsi.SCp.this_residual, in fas216_transfer()
758 info->scsi.SCp.phase); in fas216_transfer()
760 if (!info->scsi.SCp.ptr) { in fas216_transfer()
763 print_SCp(&info->scsi.SCp, "SCp: ", "\n"); in fas216_transfer()
778 if (info->scsi.phase == PHASE_DATAOUT) in fas216_transfer()
784 dmatype = info->dma.setup(info->host, &info->scsi.SCp, in fas216_transfer()
789 fas216_set_stc(info, info->scsi.SCp.phase); in fas216_transfer()
791 fas216_set_stc(info, info->scsi.SCp.this_residual); in fas216_transfer()
797 fas216_writeb(info, REG_STP, info->scsi.async_stp); in fas216_transfer()
805 info->dma.pseudo(info->host, &info->scsi.SCp, in fas216_transfer()
838 info->dma.stop(info->host, &info->scsi.SCp); in fas216_stoptransfer()
842 if (info->scsi.phase == PHASE_DATAIN) { in fas216_stoptransfer()
851 while (fifo && info->scsi.SCp.ptr) { in fas216_stoptransfer()
852 *info->scsi.SCp.ptr = fas216_readb(info, REG_FF); in fas216_stoptransfer()
871 info->dma.stop(info->host, &info->scsi.SCp); in fas216_aborttransfer()
892 info->scsi.phase); in fas216_disconnect_intr()
894 msgqueue_flush(&info->scsi.msgs); in fas216_disconnect_intr()
896 switch (info->scsi.phase) { in fas216_disconnect_intr()
903 info->scsi.disconnectable = 1; in fas216_disconnect_intr()
904 info->scsi.phase = PHASE_IDLE; in fas216_disconnect_intr()
907 if (info->scsi.phase == PHASE_IDLE) in fas216_disconnect_intr()
917 if (fas216_get_last_msg(info, info->scsi.msgin_fifo) == ABORT) { in fas216_disconnect_intr()
918 info->scsi.aborting = 0; in fas216_disconnect_intr()
949 WARN_ON(info->scsi.phase == PHASE_SELECTION || in fas216_reselected_intr()
950 info->scsi.phase == PHASE_SELSTEPS); in fas216_reselected_intr()
955 info->scsi.phase, cfis); in fas216_reselected_intr()
987 msgqueue_flush(&info->scsi.msgs); in fas216_reselected_intr()
992 if (info->scsi.disconnectable && info->SCpnt) { in fas216_reselected_intr()
993 info->scsi.disconnectable = 0; in fas216_reselected_intr()
1014 info->scsi.SCp = *arm_scsi_pointer(info->SCpnt); in fas216_reselected_intr()
1017 info->scsi.SCp.ptr, info->scsi.SCp.this_residual); in fas216_reselected_intr()
1018 info->scsi.phase = PHASE_MSGIN; in fas216_reselected_intr()
1030 msgqueue_addmsg(&info->scsi.msgs, 2, ABORT_TAG, tag); in fas216_reselected_intr()
1033 msgqueue_addmsg(&info->scsi.msgs, 1, ABORT); in fas216_reselected_intr()
1034 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_reselected_intr()
1035 info->scsi.aborting = 1; in fas216_reselected_intr()
1049 msgqueue_flush(&info->scsi.msgs); in fas216_reselected_intr()
1050 msgqueue_addmsg(&info->scsi.msgs, 1, INITIATOR_ERROR); in fas216_reselected_intr()
1051 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_reselected_intr()
1083 *scsi_pointer = info->scsi.SCp; in fas216_parse_message()
1087 info->scsi.SCp.ptr, info->scsi.SCp.this_residual); in fas216_parse_message()
1097 info->scsi.SCp = *arm_scsi_pointer(info->SCpnt); in fas216_parse_message()
1100 info->scsi.SCp.ptr, info->scsi.SCp.this_residual); in fas216_parse_message()
1107 info->scsi.phase = PHASE_MSGIN_DISCONNECT; in fas216_parse_message()
1114 switch (fas216_get_last_msg(info, info->scsi.msgin_fifo)) { in fas216_parse_message()
1121 fas216_get_last_msg(info, info->scsi.msgin_fifo)); in fas216_parse_message()
1162 msgqueue_flush(&info->scsi.msgs); in fas216_parse_message()
1163 msgqueue_addmsg(&info->scsi.msgs, 1, MESSAGE_REJECT); in fas216_parse_message()
1164 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_parse_message()
1233 unsigned char *message = info->scsi.message; in fas216_message()
1279 msgqueue_flush(&info->scsi.msgs); in fas216_message()
1280 msgqueue_addmsg(&info->scsi.msgs, 1, MSG_PARITY_ERROR); in fas216_message()
1281 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_message()
1302 for (i = info->scsi.SCp.sent_command; i < info->SCpnt->cmd_len; i++) in fas216_send_command()
1307 info->scsi.phase = PHASE_COMMAND; in fas216_send_command()
1319 unsigned int tot_msglen = msgqueue_msglength(&info->scsi.msgs); in fas216_send_messageout()
1329 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) { in fas216_send_messageout()
1343 info->scsi.phase = PHASE_MSGOUT; in fas216_send_messageout()
1360 stat, is, info->scsi.phase); in fas216_busservice_intr()
1362 switch (info->scsi.phase) { in fas216_busservice_intr()
1395 switch (STATE(stat & STAT_BUSMASK, info->scsi.phase)) { in fas216_busservice_intr()
1400 info->scsi.phase = PHASE_DATAIN; in fas216_busservice_intr()
1415 info->scsi.phase = PHASE_DATAOUT; in fas216_busservice_intr()
1429 info->scsi.phase = PHASE_STATUS; in fas216_busservice_intr()
1440 info->scsi.msgin_fifo = fas216_readb(info, REG_CFIS) & CFIS_CF; in fas216_busservice_intr()
1443 info->scsi.phase = PHASE_MSGIN; in fas216_busservice_intr()
1447 info->scsi.msgin_fifo = fas216_readb(info, REG_CFIS) & CFIS_CF; in fas216_busservice_intr()
1454 info->scsi.phase = PHASE_COMMAND; in fas216_busservice_intr()
1483 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]); in fas216_busservice_intr()
1486 if (msgqueue_msglength(&info->scsi.msgs) > 1) in fas216_busservice_intr()
1514 msgqueue_flush(&info->scsi.msgs); in fas216_busservice_intr()
1515 msgqueue_addmsg(&info->scsi.msgs, 1, INITIATOR_ERROR); in fas216_busservice_intr()
1516 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_busservice_intr()
1520 if (info->scsi.phase == PHASE_MSGIN_DISCONNECT) { in fas216_busservice_intr()
1524 msgqueue_flush(&info->scsi.msgs); in fas216_busservice_intr()
1526 msgqueue_addmsg(&info->scsi.msgs, 1, INITIATOR_ERROR); in fas216_busservice_intr()
1527 info->scsi.phase = PHASE_MSGOUT_EXPECT; in fas216_busservice_intr()
1528 info->scsi.aborting = 1; in fas216_busservice_intr()
1563 stat, is, info->scsi.phase); in fas216_funcdone_intr()
1565 switch (info->scsi.phase) { in fas216_funcdone_intr()
1573 info->scsi.SCp.Status = fas216_readb(info, REG_FF); in fas216_funcdone_intr()
1574 info->scsi.SCp.Message = fas216_readb(info, REG_FF); in fas216_funcdone_intr()
1575 info->scsi.phase = PHASE_DONE; in fas216_funcdone_intr()
1586 info->scsi.msgin_fifo = fifo_len; in fas216_funcdone_intr()
1604 msgqueue_flush(&info->scsi.msgs); in fas216_bus_reset()
1613 info->scsi.phase = PHASE_IDLE; in fas216_bus_reset()
1615 memset(&info->scsi.SCp, 0, sizeof(info->scsi.SCp)); in fas216_bus_reset()
1621 info->device[i].stp = info->scsi.async_stp; in fas216_bus_reset()
1647 add_debug_list(stat, is, inst, info->scsi.phase); in fas216_intr()
1693 tot_msglen = msgqueue_msglength(&info->scsi.msgs); in __fas216_start_command()
1702 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) { in __fas216_start_command()
1719 info->scsi.phase = PHASE_SELSTEPS; in __fas216_start_command()
1722 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) { in __fas216_start_command()
1742 struct message *msg = msgqueue_getmsg(&info->scsi.msgs, 0); in __fas216_start_command()
1774 info->scsi.phase = PHASE_SELECTION; in fas216_start_command()
1775 info->scsi.SCp = *arm_scsi_pointer(SCpnt); in fas216_start_command()
1780 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0] | CNTL1_PTE); in fas216_start_command()
1782 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]); in fas216_start_command()
1793 msgqueue_flush(&info->scsi.msgs); in fas216_start_command()
1794 msgqueue_addmsg(&info->scsi.msgs, 1, IDENTIFY(disconnect_ok, SCpnt->device->lun)); in fas216_start_command()
1800 msgqueue_addmsg(&info->scsi.msgs, 2, SIMPLE_QUEUE_TAG, in fas216_start_command()
1810 msgqueue_addmsg(&info->scsi.msgs, 5, in fas216_start_command()
1853 info->scsi.phase = PHASE_SELECTION; in fas216_do_bus_device_reset()
1854 info->scsi.SCp = *arm_scsi_pointer(SCpnt); in fas216_do_bus_device_reset()
1860 msgqueue_flush(&info->scsi.msgs); in fas216_do_bus_device_reset()
1861 msgqueue_addmsg(&info->scsi.msgs, 1, BUS_DEVICE_RESET); in fas216_do_bus_device_reset()
1877 msg = msgqueue_getmsg(&info->scsi.msgs, 0); in fas216_do_bus_device_reset()
1947 if (info->scsi.disconnectable && info->SCpnt) { in fas216_kick()
1952 info->scsi.disconnectable = 0; in fas216_kick()
1972 info->scsi.SCp.ptr, info->scsi.SCp.this_residual); in fas216_kick()
2046 scsi_msg_to_host_byte(SCpnt, info->scsi.SCp.Message); in fas216_std_done()
2047 set_status_byte(SCpnt, info->scsi.SCp.Status); in fas216_std_done()
2080 if (info->scsi.SCp.ptr) { in fas216_std_done()
2090 SCpnt->result, info->scsi.SCp.ptr, in fas216_std_done()
2091 info->scsi.SCp.this_residual); in fas216_std_done()
2151 info->scsi.phase = PHASE_IDLE; in fas216_done()
2153 if (info->scsi.aborting) { in fas216_done()
2156 info->scsi.aborting = 0; in fas216_done()
2163 if (info->scsi.SCp.ptr && info->scsi.SCp.this_residual == 0) { in fas216_done()
2166 info->scsi.SCp.ptr, info->scsi.SCp.this_residual); in fas216_done()
2167 info->scsi.SCp.ptr = NULL; in fas216_done()
2183 if (info->scsi.irq) { in fas216_done()
2185 if (info->scsi.phase == PHASE_IDLE) in fas216_done()
2236 if (result == 0 && info->scsi.phase == PHASE_IDLE) in fas216_queue_command_internal()
2286 BUG_ON(info->scsi.irq); in fas216_noqueue_command_lck()
2384 switch (info->scsi.phase) { in fas216_find_command()
2390 if (info->scsi.disconnectable) { in fas216_find_command()
2391 info->scsi.disconnectable = 0; in fas216_find_command()
2496 if (info->SCpnt && !info->scsi.disconnectable && in fas216_eh_device_reset()
2524 if (info->scsi.phase == PHASE_IDLE) in fas216_eh_device_reset()
2577 fas216_writeb(info, REG_CNTL3, info->scsi.cfg[2]); in fas216_eh_bus_reset()
2610 info->scsi.phase = PHASE_IDLE; in fas216_eh_bus_reset()
2643 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]); in fas216_init_chip()
2644 fas216_writeb(info, REG_CNTL2, info->scsi.cfg[1]); in fas216_init_chip()
2645 fas216_writeb(info, REG_CNTL3, info->scsi.cfg[2]); in fas216_init_chip()
2648 fas216_writeb(info, REG_STP, info->scsi.async_stp); in fas216_init_chip()
2649 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]); in fas216_init_chip()
2814 info->scsi.disconnectable = 0; in fas216_reset_state()
2815 info->scsi.aborting = 0; in fas216_reset_state()
2850 info->scsi.cfg[0] = host->this_id | CNTL1_PERE; in fas216_init()
2851 info->scsi.cfg[1] = CNTL2_ENF | CNTL2_S2FE; in fas216_init()
2852 info->scsi.cfg[2] = info->ifcfg.cntl3 | in fas216_init()
2854 info->scsi.async_stp = fas216_syncperiod(info, info->ifcfg.asyncperiod); in fas216_init()
2865 msgqueue_initialise(&info->scsi.msgs); in fas216_init()
2899 info->scsi.type = chip_types[type]; in fas216_add()
2913 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0] | CNTL1_DISR); in fas216_add()
2923 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]); in fas216_add()
2970 info->scsi.type, info->scsi.io_base, in fas216_print_host()
2971 info->scsi.irq, info->scsi.dma); in fas216_print_host()