• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/arm/

Lines Matching refs:scsi

2  *  linux/drivers/acorn/scsi/fas216.c
53 #include "../scsi.h"
54 #include <scsi/scsi_dbg.h>
55 #include <scsi/scsi_host.h>
57 #include "scsi.h"
144 unsigned int off = reg << info->scsi.io_shift;
145 return readb(info->scsi.io_base + off);
150 unsigned int off = reg << info->scsi.io_shift;
151 writeb(val, info->scsi.io_base + off);
194 printk(" scsi={ io_shift=%X irq=%X cfg={ %X %X %X %X }\n",
195 info->scsi.io_shift, info->scsi.irq,
196 info->scsi.cfg[0], info->scsi.cfg[1], info->scsi.cfg[2],
197 info->scsi.cfg[3]);
199 info->scsi.type, info->scsi.phase);
200 print_SCp(&info->scsi.SCp, " SCp={ ", " }\n");
202 info->scsi.async_stp,
203 info->scsi.disconnectable, info->scsi.aborting);
240 panic("scsi memory space corrupted in %s", func);
276 if (info->scsi.phase < ARRAY_SIZE(phases) &&
277 phases[info->scsi.phase])
278 return phases[info->scsi.phase];
296 printk("scsi%d.%c: %s", info->host->host_no, target, buf);
420 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) {
477 cntl3 = info->scsi.cfg[2];
562 msgqueue_flush(&info->scsi.msgs);
563 msgqueue_addmsg(&info->scsi.msgs, 5,
566 info->scsi.phase = PHASE_MSGOUT_EXPECT;
605 msgqueue_flush(&info->scsi.msgs);
606 msgqueue_addmsg(&info->scsi.msgs, 1, MESSAGE_REJECT);
607 info->scsi.phase = PHASE_MSGOUT_EXPECT;
612 dev->stp = info->scsi.async_stp;
630 struct scsi_pointer *SCp = &info->scsi.SCp;
647 printk(KERN_WARNING "scsi%d.%c: out of buffers\n",
670 struct scsi_pointer *SCp = &info->scsi.SCp;
718 total = info->scsi.SCp.phase;
720 total = info->scsi.SCp.this_residual;
736 if (info->scsi.phase == PHASE_DATAOUT)
755 info->scsi.SCp.ptr, info->scsi.SCp.this_residual,
756 info->scsi.SCp.phase);
758 if (!info->scsi.SCp.ptr) {
761 print_SCp(&info->scsi.SCp, "SCp: ", "\n");
776 if (info->scsi.phase == PHASE_DATAOUT)
782 dmatype = info->dma.setup(info->host, &info->scsi.SCp,
787 fas216_set_stc(info, info->scsi.SCp.phase);
789 fas216_set_stc(info, info->scsi.SCp.this_residual);
795 fas216_writeb(info, REG_STP, info->scsi.async_stp);
803 info->dma.pseudo(info->host, &info->scsi.SCp,
836 info->dma.stop(info->host, &info->scsi.SCp);
840 if (info->scsi.phase == PHASE_DATAIN) {
849 while (fifo && info->scsi.SCp.ptr) {
850 *info->scsi.SCp.ptr = fas216_readb(info, REG_FF);
869 info->dma.stop(info->host, &info->scsi.SCp);
890 info->scsi.phase);
892 msgqueue_flush(&info->scsi.msgs);
894 switch (info->scsi.phase) {
901 info->scsi.disconnectable = 1;
902 info->scsi.phase = PHASE_IDLE;
905 if (info->scsi.phase == PHASE_IDLE)
915 if (fas216_get_last_msg(info, info->scsi.msgin_fifo) == ABORT) {
916 info->scsi.aborting = 0;
922 printk(KERN_ERR "scsi%d.%c: unexpected disconnect in phase %s\n",
946 WARN_ON(info->scsi.phase == PHASE_SELECTION ||
947 info->scsi.phase == PHASE_SELSTEPS);
952 info->scsi.phase, cfis);
957 printk(KERN_ERR "scsi%d.H: incorrect number of bytes after reselect\n",
984 msgqueue_flush(&info->scsi.msgs);
989 if (info->scsi.disconnectable && info->SCpnt) {
990 info->scsi.disconnectable = 0;
1011 info->scsi.SCp = info->SCpnt->SCp;
1014 info->scsi.SCp.ptr, info->scsi.SCp.this_residual);
1015 info->scsi.phase = PHASE_MSGIN;
1025 msgqueue_addmsg(&info->scsi.msgs, 1, ABORT);
1026 info->scsi.phase = PHASE_MSGOUT_EXPECT;
1027 info->scsi.aborting = 1;
1034 printk(KERN_ERR "scsi%d.H: error during reselection: bytes",
1041 msgqueue_flush(&info->scsi.msgs);
1042 msgqueue_addmsg(&info->scsi.msgs, 1, INITIATOR_ERROR);
1043 info->scsi.phase = PHASE_MSGOUT_EXPECT;
1056 printk(KERN_ERR "scsi%d.%c: command complete with no "
1073 info->SCpnt->SCp = info->scsi.SCp;
1077 info->scsi.SCp.ptr, info->scsi.SCp.this_residual);
1087 info->scsi.SCp = info->SCpnt->SCp;
1090 info->scsi.SCp.ptr, info->scsi.SCp.this_residual);
1097 info->scsi.phase = PHASE_MSGIN_DISCONNECT;
1104 switch (fas216_get_last_msg(info, info->scsi.msgin_fifo)) {
1111 fas216_get_last_msg(info, info->scsi.msgin_fifo));
1139 printk("scsi%d.%c: message was", info->host->host_no, fas216_target(info));
1152 msgqueue_flush(&info->scsi.msgs);
1153 msgqueue_addmsg(&info->scsi.msgs, 1, MESSAGE_REJECT);
1154 info->scsi.phase = PHASE_MSGOUT_EXPECT;
1223 unsigned char *message = info->scsi.message;
1255 printk("scsi%d.%c: message in: ",
1269 msgqueue_flush(&info->scsi.msgs);
1270 msgqueue_addmsg(&info->scsi.msgs, 1, MSG_PARITY_ERROR);
1271 info->scsi.phase = PHASE_MSGOUT_EXPECT;
1292 for (i = info->scsi.SCp.sent_command; i < info->SCpnt->cmd_len; i++)
1297 info->scsi.phase = PHASE_COMMAND;
1309 unsigned int tot_msglen = msgqueue_msglength(&info->scsi.msgs);
1319 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) {
1333 info->scsi.phase = PHASE_MSGOUT;
1350 stat, is, info->scsi.phase);
1352 switch (info->scsi.phase) {
1384 switch (STATE(stat & STAT_BUSMASK, info->scsi.phase)) {
1389 info->scsi.phase = PHASE_DATAIN;
1404 info->scsi.phase = PHASE_DATAOUT;
1416 info->scsi.phase = PHASE_STATUS;
1425 info->scsi.msgin_fifo = fas216_readb(info, REG_CFIS) & CFIS_CF;
1428 info->scsi.phase = PHASE_MSGIN;
1432 info->scsi.msgin_fifo = fas216_readb(info, REG_CFIS) & CFIS_CF;
1439 info->scsi.phase = PHASE_COMMAND;
1468 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]);
1471 if (msgqueue_msglength(&info->scsi.msgs) > 1)
1493 printk(KERN_ERR "scsi%d.%c: "
1499 msgqueue_flush(&info->scsi.msgs);
1500 msgqueue_addmsg(&info->scsi.msgs, 1, INITIATOR_ERROR);
1501 info->scsi.phase = PHASE_MSGOUT_EXPECT;
1505 if (info->scsi.phase == PHASE_MSGIN_DISCONNECT) {
1506 printk(KERN_ERR "scsi%d.%c: disconnect message received, but bus service %s?\n",
1509 msgqueue_flush(&info->scsi.msgs);
1511 msgqueue_addmsg(&info->scsi.msgs, 1, INITIATOR_ERROR);
1512 info->scsi.phase = PHASE_MSGOUT_EXPECT;
1513 info->scsi.aborting = 1;
1517 printk(KERN_ERR "scsi%d.%c: bus phase %s after %s?\n",
1548 stat, is, info->scsi.phase);
1550 switch (info->scsi.phase) {
1558 info->scsi.SCp.Status = fas216_readb(info, REG_FF);
1559 info->scsi.SCp.Message = fas216_readb(info, REG_FF);
1560 info->scsi.phase = PHASE_DONE;
1571 info->scsi.msgin_fifo = fifo_len;
1588 msgqueue_flush(&info->scsi.msgs);
1597 info->scsi.phase = PHASE_IDLE;
1599 memset(&info->scsi.SCp, 0, sizeof(info->scsi.SCp));
1605 info->device[i].stp = info->scsi.async_stp;
1631 add_debug_list(stat, is, inst, info->scsi.phase);
1677 tot_msglen = msgqueue_msglength(&info->scsi.msgs);
1684 printk("scsi%d.%c: message out: ",
1686 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) {
1703 info->scsi.phase = PHASE_SELSTEPS;
1706 while ((msg = msgqueue_getmsg(&info->scsi.msgs, msgnr++)) != NULL) {
1726 struct message *msg = msgqueue_getmsg(&info->scsi.msgs, 0);
1752 info->scsi.phase = PHASE_SELECTION;
1753 info->scsi.SCp = SCpnt->SCp;
1758 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0] | CNTL1_PTE);
1760 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]);
1771 msgqueue_flush(&info->scsi.msgs);
1772 msgqueue_addmsg(&info->scsi.msgs, 1, IDENTIFY(disconnect_ok, SCpnt->device->lun));
1778 msgqueue_addmsg(&info->scsi.msgs, 2, SIMPLE_QUEUE_TAG, SCpnt->tag);
1787 msgqueue_addmsg(&info->scsi.msgs, 5,
1841 info->scsi.phase = PHASE_SELECTION;
1842 info->scsi.SCp = SCpnt->SCp;
1848 msgqueue_flush(&info->scsi.msgs);
1849 msgqueue_addmsg(&info->scsi.msgs, 1, BUS_DEVICE_RESET);
1865 msg = msgqueue_getmsg(&info->scsi.msgs, 0);
1935 if (info->scsi.disconnectable && info->SCpnt) {
1940 info->scsi.disconnectable = 0;
1959 info->scsi.SCp.ptr, info->scsi.SCp.this_residual);
2002 //printk("scsi%d.%c: sense buffer: ", info->host->host_no, '0' + SCpnt->device->id);
2027 SCpnt->result = result << 16 | info->scsi.SCp.Message << 8 |
2028 info->scsi.SCp.Status;
2062 if (info->scsi.SCp.ptr) {
2070 printk(KERN_ERR "scsi%d.%c: incomplete data transfer "
2073 SCpnt->result, info->scsi.SCp.ptr,
2074 info->scsi.SCp.this_residual);
2088 panic("scsi%d.H: null scsi_done function in fas216_done",
2111 printk(KERN_WARNING "scsi%d.%c: loosing request command\n",
2136 info->scsi.phase = PHASE_IDLE;
2138 if (info->scsi.aborting) {
2141 info->scsi.aborting = 0;
2148 if (info->scsi.SCp.ptr && info->scsi.SCp.this_residual == 0) {
2149 printk("scsi%d.%c: zero bytes left to transfer, but "
2152 info->scsi.SCp.ptr, info->scsi.SCp.this_residual);
2153 info->scsi.SCp.ptr = NULL;
2168 if (info->scsi.irq != NO_IRQ) {
2170 if (info->scsi.phase == PHASE_IDLE)
2177 panic("scsi%d.H: null command in fas216_done",
2222 if (result == 0 && info->scsi.phase == PHASE_IDLE)
2252 * Returns: scsi result code.
2266 BUG_ON(info->scsi.irq != NO_IRQ);
2362 switch (info->scsi.phase) {
2368 if (info->scsi.disconnectable) {
2369 info->scsi.disconnectable = 0;
2412 printk(KERN_WARNING "scsi%d: abort command ", info->host->host_no);
2418 printk(KERN_WARNING "scsi%d: abort %p ", info->host->host_no, SCpnt);
2477 if (info->SCpnt && !info->scsi.disconnectable &&
2505 if (info->scsi.phase == PHASE_IDLE)
2558 fas216_writeb(info, REG_CNTL3, info->scsi.cfg[2]);
2591 info->scsi.phase = PHASE_IDLE;
2624 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]);
2625 fas216_writeb(info, REG_CNTL2, info->scsi.cfg[1]);
2626 fas216_writeb(info, REG_CNTL3, info->scsi.cfg[2]);
2629 fas216_writeb(info, REG_STP, info->scsi.async_stp);
2630 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]);
2649 printk("scsi%d.%c: %s: resetting host\n",
2796 info->scsi.disconnectable = 0;
2797 info->scsi.aborting = 0;
2832 info->scsi.cfg[0] = host->this_id | CNTL1_PERE;
2833 info->scsi.cfg[1] = CNTL2_ENF | CNTL2_S2FE;
2834 info->scsi.cfg[2] = info->ifcfg.cntl3 |
2836 info->scsi.async_stp = fas216_syncperiod(info, info->ifcfg.asyncperiod);
2849 msgqueue_initialise(&info->scsi.msgs);
2883 info->scsi.type = chip_types[type];
2897 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0] | CNTL1_DISR);
2901 * scsi standard says wait 250ms
2907 fas216_writeb(info, REG_CNTL1, info->scsi.cfg[0]);
2954 info->scsi.type, info->scsi.io_base,
2955 info->scsi.irq, info->scsi.dma);