|
@@ -370,7 +370,7 @@ static int is_lun_busy(Scsi_Cmnd *cmd, int should_be_tagged)
|
|
|
return 0;
|
|
|
if (TagAlloc[cmd->device->id][cmd->device->lun].nr_allocated >=
|
|
|
TagAlloc[cmd->device->id][cmd->device->lun].queue_size) {
|
|
|
- TAG_PRINTK("scsi%d: target %d lun %d: no free tags\n",
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: target %d lun %d: no free tags\n",
|
|
|
H_NO(cmd), cmd->device->id, cmd->device->lun);
|
|
|
return 1;
|
|
|
}
|
|
@@ -394,7 +394,7 @@ static void cmd_get_tag(Scsi_Cmnd *cmd, int should_be_tagged)
|
|
|
!setup_use_tagged_queuing || !cmd->device->tagged_supported) {
|
|
|
cmd->tag = TAG_NONE;
|
|
|
hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun);
|
|
|
- TAG_PRINTK("scsi%d: target %d lun %d now allocated by untagged "
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: target %d lun %d now allocated by untagged "
|
|
|
"command\n", H_NO(cmd), cmd->device->id, cmd->device->lun);
|
|
|
} else {
|
|
|
TAG_ALLOC *ta = &TagAlloc[cmd->device->id][cmd->device->lun];
|
|
@@ -402,7 +402,7 @@ static void cmd_get_tag(Scsi_Cmnd *cmd, int should_be_tagged)
|
|
|
cmd->tag = find_first_zero_bit(ta->allocated, MAX_TAGS);
|
|
|
set_bit(cmd->tag, ta->allocated);
|
|
|
ta->nr_allocated++;
|
|
|
- TAG_PRINTK("scsi%d: using tag %d for target %d lun %d "
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: using tag %d for target %d lun %d "
|
|
|
"(now %d tags in use)\n",
|
|
|
H_NO(cmd), cmd->tag, cmd->device->id,
|
|
|
cmd->device->lun, ta->nr_allocated);
|
|
@@ -420,7 +420,7 @@ static void cmd_free_tag(Scsi_Cmnd *cmd)
|
|
|
|
|
|
if (cmd->tag == TAG_NONE) {
|
|
|
hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun);
|
|
|
- TAG_PRINTK("scsi%d: target %d lun %d untagged cmd finished\n",
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: target %d lun %d untagged cmd finished\n",
|
|
|
H_NO(cmd), cmd->device->id, cmd->device->lun);
|
|
|
} else if (cmd->tag >= MAX_TAGS) {
|
|
|
printk(KERN_NOTICE "scsi%d: trying to free bad tag %d!\n",
|
|
@@ -429,7 +429,7 @@ static void cmd_free_tag(Scsi_Cmnd *cmd)
|
|
|
TAG_ALLOC *ta = &TagAlloc[cmd->device->id][cmd->device->lun];
|
|
|
clear_bit(cmd->tag, ta->allocated);
|
|
|
ta->nr_allocated--;
|
|
|
- TAG_PRINTK("scsi%d: freed tag %d for target %d lun %d\n",
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: freed tag %d for target %d lun %d\n",
|
|
|
H_NO(cmd), cmd->tag, cmd->device->id, cmd->device->lun);
|
|
|
}
|
|
|
}
|
|
@@ -478,7 +478,7 @@ static void merge_contiguous_buffers(Scsi_Cmnd *cmd)
|
|
|
for (endaddr = virt_to_phys(cmd->SCp.ptr + cmd->SCp.this_residual - 1) + 1;
|
|
|
cmd->SCp.buffers_residual &&
|
|
|
virt_to_phys(sg_virt(&cmd->SCp.buffer[1])) == endaddr;) {
|
|
|
- MER_PRINTK("VTOP(%p) == %08lx -> merging\n",
|
|
|
+ dprintk(NDEBUG_MERGING, "VTOP(%p) == %08lx -> merging\n",
|
|
|
page_address(sg_page(&cmd->SCp.buffer[1])), endaddr);
|
|
|
#if (NDEBUG & NDEBUG_MERGING)
|
|
|
++cnt;
|
|
@@ -490,7 +490,7 @@ static void merge_contiguous_buffers(Scsi_Cmnd *cmd)
|
|
|
}
|
|
|
#if (NDEBUG & NDEBUG_MERGING)
|
|
|
if (oldlen != cmd->SCp.this_residual)
|
|
|
- MER_PRINTK("merged %d buffers from %p, new length %08x\n",
|
|
|
+ dprintk(NDEBUG_MERGING, "merged %d buffers from %p, new length %08x\n",
|
|
|
cnt, cmd->SCp.ptr, cmd->SCp.this_residual);
|
|
|
#endif
|
|
|
}
|
|
@@ -626,16 +626,6 @@ static void NCR5380_print_phase(struct Scsi_Host *instance)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#else /* !NDEBUG */
|
|
|
-
|
|
|
-/* dummies... */
|
|
|
-static inline void NCR5380_print(struct Scsi_Host *instance)
|
|
|
-{
|
|
|
-};
|
|
|
-static inline void NCR5380_print_phase(struct Scsi_Host *instance)
|
|
|
-{
|
|
|
-};
|
|
|
-
|
|
|
#endif
|
|
|
|
|
|
/*
|
|
@@ -676,7 +666,7 @@ static inline void NCR5380_all_init(void)
|
|
|
{
|
|
|
static int done = 0;
|
|
|
if (!done) {
|
|
|
- INI_PRINTK("scsi : NCR5380_all_init()\n");
|
|
|
+ dprintk(NDEBUG_INIT, "scsi : NCR5380_all_init()\n");
|
|
|
done = 1;
|
|
|
}
|
|
|
}
|
|
@@ -739,8 +729,8 @@ static void NCR5380_print_status(struct Scsi_Host *instance)
|
|
|
Scsi_Cmnd *ptr;
|
|
|
unsigned long flags;
|
|
|
|
|
|
- NCR_PRINT(NDEBUG_ANY);
|
|
|
- NCR_PRINT_PHASE(NDEBUG_ANY);
|
|
|
+ NCR5380_dprint(NDEBUG_ANY, instance);
|
|
|
+ NCR5380_dprint_phase(NDEBUG_ANY, instance);
|
|
|
|
|
|
hostdata = (struct NCR5380_hostdata *)instance->hostdata;
|
|
|
|
|
@@ -984,7 +974,7 @@ static int NCR5380_queue_command_lck(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *))
|
|
|
}
|
|
|
local_irq_restore(flags);
|
|
|
|
|
|
- QU_PRINTK("scsi%d: command added to %s of queue\n", H_NO(cmd),
|
|
|
+ dprintk(NDEBUG_QUEUES, "scsi%d: command added to %s of queue\n", H_NO(cmd),
|
|
|
(cmd->cmnd[0] == REQUEST_SENSE) ? "head" : "tail");
|
|
|
|
|
|
/* If queue_command() is called from an interrupt (real one or bottom
|
|
@@ -1054,7 +1044,7 @@ static void NCR5380_main(struct work_struct *work)
|
|
|
done = 1;
|
|
|
|
|
|
if (!hostdata->connected) {
|
|
|
- MAIN_PRINTK("scsi%d: not connected\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_MAIN, "scsi%d: not connected\n", HOSTNO);
|
|
|
/*
|
|
|
* Search through the issue_queue for a command destined
|
|
|
* for a target that's not busy.
|
|
@@ -1107,7 +1097,7 @@ static void NCR5380_main(struct work_struct *work)
|
|
|
* On failure, we must add the command back to the
|
|
|
* issue queue so we can keep trying.
|
|
|
*/
|
|
|
- MAIN_PRINTK("scsi%d: main(): command for target %d "
|
|
|
+ dprintk(NDEBUG_MAIN, "scsi%d: main(): command for target %d "
|
|
|
"lun %d removed from issue_queue\n",
|
|
|
HOSTNO, tmp->device->id, tmp->device->lun);
|
|
|
/*
|
|
@@ -1140,7 +1130,7 @@ static void NCR5380_main(struct work_struct *work)
|
|
|
#endif
|
|
|
falcon_dont_release--;
|
|
|
local_irq_restore(flags);
|
|
|
- MAIN_PRINTK("scsi%d: main(): select() failed, "
|
|
|
+ dprintk(NDEBUG_MAIN, "scsi%d: main(): select() failed, "
|
|
|
"returned to issue_queue\n", HOSTNO);
|
|
|
if (hostdata->connected)
|
|
|
break;
|
|
@@ -1155,10 +1145,10 @@ static void NCR5380_main(struct work_struct *work)
|
|
|
#endif
|
|
|
) {
|
|
|
local_irq_restore(flags);
|
|
|
- MAIN_PRINTK("scsi%d: main: performing information transfer\n",
|
|
|
+ dprintk(NDEBUG_MAIN, "scsi%d: main: performing information transfer\n",
|
|
|
HOSTNO);
|
|
|
NCR5380_information_transfer(instance);
|
|
|
- MAIN_PRINTK("scsi%d: main: done set false\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_MAIN, "scsi%d: main: done set false\n", HOSTNO);
|
|
|
done = 0;
|
|
|
}
|
|
|
} while (!done);
|
|
@@ -1204,12 +1194,12 @@ static void NCR5380_dma_complete(struct Scsi_Host *instance)
|
|
|
(BASR_PHASE_MATCH|BASR_ACK)) {
|
|
|
saved_data = NCR5380_read(INPUT_DATA_REG);
|
|
|
overrun = 1;
|
|
|
- DMA_PRINTK("scsi%d: read overrun handled\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_DMA, "scsi%d: read overrun handled\n", HOSTNO);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- DMA_PRINTK("scsi%d: real DMA transfer complete, basr 0x%X, sr 0x%X\n",
|
|
|
+ dprintk(NDEBUG_DMA, "scsi%d: real DMA transfer complete, basr 0x%X, sr 0x%X\n",
|
|
|
HOSTNO, NCR5380_read(BUS_AND_STATUS_REG),
|
|
|
NCR5380_read(STATUS_REG));
|
|
|
|
|
@@ -1229,13 +1219,13 @@ static void NCR5380_dma_complete(struct Scsi_Host *instance)
|
|
|
if ((NCR5380_read(STATUS_REG) & PHASE_MASK) == p && (p & SR_IO)) {
|
|
|
cnt = toPIO = atari_read_overruns;
|
|
|
if (overrun) {
|
|
|
- DMA_PRINTK("Got an input overrun, using saved byte\n");
|
|
|
+ dprintk(NDEBUG_DMA, "Got an input overrun, using saved byte\n");
|
|
|
*(*data)++ = saved_data;
|
|
|
(*count)--;
|
|
|
cnt--;
|
|
|
toPIO--;
|
|
|
}
|
|
|
- DMA_PRINTK("Doing %d-byte PIO to 0x%08lx\n", cnt, (long)*data);
|
|
|
+ dprintk(NDEBUG_DMA, "Doing %d-byte PIO to 0x%08lx\n", cnt, (long)*data);
|
|
|
NCR5380_transfer_pio(instance, &p, &cnt, data);
|
|
|
*count -= toPIO - cnt;
|
|
|
}
|
|
@@ -1261,25 +1251,25 @@ static irqreturn_t NCR5380_intr(int irq, void *dev_id)
|
|
|
int done = 1, handled = 0;
|
|
|
unsigned char basr;
|
|
|
|
|
|
- INT_PRINTK("scsi%d: NCR5380 irq triggered\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_INTR, "scsi%d: NCR5380 irq triggered\n", HOSTNO);
|
|
|
|
|
|
/* Look for pending interrupts */
|
|
|
basr = NCR5380_read(BUS_AND_STATUS_REG);
|
|
|
- INT_PRINTK("scsi%d: BASR=%02x\n", HOSTNO, basr);
|
|
|
+ dprintk(NDEBUG_INTR, "scsi%d: BASR=%02x\n", HOSTNO, basr);
|
|
|
/* dispatch to appropriate routine if found and done=0 */
|
|
|
if (basr & BASR_IRQ) {
|
|
|
- NCR_PRINT(NDEBUG_INTR);
|
|
|
+ NCR5380_dprint(NDEBUG_INTR, instance);
|
|
|
if ((NCR5380_read(STATUS_REG) & (SR_SEL|SR_IO)) == (SR_SEL|SR_IO)) {
|
|
|
done = 0;
|
|
|
ENABLE_IRQ();
|
|
|
- INT_PRINTK("scsi%d: SEL interrupt\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_INTR, "scsi%d: SEL interrupt\n", HOSTNO);
|
|
|
NCR5380_reselect(instance);
|
|
|
(void)NCR5380_read(RESET_PARITY_INTERRUPT_REG);
|
|
|
} else if (basr & BASR_PARITY_ERROR) {
|
|
|
- INT_PRINTK("scsi%d: PARITY interrupt\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_INTR, "scsi%d: PARITY interrupt\n", HOSTNO);
|
|
|
(void)NCR5380_read(RESET_PARITY_INTERRUPT_REG);
|
|
|
} else if ((NCR5380_read(STATUS_REG) & SR_RST) == SR_RST) {
|
|
|
- INT_PRINTK("scsi%d: RESET interrupt\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_INTR, "scsi%d: RESET interrupt\n", HOSTNO);
|
|
|
(void)NCR5380_read(RESET_PARITY_INTERRUPT_REG);
|
|
|
} else {
|
|
|
/*
|
|
@@ -1298,7 +1288,7 @@ static irqreturn_t NCR5380_intr(int irq, void *dev_id)
|
|
|
((basr & BASR_END_DMA_TRANSFER) ||
|
|
|
!(basr & BASR_PHASE_MATCH))) {
|
|
|
|
|
|
- INT_PRINTK("scsi%d: PHASE MISM or EOP interrupt\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_INTR, "scsi%d: PHASE MISM or EOP interrupt\n", HOSTNO);
|
|
|
NCR5380_dma_complete( instance );
|
|
|
done = 0;
|
|
|
ENABLE_IRQ();
|
|
@@ -1323,7 +1313,7 @@ static irqreturn_t NCR5380_intr(int irq, void *dev_id)
|
|
|
}
|
|
|
|
|
|
if (!done) {
|
|
|
- INT_PRINTK("scsi%d: in int routine, calling main\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_INTR, "scsi%d: in int routine, calling main\n", HOSTNO);
|
|
|
/* Put a call to NCR5380_main() on the queue... */
|
|
|
queue_main();
|
|
|
}
|
|
@@ -1396,8 +1386,8 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
unsigned long flags;
|
|
|
|
|
|
hostdata->restart_select = 0;
|
|
|
- NCR_PRINT(NDEBUG_ARBITRATION);
|
|
|
- ARB_PRINTK("scsi%d: starting arbitration, id = %d\n", HOSTNO,
|
|
|
+ NCR5380_dprint(NDEBUG_ARBITRATION, instance);
|
|
|
+ dprintk(NDEBUG_ARBITRATION, "scsi%d: starting arbitration, id = %d\n", HOSTNO,
|
|
|
instance->this_id);
|
|
|
|
|
|
/*
|
|
@@ -1442,7 +1432,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
;
|
|
|
#endif
|
|
|
|
|
|
- ARB_PRINTK("scsi%d: arbitration complete\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_ARBITRATION, "scsi%d: arbitration complete\n", HOSTNO);
|
|
|
|
|
|
if (hostdata->connected) {
|
|
|
NCR5380_write(MODE_REG, MR_BASE);
|
|
@@ -1463,7 +1453,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
(NCR5380_read(INITIATOR_COMMAND_REG) & ICR_ARBITRATION_LOST) ||
|
|
|
hostdata->connected) {
|
|
|
NCR5380_write(MODE_REG, MR_BASE);
|
|
|
- ARB_PRINTK("scsi%d: lost arbitration, deasserting MR_ARBITRATE\n",
|
|
|
+ dprintk(NDEBUG_ARBITRATION, "scsi%d: lost arbitration, deasserting MR_ARBITRATE\n",
|
|
|
HOSTNO);
|
|
|
return -1;
|
|
|
}
|
|
@@ -1478,7 +1468,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
hostdata->connected) {
|
|
|
NCR5380_write(MODE_REG, MR_BASE);
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
|
|
|
- ARB_PRINTK("scsi%d: lost arbitration, deasserting ICR_ASSERT_SEL\n",
|
|
|
+ dprintk(NDEBUG_ARBITRATION, "scsi%d: lost arbitration, deasserting ICR_ASSERT_SEL\n",
|
|
|
HOSTNO);
|
|
|
return -1;
|
|
|
}
|
|
@@ -1501,7 +1491,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- ARB_PRINTK("scsi%d: won arbitration\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_ARBITRATION, "scsi%d: won arbitration\n", HOSTNO);
|
|
|
|
|
|
/*
|
|
|
* Now that we have won arbitration, start Selection process, asserting
|
|
@@ -1561,7 +1551,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
|
|
|
udelay(1);
|
|
|
|
|
|
- SEL_PRINTK("scsi%d: selecting target %d\n", HOSTNO, cmd->device->id);
|
|
|
+ dprintk(NDEBUG_SELECTION, "scsi%d: selecting target %d\n", HOSTNO, cmd->device->id);
|
|
|
|
|
|
/*
|
|
|
* The SCSI specification calls for a 250 ms timeout for the actual
|
|
@@ -1617,7 +1607,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
printk(KERN_ERR "scsi%d: weirdness\n", HOSTNO);
|
|
|
if (hostdata->restart_select)
|
|
|
printk(KERN_NOTICE "\trestart select\n");
|
|
|
- NCR_PRINT(NDEBUG_ANY);
|
|
|
+ NCR5380_dprint(NDEBUG_ANY, instance);
|
|
|
NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
|
|
|
return -1;
|
|
|
}
|
|
@@ -1630,7 +1620,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
#endif
|
|
|
cmd->scsi_done(cmd);
|
|
|
NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
|
|
|
- SEL_PRINTK("scsi%d: target did not respond within 250ms\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_SELECTION, "scsi%d: target did not respond within 250ms\n", HOSTNO);
|
|
|
NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
|
|
|
return 0;
|
|
|
}
|
|
@@ -1656,7 +1646,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
while (!(NCR5380_read(STATUS_REG) & SR_REQ))
|
|
|
;
|
|
|
|
|
|
- SEL_PRINTK("scsi%d: target %d selected, going into MESSAGE OUT phase.\n",
|
|
|
+ dprintk(NDEBUG_SELECTION, "scsi%d: target %d selected, going into MESSAGE OUT phase.\n",
|
|
|
HOSTNO, cmd->device->id);
|
|
|
tmp[0] = IDENTIFY(1, cmd->device->lun);
|
|
|
|
|
@@ -1676,7 +1666,7 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd, int tag)
|
|
|
data = tmp;
|
|
|
phase = PHASE_MSGOUT;
|
|
|
NCR5380_transfer_pio(instance, &phase, &len, &data);
|
|
|
- SEL_PRINTK("scsi%d: nexus established.\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_SELECTION, "scsi%d: nexus established.\n", HOSTNO);
|
|
|
/* XXX need to handle errors here */
|
|
|
hostdata->connected = cmd;
|
|
|
#ifndef SUPPORT_TAGS
|
|
@@ -1737,12 +1727,12 @@ static int NCR5380_transfer_pio(struct Scsi_Host *instance,
|
|
|
while (!((tmp = NCR5380_read(STATUS_REG)) & SR_REQ))
|
|
|
;
|
|
|
|
|
|
- HSH_PRINTK("scsi%d: REQ detected\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_HANDSHAKE, "scsi%d: REQ detected\n", HOSTNO);
|
|
|
|
|
|
/* Check for phase mismatch */
|
|
|
if ((tmp & PHASE_MASK) != p) {
|
|
|
- PIO_PRINTK("scsi%d: phase mismatch\n", HOSTNO);
|
|
|
- NCR_PRINT_PHASE(NDEBUG_PIO);
|
|
|
+ dprintk(NDEBUG_PIO, "scsi%d: phase mismatch\n", HOSTNO);
|
|
|
+ NCR5380_dprint_phase(NDEBUG_PIO, instance);
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -1764,25 +1754,25 @@ static int NCR5380_transfer_pio(struct Scsi_Host *instance,
|
|
|
if (!(p & SR_IO)) {
|
|
|
if (!((p & SR_MSG) && c > 1)) {
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_DATA);
|
|
|
- NCR_PRINT(NDEBUG_PIO);
|
|
|
+ NCR5380_dprint(NDEBUG_PIO, instance);
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE |
|
|
|
ICR_ASSERT_DATA | ICR_ASSERT_ACK);
|
|
|
} else {
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE |
|
|
|
ICR_ASSERT_DATA | ICR_ASSERT_ATN);
|
|
|
- NCR_PRINT(NDEBUG_PIO);
|
|
|
+ NCR5380_dprint(NDEBUG_PIO, instance);
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE |
|
|
|
ICR_ASSERT_DATA | ICR_ASSERT_ATN | ICR_ASSERT_ACK);
|
|
|
}
|
|
|
} else {
|
|
|
- NCR_PRINT(NDEBUG_PIO);
|
|
|
+ NCR5380_dprint(NDEBUG_PIO, instance);
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ACK);
|
|
|
}
|
|
|
|
|
|
while (NCR5380_read(STATUS_REG) & SR_REQ)
|
|
|
;
|
|
|
|
|
|
- HSH_PRINTK("scsi%d: req false, handshake complete\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_HANDSHAKE, "scsi%d: req false, handshake complete\n", HOSTNO);
|
|
|
|
|
|
/*
|
|
|
* We have several special cases to consider during REQ/ACK handshaking :
|
|
@@ -1803,7 +1793,7 @@ static int NCR5380_transfer_pio(struct Scsi_Host *instance,
|
|
|
}
|
|
|
} while (--c);
|
|
|
|
|
|
- PIO_PRINTK("scsi%d: residual %d\n", HOSTNO, c);
|
|
|
+ dprintk(NDEBUG_PIO, "scsi%d: residual %d\n", HOSTNO, c);
|
|
|
|
|
|
*count = c;
|
|
|
*data = d;
|
|
@@ -1917,7 +1907,7 @@ static int NCR5380_transfer_dma(struct Scsi_Host *instance,
|
|
|
if (atari_read_overruns && (p & SR_IO))
|
|
|
c -= atari_read_overruns;
|
|
|
|
|
|
- DMA_PRINTK("scsi%d: initializing DMA for %s, %d bytes %s %p\n",
|
|
|
+ dprintk(NDEBUG_DMA, "scsi%d: initializing DMA for %s, %d bytes %s %p\n",
|
|
|
HOSTNO, (p & SR_IO) ? "reading" : "writing",
|
|
|
c, (p & SR_IO) ? "to" : "from", d);
|
|
|
|
|
@@ -1997,7 +1987,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
phase = (tmp & PHASE_MASK);
|
|
|
if (phase != old_phase) {
|
|
|
old_phase = phase;
|
|
|
- NCR_PRINT_PHASE(NDEBUG_INFORMATION);
|
|
|
+ NCR5380_dprint_phase(NDEBUG_INFORMATION, instance);
|
|
|
}
|
|
|
|
|
|
if (sink && (phase != PHASE_MSGOUT)) {
|
|
@@ -2039,7 +2029,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
* they are at contiguous physical addresses.
|
|
|
*/
|
|
|
merge_contiguous_buffers(cmd);
|
|
|
- INF_PRINTK("scsi%d: %d bytes and %d buffers left\n",
|
|
|
+ dprintk(NDEBUG_INFORMATION, "scsi%d: %d bytes and %d buffers left\n",
|
|
|
HOSTNO, cmd->SCp.this_residual,
|
|
|
cmd->SCp.buffers_residual);
|
|
|
}
|
|
@@ -2123,7 +2113,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
/* Accept message by clearing ACK */
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
|
|
|
|
|
|
- LNK_PRINTK("scsi%d: target %d lun %d linked command "
|
|
|
+ dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %d linked command "
|
|
|
"complete.\n", HOSTNO, cmd->device->id, cmd->device->lun);
|
|
|
|
|
|
/* Enable reselect interrupts */
|
|
@@ -2148,7 +2138,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
* and don't free it! */
|
|
|
cmd->next_link->tag = cmd->tag;
|
|
|
cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8);
|
|
|
- LNK_PRINTK("scsi%d: target %d lun %d linked request "
|
|
|
+ dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %d linked request "
|
|
|
"done, calling scsi_done().\n",
|
|
|
HOSTNO, cmd->device->id, cmd->device->lun);
|
|
|
#ifdef NCR5380_STATS
|
|
@@ -2165,7 +2155,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
/* ++guenther: possible race with Falcon locking */
|
|
|
falcon_dont_release++;
|
|
|
hostdata->connected = NULL;
|
|
|
- QU_PRINTK("scsi%d: command for target %d, lun %d "
|
|
|
+ dprintk(NDEBUG_QUEUES, "scsi%d: command for target %d, lun %d "
|
|
|
"completed\n", HOSTNO, cmd->device->id, cmd->device->lun);
|
|
|
#ifdef SUPPORT_TAGS
|
|
|
cmd_free_tag(cmd);
|
|
@@ -2179,7 +2169,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
/* ++Andreas: the mid level code knows about
|
|
|
QUEUE_FULL now. */
|
|
|
TAG_ALLOC *ta = &TagAlloc[cmd->device->id][cmd->device->lun];
|
|
|
- TAG_PRINTK("scsi%d: target %d lun %d returned "
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: target %d lun %d returned "
|
|
|
"QUEUE_FULL after %d commands\n",
|
|
|
HOSTNO, cmd->device->id, cmd->device->lun,
|
|
|
ta->nr_allocated);
|
|
@@ -2224,14 +2214,14 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
(status_byte(cmd->SCp.Status) == CHECK_CONDITION)) {
|
|
|
scsi_eh_prep_cmnd(cmd, &hostdata->ses, NULL, 0, ~0);
|
|
|
|
|
|
- ASEN_PRINTK("scsi%d: performing request sense\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_AUTOSENSE, "scsi%d: performing request sense\n", HOSTNO);
|
|
|
|
|
|
local_irq_save(flags);
|
|
|
LIST(cmd,hostdata->issue_queue);
|
|
|
SET_NEXT(cmd, hostdata->issue_queue);
|
|
|
hostdata->issue_queue = (Scsi_Cmnd *) cmd;
|
|
|
local_irq_restore(flags);
|
|
|
- QU_PRINTK("scsi%d: REQUEST SENSE added to head of "
|
|
|
+ dprintk(NDEBUG_QUEUES, "scsi%d: REQUEST SENSE added to head of "
|
|
|
"issue queue\n", H_NO(cmd));
|
|
|
} else
|
|
|
#endif /* def AUTOSENSE */
|
|
@@ -2277,7 +2267,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
cmd->device->tagged_supported = 0;
|
|
|
hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun);
|
|
|
cmd->tag = TAG_NONE;
|
|
|
- TAG_PRINTK("scsi%d: target %d lun %d rejected "
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: target %d lun %d rejected "
|
|
|
"QUEUE_TAG message; tagged queuing "
|
|
|
"disabled\n",
|
|
|
HOSTNO, cmd->device->id, cmd->device->lun);
|
|
@@ -2294,7 +2284,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
hostdata->connected = NULL;
|
|
|
hostdata->disconnected_queue = cmd;
|
|
|
local_irq_restore(flags);
|
|
|
- QU_PRINTK("scsi%d: command for target %d lun %d was "
|
|
|
+ dprintk(NDEBUG_QUEUES, "scsi%d: command for target %d lun %d was "
|
|
|
"moved from connected to the "
|
|
|
"disconnected_queue\n", HOSTNO,
|
|
|
cmd->device->id, cmd->device->lun);
|
|
@@ -2344,13 +2334,13 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
/* Accept first byte by clearing ACK */
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
|
|
|
|
|
|
- EXT_PRINTK("scsi%d: receiving extended message\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_EXTENDED, "scsi%d: receiving extended message\n", HOSTNO);
|
|
|
|
|
|
len = 2;
|
|
|
data = extended_msg + 1;
|
|
|
phase = PHASE_MSGIN;
|
|
|
NCR5380_transfer_pio(instance, &phase, &len, &data);
|
|
|
- EXT_PRINTK("scsi%d: length=%d, code=0x%02x\n", HOSTNO,
|
|
|
+ dprintk(NDEBUG_EXTENDED, "scsi%d: length=%d, code=0x%02x\n", HOSTNO,
|
|
|
(int)extended_msg[1], (int)extended_msg[2]);
|
|
|
|
|
|
if (!len && extended_msg[1] <=
|
|
@@ -2362,7 +2352,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
phase = PHASE_MSGIN;
|
|
|
|
|
|
NCR5380_transfer_pio(instance, &phase, &len, &data);
|
|
|
- EXT_PRINTK("scsi%d: message received, residual %d\n",
|
|
|
+ dprintk(NDEBUG_EXTENDED, "scsi%d: message received, residual %d\n",
|
|
|
HOSTNO, len);
|
|
|
|
|
|
switch (extended_msg[2]) {
|
|
@@ -2451,7 +2441,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance)
|
|
|
break;
|
|
|
default:
|
|
|
printk("scsi%d: unknown phase\n", HOSTNO);
|
|
|
- NCR_PRINT(NDEBUG_ANY);
|
|
|
+ NCR5380_dprint(NDEBUG_ANY, instance);
|
|
|
} /* switch(phase) */
|
|
|
} /* if (tmp * SR_REQ) */
|
|
|
} /* while (1) */
|
|
@@ -2493,7 +2483,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance)
|
|
|
|
|
|
target_mask = NCR5380_read(CURRENT_SCSI_DATA_REG) & ~(hostdata->id_mask);
|
|
|
|
|
|
- RSL_PRINTK("scsi%d: reselect\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_RESELECTION, "scsi%d: reselect\n", HOSTNO);
|
|
|
|
|
|
/*
|
|
|
* At this point, we have detected that our SCSI ID is on the bus,
|
|
@@ -2544,7 +2534,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance)
|
|
|
if (!NCR5380_transfer_pio(instance, &phase, &len, &data) &&
|
|
|
msg[1] == SIMPLE_QUEUE_TAG)
|
|
|
tag = msg[2];
|
|
|
- TAG_PRINTK("scsi%d: target mask %02x, lun %d sent tag %d at "
|
|
|
+ dprintk(NDEBUG_TAGS, "scsi%d: target mask %02x, lun %d sent tag %d at "
|
|
|
"reselection\n", HOSTNO, target_mask, lun, tag);
|
|
|
}
|
|
|
#endif
|
|
@@ -2598,7 +2588,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance)
|
|
|
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
|
|
|
|
|
|
hostdata->connected = tmp;
|
|
|
- RSL_PRINTK("scsi%d: nexus established, target = %d, lun = %d, tag = %d\n",
|
|
|
+ dprintk(NDEBUG_RESELECTION, "scsi%d: nexus established, target = %d, lun = %d, tag = %d\n",
|
|
|
HOSTNO, tmp->device->id, tmp->device->lun, tmp->tag);
|
|
|
falcon_dont_release--;
|
|
|
}
|
|
@@ -2640,7 +2630,7 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
printk(KERN_ERR "scsi%d: !!BINGO!! Falcon has no lock in NCR5380_abort\n",
|
|
|
HOSTNO);
|
|
|
|
|
|
- ABRT_PRINTK("scsi%d: abort called basr 0x%02x, sr 0x%02x\n", HOSTNO,
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: abort called basr 0x%02x, sr 0x%02x\n", HOSTNO,
|
|
|
NCR5380_read(BUS_AND_STATUS_REG),
|
|
|
NCR5380_read(STATUS_REG));
|
|
|
|
|
@@ -2653,7 +2643,7 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
|
|
|
if (hostdata->connected == cmd) {
|
|
|
|
|
|
- ABRT_PRINTK("scsi%d: aborting connected command\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: aborting connected command\n", HOSTNO);
|
|
|
/*
|
|
|
* We should perform BSY checking, and make sure we haven't slipped
|
|
|
* into BUS FREE.
|
|
@@ -2683,11 +2673,11 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
local_irq_restore(flags);
|
|
|
cmd->scsi_done(cmd);
|
|
|
falcon_release_lock_if_possible(hostdata);
|
|
|
- return SCSI_ABORT_SUCCESS;
|
|
|
+ return SUCCESS;
|
|
|
} else {
|
|
|
/* local_irq_restore(flags); */
|
|
|
printk("scsi%d: abort of connected command failed!\n", HOSTNO);
|
|
|
- return SCSI_ABORT_ERROR;
|
|
|
+ return FAILED;
|
|
|
}
|
|
|
}
|
|
|
#endif
|
|
@@ -2705,13 +2695,13 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
SET_NEXT(tmp, NULL);
|
|
|
tmp->result = DID_ABORT << 16;
|
|
|
local_irq_restore(flags);
|
|
|
- ABRT_PRINTK("scsi%d: abort removed command from issue queue.\n",
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: abort removed command from issue queue.\n",
|
|
|
HOSTNO);
|
|
|
/* Tagged queuing note: no tag to free here, hasn't been assigned
|
|
|
* yet... */
|
|
|
tmp->scsi_done(tmp);
|
|
|
falcon_release_lock_if_possible(hostdata);
|
|
|
- return SCSI_ABORT_SUCCESS;
|
|
|
+ return SUCCESS;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2728,8 +2718,8 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
|
|
|
if (hostdata->connected) {
|
|
|
local_irq_restore(flags);
|
|
|
- ABRT_PRINTK("scsi%d: abort failed, command connected.\n", HOSTNO);
|
|
|
- return SCSI_ABORT_SNOOZE;
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: abort failed, command connected.\n", HOSTNO);
|
|
|
+ return FAILED;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -2761,12 +2751,12 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
tmp = NEXT(tmp)) {
|
|
|
if (cmd == tmp) {
|
|
|
local_irq_restore(flags);
|
|
|
- ABRT_PRINTK("scsi%d: aborting disconnected command.\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: aborting disconnected command.\n", HOSTNO);
|
|
|
|
|
|
if (NCR5380_select(instance, cmd, (int)cmd->tag))
|
|
|
- return SCSI_ABORT_BUSY;
|
|
|
+ return FAILED;
|
|
|
|
|
|
- ABRT_PRINTK("scsi%d: nexus reestablished.\n", HOSTNO);
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: nexus reestablished.\n", HOSTNO);
|
|
|
|
|
|
do_abort(instance);
|
|
|
|
|
@@ -2791,7 +2781,7 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
local_irq_restore(flags);
|
|
|
tmp->scsi_done(tmp);
|
|
|
falcon_release_lock_if_possible(hostdata);
|
|
|
- return SCSI_ABORT_SUCCESS;
|
|
|
+ return SUCCESS;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2816,7 +2806,7 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
*/
|
|
|
falcon_release_lock_if_possible(hostdata);
|
|
|
|
|
|
- return SCSI_ABORT_NOT_RUNNING;
|
|
|
+ return FAILED;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2825,7 +2815,7 @@ int NCR5380_abort(Scsi_Cmnd *cmd)
|
|
|
*
|
|
|
* Purpose : reset the SCSI bus.
|
|
|
*
|
|
|
- * Returns : SCSI_RESET_WAKEUP
|
|
|
+ * Returns : SUCCESS or FAILURE
|
|
|
*
|
|
|
*/
|
|
|
|
|
@@ -2834,7 +2824,7 @@ static int NCR5380_bus_reset(Scsi_Cmnd *cmd)
|
|
|
SETUP_HOSTDATA(cmd->device->host);
|
|
|
int i;
|
|
|
unsigned long flags;
|
|
|
-#if 1
|
|
|
+#if defined(RESET_RUN_DONE)
|
|
|
Scsi_Cmnd *connected, *disconnected_queue;
|
|
|
#endif
|
|
|
|
|
@@ -2859,7 +2849,14 @@ static int NCR5380_bus_reset(Scsi_Cmnd *cmd)
|
|
|
* through anymore ... */
|
|
|
(void)NCR5380_read(RESET_PARITY_INTERRUPT_REG);
|
|
|
|
|
|
-#if 1 /* XXX Should now be done by midlevel code, but it's broken XXX */
|
|
|
+ /* MSch 20140115 - looking at the generic NCR5380 driver, all of this
|
|
|
+ * should go.
|
|
|
+ * Catch-22: if we don't clear all queues, the SCSI driver lock will
|
|
|
+ * not be reset by atari_scsi_reset()!
|
|
|
+ */
|
|
|
+
|
|
|
+#if defined(RESET_RUN_DONE)
|
|
|
+ /* XXX Should now be done by midlevel code, but it's broken XXX */
|
|
|
/* XXX see below XXX */
|
|
|
|
|
|
/* MSch: old-style reset: actually abort all command processing here */
|
|
@@ -2890,7 +2887,7 @@ static int NCR5380_bus_reset(Scsi_Cmnd *cmd)
|
|
|
*/
|
|
|
|
|
|
if ((cmd = connected)) {
|
|
|
- ABRT_PRINTK("scsi%d: reset aborted a connected command\n", H_NO(cmd));
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: reset aborted a connected command\n", H_NO(cmd));
|
|
|
cmd->result = (cmd->result & 0xffff) | (DID_RESET << 16);
|
|
|
cmd->scsi_done(cmd);
|
|
|
}
|
|
@@ -2902,7 +2899,7 @@ static int NCR5380_bus_reset(Scsi_Cmnd *cmd)
|
|
|
cmd->scsi_done(cmd);
|
|
|
}
|
|
|
if (i > 0)
|
|
|
- ABRT_PRINTK("scsi: reset aborted %d disconnected command(s)\n", i);
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi: reset aborted %d disconnected command(s)\n", i);
|
|
|
|
|
|
/* The Falcon lock should be released after a reset...
|
|
|
*/
|
|
@@ -2915,7 +2912,7 @@ static int NCR5380_bus_reset(Scsi_Cmnd *cmd)
|
|
|
* the midlevel code that the reset was SUCCESSFUL, and there is no
|
|
|
* need to 'wake up' the commands by a request_sense
|
|
|
*/
|
|
|
- return SCSI_RESET_SUCCESS | SCSI_RESET_BUS_RESET;
|
|
|
+ return SUCCESS;
|
|
|
#else /* 1 */
|
|
|
|
|
|
/* MSch: new-style reset handling: let the mid-level do what it can */
|
|
@@ -2942,11 +2939,11 @@ static int NCR5380_bus_reset(Scsi_Cmnd *cmd)
|
|
|
*/
|
|
|
|
|
|
if (hostdata->issue_queue)
|
|
|
- ABRT_PRINTK("scsi%d: reset aborted issued command(s)\n", H_NO(cmd));
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: reset aborted issued command(s)\n", H_NO(cmd));
|
|
|
if (hostdata->connected)
|
|
|
- ABRT_PRINTK("scsi%d: reset aborted a connected command\n", H_NO(cmd));
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: reset aborted a connected command\n", H_NO(cmd));
|
|
|
if (hostdata->disconnected_queue)
|
|
|
- ABRT_PRINTK("scsi%d: reset aborted disconnected command(s)\n", H_NO(cmd));
|
|
|
+ dprintk(NDEBUG_ABORT, "scsi%d: reset aborted disconnected command(s)\n", H_NO(cmd));
|
|
|
|
|
|
local_irq_save(flags);
|
|
|
hostdata->issue_queue = NULL;
|
|
@@ -2963,6 +2960,6 @@ static int NCR5380_bus_reset(Scsi_Cmnd *cmd)
|
|
|
local_irq_restore(flags);
|
|
|
|
|
|
/* we did no complete reset of all commands, so a wakeup is required */
|
|
|
- return SCSI_RESET_WAKEUP | SCSI_RESET_BUS_RESET;
|
|
|
+ return SUCCESS;
|
|
|
#endif /* 1 */
|
|
|
}
|