scsi: remove SPRINTF macro
The macro SPRINTF doesn't save a lot of typing or make the code more readable, and depending on a specific identifier (m) in the surrounding scope is generally frowned upon. Nuke it. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Reviewed-by: Finn Thain <fthain@telegraphics.com.au> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
5af2e38242
commit
0c3de38ff3
|
@ -716,8 +716,6 @@ static int __maybe_unused NCR5380_write_info(struct Scsi_Host *instance,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef SPRINTF
|
|
||||||
#define SPRINTF(args...) seq_printf(m, ## args)
|
|
||||||
static
|
static
|
||||||
void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m);
|
void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m);
|
||||||
static
|
static
|
||||||
|
@ -734,19 +732,19 @@ static int __maybe_unused NCR5380_show_info(struct seq_file *m,
|
||||||
hostdata = (struct NCR5380_hostdata *) instance->hostdata;
|
hostdata = (struct NCR5380_hostdata *) instance->hostdata;
|
||||||
|
|
||||||
#ifdef PSEUDO_DMA
|
#ifdef PSEUDO_DMA
|
||||||
SPRINTF("Highwater I/O busy spin counts: write %d, read %d\n",
|
seq_printf(m, "Highwater I/O busy spin counts: write %d, read %d\n",
|
||||||
hostdata->spin_max_w, hostdata->spin_max_r);
|
hostdata->spin_max_w, hostdata->spin_max_r);
|
||||||
#endif
|
#endif
|
||||||
spin_lock_irq(instance->host_lock);
|
spin_lock_irq(instance->host_lock);
|
||||||
if (!hostdata->connected)
|
if (!hostdata->connected)
|
||||||
SPRINTF("scsi%d: no currently connected command\n", instance->host_no);
|
seq_printf(m, "scsi%d: no currently connected command\n", instance->host_no);
|
||||||
else
|
else
|
||||||
lprint_Scsi_Cmnd((struct scsi_cmnd *) hostdata->connected, m);
|
lprint_Scsi_Cmnd((struct scsi_cmnd *) hostdata->connected, m);
|
||||||
SPRINTF("scsi%d: issue_queue\n", instance->host_no);
|
seq_printf(m, "scsi%d: issue_queue\n", instance->host_no);
|
||||||
for (ptr = (struct scsi_cmnd *) hostdata->issue_queue; ptr; ptr = (struct scsi_cmnd *) ptr->host_scribble)
|
for (ptr = (struct scsi_cmnd *) hostdata->issue_queue; ptr; ptr = (struct scsi_cmnd *) ptr->host_scribble)
|
||||||
lprint_Scsi_Cmnd(ptr, m);
|
lprint_Scsi_Cmnd(ptr, m);
|
||||||
|
|
||||||
SPRINTF("scsi%d: disconnected_queue\n", instance->host_no);
|
seq_printf(m, "scsi%d: disconnected_queue\n", instance->host_no);
|
||||||
for (ptr = (struct scsi_cmnd *) hostdata->disconnected_queue; ptr; ptr = (struct scsi_cmnd *) ptr->host_scribble)
|
for (ptr = (struct scsi_cmnd *) hostdata->disconnected_queue; ptr; ptr = (struct scsi_cmnd *) ptr->host_scribble)
|
||||||
lprint_Scsi_Cmnd(ptr, m);
|
lprint_Scsi_Cmnd(ptr, m);
|
||||||
spin_unlock_irq(instance->host_lock);
|
spin_unlock_irq(instance->host_lock);
|
||||||
|
@ -755,8 +753,8 @@ static int __maybe_unused NCR5380_show_info(struct seq_file *m,
|
||||||
|
|
||||||
static void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m)
|
static void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m)
|
||||||
{
|
{
|
||||||
SPRINTF("scsi%d : destination target %d, lun %llu\n", cmd->device->host->host_no, cmd->device->id, cmd->device->lun);
|
seq_printf(m, "scsi%d : destination target %d, lun %llu\n", cmd->device->host->host_no, cmd->device->id, cmd->device->lun);
|
||||||
SPRINTF(" command = ");
|
seq_printf(m, " command = ");
|
||||||
lprint_command(cmd->cmnd, m);
|
lprint_command(cmd->cmnd, m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -765,13 +763,13 @@ static void lprint_command(unsigned char *command, struct seq_file *m)
|
||||||
int i, s;
|
int i, s;
|
||||||
lprint_opcode(command[0], m);
|
lprint_opcode(command[0], m);
|
||||||
for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
|
for (i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i)
|
||||||
SPRINTF("%02x ", command[i]);
|
seq_printf(m, "%02x ", command[i]);
|
||||||
SPRINTF("\n");
|
seq_printf(m, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lprint_opcode(int opcode, struct seq_file *m)
|
static void lprint_opcode(int opcode, struct seq_file *m)
|
||||||
{
|
{
|
||||||
SPRINTF("%2d (0x%02x)", opcode, opcode);
|
seq_printf(m, "%2d (0x%02x)", opcode, opcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2490,299 +2490,296 @@ static void show_queues(struct Scsi_Host *shpnt)
|
||||||
disp_enintr(shpnt);
|
disp_enintr(shpnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef SPRINTF
|
|
||||||
#define SPRINTF(args...) seq_printf(m, ##args)
|
|
||||||
|
|
||||||
static void get_command(struct seq_file *m, Scsi_Cmnd * ptr)
|
static void get_command(struct seq_file *m, Scsi_Cmnd * ptr)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
SPRINTF("%p: target=%d; lun=%d; cmnd=( ",
|
seq_printf(m, "%p: target=%d; lun=%d; cmnd=( ",
|
||||||
ptr, ptr->device->id, (u8)ptr->device->lun);
|
ptr, ptr->device->id, (u8)ptr->device->lun);
|
||||||
|
|
||||||
for (i = 0; i < COMMAND_SIZE(ptr->cmnd[0]); i++)
|
for (i = 0; i < COMMAND_SIZE(ptr->cmnd[0]); i++)
|
||||||
SPRINTF("0x%02x ", ptr->cmnd[i]);
|
seq_printf(m, "0x%02x ", ptr->cmnd[i]);
|
||||||
|
|
||||||
SPRINTF("); resid=%d; residual=%d; buffers=%d; phase |",
|
seq_printf(m, "); resid=%d; residual=%d; buffers=%d; phase |",
|
||||||
scsi_get_resid(ptr), ptr->SCp.this_residual,
|
scsi_get_resid(ptr), ptr->SCp.this_residual,
|
||||||
ptr->SCp.buffers_residual);
|
ptr->SCp.buffers_residual);
|
||||||
|
|
||||||
if (ptr->SCp.phase & not_issued)
|
if (ptr->SCp.phase & not_issued)
|
||||||
SPRINTF("not issued|");
|
seq_printf(m, "not issued|");
|
||||||
if (ptr->SCp.phase & selecting)
|
if (ptr->SCp.phase & selecting)
|
||||||
SPRINTF("selecting|");
|
seq_printf(m, "selecting|");
|
||||||
if (ptr->SCp.phase & disconnected)
|
if (ptr->SCp.phase & disconnected)
|
||||||
SPRINTF("disconnected|");
|
seq_printf(m, "disconnected|");
|
||||||
if (ptr->SCp.phase & aborted)
|
if (ptr->SCp.phase & aborted)
|
||||||
SPRINTF("aborted|");
|
seq_printf(m, "aborted|");
|
||||||
if (ptr->SCp.phase & identified)
|
if (ptr->SCp.phase & identified)
|
||||||
SPRINTF("identified|");
|
seq_printf(m, "identified|");
|
||||||
if (ptr->SCp.phase & completed)
|
if (ptr->SCp.phase & completed)
|
||||||
SPRINTF("completed|");
|
seq_printf(m, "completed|");
|
||||||
if (ptr->SCp.phase & spiordy)
|
if (ptr->SCp.phase & spiordy)
|
||||||
SPRINTF("spiordy|");
|
seq_printf(m, "spiordy|");
|
||||||
if (ptr->SCp.phase & syncneg)
|
if (ptr->SCp.phase & syncneg)
|
||||||
SPRINTF("syncneg|");
|
seq_printf(m, "syncneg|");
|
||||||
SPRINTF("; next=0x%p\n", SCNEXT(ptr));
|
seq_printf(m, "; next=0x%p\n", SCNEXT(ptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_ports(struct seq_file *m, struct Scsi_Host *shpnt)
|
static void get_ports(struct seq_file *m, struct Scsi_Host *shpnt)
|
||||||
{
|
{
|
||||||
int s;
|
int s;
|
||||||
|
|
||||||
SPRINTF("\n%s: %s(%s) ", CURRENT_SC ? "on bus" : "waiting", states[STATE].name, states[PREVSTATE].name);
|
seq_printf(m, "\n%s: %s(%s) ", CURRENT_SC ? "on bus" : "waiting", states[STATE].name, states[PREVSTATE].name);
|
||||||
|
|
||||||
s = GETPORT(SCSISEQ);
|
s = GETPORT(SCSISEQ);
|
||||||
SPRINTF("SCSISEQ( ");
|
seq_printf(m, "SCSISEQ( ");
|
||||||
if (s & TEMODEO)
|
if (s & TEMODEO)
|
||||||
SPRINTF("TARGET MODE ");
|
seq_printf(m, "TARGET MODE ");
|
||||||
if (s & ENSELO)
|
if (s & ENSELO)
|
||||||
SPRINTF("SELO ");
|
seq_printf(m, "SELO ");
|
||||||
if (s & ENSELI)
|
if (s & ENSELI)
|
||||||
SPRINTF("SELI ");
|
seq_printf(m, "SELI ");
|
||||||
if (s & ENRESELI)
|
if (s & ENRESELI)
|
||||||
SPRINTF("RESELI ");
|
seq_printf(m, "RESELI ");
|
||||||
if (s & ENAUTOATNO)
|
if (s & ENAUTOATNO)
|
||||||
SPRINTF("AUTOATNO ");
|
seq_printf(m, "AUTOATNO ");
|
||||||
if (s & ENAUTOATNI)
|
if (s & ENAUTOATNI)
|
||||||
SPRINTF("AUTOATNI ");
|
seq_printf(m, "AUTOATNI ");
|
||||||
if (s & ENAUTOATNP)
|
if (s & ENAUTOATNP)
|
||||||
SPRINTF("AUTOATNP ");
|
seq_printf(m, "AUTOATNP ");
|
||||||
if (s & SCSIRSTO)
|
if (s & SCSIRSTO)
|
||||||
SPRINTF("SCSIRSTO ");
|
seq_printf(m, "SCSIRSTO ");
|
||||||
SPRINTF(");");
|
seq_printf(m, ");");
|
||||||
|
|
||||||
SPRINTF(" SCSISIG(");
|
seq_printf(m, " SCSISIG(");
|
||||||
s = GETPORT(SCSISIG);
|
s = GETPORT(SCSISIG);
|
||||||
switch (s & P_MASK) {
|
switch (s & P_MASK) {
|
||||||
case P_DATAO:
|
case P_DATAO:
|
||||||
SPRINTF("DATA OUT");
|
seq_printf(m, "DATA OUT");
|
||||||
break;
|
break;
|
||||||
case P_DATAI:
|
case P_DATAI:
|
||||||
SPRINTF("DATA IN");
|
seq_printf(m, "DATA IN");
|
||||||
break;
|
break;
|
||||||
case P_CMD:
|
case P_CMD:
|
||||||
SPRINTF("COMMAND");
|
seq_printf(m, "COMMAND");
|
||||||
break;
|
break;
|
||||||
case P_STATUS:
|
case P_STATUS:
|
||||||
SPRINTF("STATUS");
|
seq_printf(m, "STATUS");
|
||||||
break;
|
break;
|
||||||
case P_MSGO:
|
case P_MSGO:
|
||||||
SPRINTF("MESSAGE OUT");
|
seq_printf(m, "MESSAGE OUT");
|
||||||
break;
|
break;
|
||||||
case P_MSGI:
|
case P_MSGI:
|
||||||
SPRINTF("MESSAGE IN");
|
seq_printf(m, "MESSAGE IN");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SPRINTF("*invalid*");
|
seq_printf(m, "*invalid*");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
SPRINTF("); ");
|
seq_printf(m, "); ");
|
||||||
|
|
||||||
SPRINTF("INTSTAT (%s); ", TESTHI(DMASTAT, INTSTAT) ? "hi" : "lo");
|
seq_printf(m, "INTSTAT (%s); ", TESTHI(DMASTAT, INTSTAT) ? "hi" : "lo");
|
||||||
|
|
||||||
SPRINTF("SSTAT( ");
|
seq_printf(m, "SSTAT( ");
|
||||||
s = GETPORT(SSTAT0);
|
s = GETPORT(SSTAT0);
|
||||||
if (s & TARGET)
|
if (s & TARGET)
|
||||||
SPRINTF("TARGET ");
|
seq_printf(m, "TARGET ");
|
||||||
if (s & SELDO)
|
if (s & SELDO)
|
||||||
SPRINTF("SELDO ");
|
seq_printf(m, "SELDO ");
|
||||||
if (s & SELDI)
|
if (s & SELDI)
|
||||||
SPRINTF("SELDI ");
|
seq_printf(m, "SELDI ");
|
||||||
if (s & SELINGO)
|
if (s & SELINGO)
|
||||||
SPRINTF("SELINGO ");
|
seq_printf(m, "SELINGO ");
|
||||||
if (s & SWRAP)
|
if (s & SWRAP)
|
||||||
SPRINTF("SWRAP ");
|
seq_printf(m, "SWRAP ");
|
||||||
if (s & SDONE)
|
if (s & SDONE)
|
||||||
SPRINTF("SDONE ");
|
seq_printf(m, "SDONE ");
|
||||||
if (s & SPIORDY)
|
if (s & SPIORDY)
|
||||||
SPRINTF("SPIORDY ");
|
seq_printf(m, "SPIORDY ");
|
||||||
if (s & DMADONE)
|
if (s & DMADONE)
|
||||||
SPRINTF("DMADONE ");
|
seq_printf(m, "DMADONE ");
|
||||||
|
|
||||||
s = GETPORT(SSTAT1);
|
s = GETPORT(SSTAT1);
|
||||||
if (s & SELTO)
|
if (s & SELTO)
|
||||||
SPRINTF("SELTO ");
|
seq_printf(m, "SELTO ");
|
||||||
if (s & ATNTARG)
|
if (s & ATNTARG)
|
||||||
SPRINTF("ATNTARG ");
|
seq_printf(m, "ATNTARG ");
|
||||||
if (s & SCSIRSTI)
|
if (s & SCSIRSTI)
|
||||||
SPRINTF("SCSIRSTI ");
|
seq_printf(m, "SCSIRSTI ");
|
||||||
if (s & PHASEMIS)
|
if (s & PHASEMIS)
|
||||||
SPRINTF("PHASEMIS ");
|
seq_printf(m, "PHASEMIS ");
|
||||||
if (s & BUSFREE)
|
if (s & BUSFREE)
|
||||||
SPRINTF("BUSFREE ");
|
seq_printf(m, "BUSFREE ");
|
||||||
if (s & SCSIPERR)
|
if (s & SCSIPERR)
|
||||||
SPRINTF("SCSIPERR ");
|
seq_printf(m, "SCSIPERR ");
|
||||||
if (s & PHASECHG)
|
if (s & PHASECHG)
|
||||||
SPRINTF("PHASECHG ");
|
seq_printf(m, "PHASECHG ");
|
||||||
if (s & REQINIT)
|
if (s & REQINIT)
|
||||||
SPRINTF("REQINIT ");
|
seq_printf(m, "REQINIT ");
|
||||||
SPRINTF("); ");
|
seq_printf(m, "); ");
|
||||||
|
|
||||||
|
|
||||||
SPRINTF("SSTAT( ");
|
seq_printf(m, "SSTAT( ");
|
||||||
|
|
||||||
s = GETPORT(SSTAT0) & GETPORT(SIMODE0);
|
s = GETPORT(SSTAT0) & GETPORT(SIMODE0);
|
||||||
|
|
||||||
if (s & TARGET)
|
if (s & TARGET)
|
||||||
SPRINTF("TARGET ");
|
seq_printf(m, "TARGET ");
|
||||||
if (s & SELDO)
|
if (s & SELDO)
|
||||||
SPRINTF("SELDO ");
|
seq_printf(m, "SELDO ");
|
||||||
if (s & SELDI)
|
if (s & SELDI)
|
||||||
SPRINTF("SELDI ");
|
seq_printf(m, "SELDI ");
|
||||||
if (s & SELINGO)
|
if (s & SELINGO)
|
||||||
SPRINTF("SELINGO ");
|
seq_printf(m, "SELINGO ");
|
||||||
if (s & SWRAP)
|
if (s & SWRAP)
|
||||||
SPRINTF("SWRAP ");
|
seq_printf(m, "SWRAP ");
|
||||||
if (s & SDONE)
|
if (s & SDONE)
|
||||||
SPRINTF("SDONE ");
|
seq_printf(m, "SDONE ");
|
||||||
if (s & SPIORDY)
|
if (s & SPIORDY)
|
||||||
SPRINTF("SPIORDY ");
|
seq_printf(m, "SPIORDY ");
|
||||||
if (s & DMADONE)
|
if (s & DMADONE)
|
||||||
SPRINTF("DMADONE ");
|
seq_printf(m, "DMADONE ");
|
||||||
|
|
||||||
s = GETPORT(SSTAT1) & GETPORT(SIMODE1);
|
s = GETPORT(SSTAT1) & GETPORT(SIMODE1);
|
||||||
|
|
||||||
if (s & SELTO)
|
if (s & SELTO)
|
||||||
SPRINTF("SELTO ");
|
seq_printf(m, "SELTO ");
|
||||||
if (s & ATNTARG)
|
if (s & ATNTARG)
|
||||||
SPRINTF("ATNTARG ");
|
seq_printf(m, "ATNTARG ");
|
||||||
if (s & SCSIRSTI)
|
if (s & SCSIRSTI)
|
||||||
SPRINTF("SCSIRSTI ");
|
seq_printf(m, "SCSIRSTI ");
|
||||||
if (s & PHASEMIS)
|
if (s & PHASEMIS)
|
||||||
SPRINTF("PHASEMIS ");
|
seq_printf(m, "PHASEMIS ");
|
||||||
if (s & BUSFREE)
|
if (s & BUSFREE)
|
||||||
SPRINTF("BUSFREE ");
|
seq_printf(m, "BUSFREE ");
|
||||||
if (s & SCSIPERR)
|
if (s & SCSIPERR)
|
||||||
SPRINTF("SCSIPERR ");
|
seq_printf(m, "SCSIPERR ");
|
||||||
if (s & PHASECHG)
|
if (s & PHASECHG)
|
||||||
SPRINTF("PHASECHG ");
|
seq_printf(m, "PHASECHG ");
|
||||||
if (s & REQINIT)
|
if (s & REQINIT)
|
||||||
SPRINTF("REQINIT ");
|
seq_printf(m, "REQINIT ");
|
||||||
SPRINTF("); ");
|
seq_printf(m, "); ");
|
||||||
|
|
||||||
SPRINTF("SXFRCTL0( ");
|
seq_printf(m, "SXFRCTL0( ");
|
||||||
|
|
||||||
s = GETPORT(SXFRCTL0);
|
s = GETPORT(SXFRCTL0);
|
||||||
if (s & SCSIEN)
|
if (s & SCSIEN)
|
||||||
SPRINTF("SCSIEN ");
|
seq_printf(m, "SCSIEN ");
|
||||||
if (s & DMAEN)
|
if (s & DMAEN)
|
||||||
SPRINTF("DMAEN ");
|
seq_printf(m, "DMAEN ");
|
||||||
if (s & CH1)
|
if (s & CH1)
|
||||||
SPRINTF("CH1 ");
|
seq_printf(m, "CH1 ");
|
||||||
if (s & CLRSTCNT)
|
if (s & CLRSTCNT)
|
||||||
SPRINTF("CLRSTCNT ");
|
seq_printf(m, "CLRSTCNT ");
|
||||||
if (s & SPIOEN)
|
if (s & SPIOEN)
|
||||||
SPRINTF("SPIOEN ");
|
seq_printf(m, "SPIOEN ");
|
||||||
if (s & CLRCH1)
|
if (s & CLRCH1)
|
||||||
SPRINTF("CLRCH1 ");
|
seq_printf(m, "CLRCH1 ");
|
||||||
SPRINTF("); ");
|
seq_printf(m, "); ");
|
||||||
|
|
||||||
SPRINTF("SIGNAL( ");
|
seq_printf(m, "SIGNAL( ");
|
||||||
|
|
||||||
s = GETPORT(SCSISIG);
|
s = GETPORT(SCSISIG);
|
||||||
if (s & SIG_ATNI)
|
if (s & SIG_ATNI)
|
||||||
SPRINTF("ATNI ");
|
seq_printf(m, "ATNI ");
|
||||||
if (s & SIG_SELI)
|
if (s & SIG_SELI)
|
||||||
SPRINTF("SELI ");
|
seq_printf(m, "SELI ");
|
||||||
if (s & SIG_BSYI)
|
if (s & SIG_BSYI)
|
||||||
SPRINTF("BSYI ");
|
seq_printf(m, "BSYI ");
|
||||||
if (s & SIG_REQI)
|
if (s & SIG_REQI)
|
||||||
SPRINTF("REQI ");
|
seq_printf(m, "REQI ");
|
||||||
if (s & SIG_ACKI)
|
if (s & SIG_ACKI)
|
||||||
SPRINTF("ACKI ");
|
seq_printf(m, "ACKI ");
|
||||||
SPRINTF("); ");
|
seq_printf(m, "); ");
|
||||||
|
|
||||||
SPRINTF("SELID(%02x), ", GETPORT(SELID));
|
seq_printf(m, "SELID(%02x), ", GETPORT(SELID));
|
||||||
|
|
||||||
SPRINTF("STCNT(%d), ", GETSTCNT());
|
seq_printf(m, "STCNT(%d), ", GETSTCNT());
|
||||||
|
|
||||||
SPRINTF("SSTAT2( ");
|
seq_printf(m, "SSTAT2( ");
|
||||||
|
|
||||||
s = GETPORT(SSTAT2);
|
s = GETPORT(SSTAT2);
|
||||||
if (s & SOFFSET)
|
if (s & SOFFSET)
|
||||||
SPRINTF("SOFFSET ");
|
seq_printf(m, "SOFFSET ");
|
||||||
if (s & SEMPTY)
|
if (s & SEMPTY)
|
||||||
SPRINTF("SEMPTY ");
|
seq_printf(m, "SEMPTY ");
|
||||||
if (s & SFULL)
|
if (s & SFULL)
|
||||||
SPRINTF("SFULL ");
|
seq_printf(m, "SFULL ");
|
||||||
SPRINTF("); SFCNT (%d); ", s & (SFULL | SFCNT));
|
seq_printf(m, "); SFCNT (%d); ", s & (SFULL | SFCNT));
|
||||||
|
|
||||||
s = GETPORT(SSTAT3);
|
s = GETPORT(SSTAT3);
|
||||||
SPRINTF("SCSICNT (%d), OFFCNT(%d), ", (s & 0xf0) >> 4, s & 0x0f);
|
seq_printf(m, "SCSICNT (%d), OFFCNT(%d), ", (s & 0xf0) >> 4, s & 0x0f);
|
||||||
|
|
||||||
SPRINTF("SSTAT4( ");
|
seq_printf(m, "SSTAT4( ");
|
||||||
s = GETPORT(SSTAT4);
|
s = GETPORT(SSTAT4);
|
||||||
if (s & SYNCERR)
|
if (s & SYNCERR)
|
||||||
SPRINTF("SYNCERR ");
|
seq_printf(m, "SYNCERR ");
|
||||||
if (s & FWERR)
|
if (s & FWERR)
|
||||||
SPRINTF("FWERR ");
|
seq_printf(m, "FWERR ");
|
||||||
if (s & FRERR)
|
if (s & FRERR)
|
||||||
SPRINTF("FRERR ");
|
seq_printf(m, "FRERR ");
|
||||||
SPRINTF("); ");
|
seq_printf(m, "); ");
|
||||||
|
|
||||||
SPRINTF("DMACNTRL0( ");
|
seq_printf(m, "DMACNTRL0( ");
|
||||||
s = GETPORT(DMACNTRL0);
|
s = GETPORT(DMACNTRL0);
|
||||||
SPRINTF("%s ", s & _8BIT ? "8BIT" : "16BIT");
|
seq_printf(m, "%s ", s & _8BIT ? "8BIT" : "16BIT");
|
||||||
SPRINTF("%s ", s & DMA ? "DMA" : "PIO");
|
seq_printf(m, "%s ", s & DMA ? "DMA" : "PIO");
|
||||||
SPRINTF("%s ", s & WRITE_READ ? "WRITE" : "READ");
|
seq_printf(m, "%s ", s & WRITE_READ ? "WRITE" : "READ");
|
||||||
if (s & ENDMA)
|
if (s & ENDMA)
|
||||||
SPRINTF("ENDMA ");
|
seq_printf(m, "ENDMA ");
|
||||||
if (s & INTEN)
|
if (s & INTEN)
|
||||||
SPRINTF("INTEN ");
|
seq_printf(m, "INTEN ");
|
||||||
if (s & RSTFIFO)
|
if (s & RSTFIFO)
|
||||||
SPRINTF("RSTFIFO ");
|
seq_printf(m, "RSTFIFO ");
|
||||||
if (s & SWINT)
|
if (s & SWINT)
|
||||||
SPRINTF("SWINT ");
|
seq_printf(m, "SWINT ");
|
||||||
SPRINTF("); ");
|
seq_printf(m, "); ");
|
||||||
|
|
||||||
SPRINTF("DMASTAT( ");
|
seq_printf(m, "DMASTAT( ");
|
||||||
s = GETPORT(DMASTAT);
|
s = GETPORT(DMASTAT);
|
||||||
if (s & ATDONE)
|
if (s & ATDONE)
|
||||||
SPRINTF("ATDONE ");
|
seq_printf(m, "ATDONE ");
|
||||||
if (s & WORDRDY)
|
if (s & WORDRDY)
|
||||||
SPRINTF("WORDRDY ");
|
seq_printf(m, "WORDRDY ");
|
||||||
if (s & DFIFOFULL)
|
if (s & DFIFOFULL)
|
||||||
SPRINTF("DFIFOFULL ");
|
seq_printf(m, "DFIFOFULL ");
|
||||||
if (s & DFIFOEMP)
|
if (s & DFIFOEMP)
|
||||||
SPRINTF("DFIFOEMP ");
|
seq_printf(m, "DFIFOEMP ");
|
||||||
SPRINTF(")\n");
|
seq_printf(m, ")\n");
|
||||||
|
|
||||||
SPRINTF("enabled interrupts( ");
|
seq_printf(m, "enabled interrupts( ");
|
||||||
|
|
||||||
s = GETPORT(SIMODE0);
|
s = GETPORT(SIMODE0);
|
||||||
if (s & ENSELDO)
|
if (s & ENSELDO)
|
||||||
SPRINTF("ENSELDO ");
|
seq_printf(m, "ENSELDO ");
|
||||||
if (s & ENSELDI)
|
if (s & ENSELDI)
|
||||||
SPRINTF("ENSELDI ");
|
seq_printf(m, "ENSELDI ");
|
||||||
if (s & ENSELINGO)
|
if (s & ENSELINGO)
|
||||||
SPRINTF("ENSELINGO ");
|
seq_printf(m, "ENSELINGO ");
|
||||||
if (s & ENSWRAP)
|
if (s & ENSWRAP)
|
||||||
SPRINTF("ENSWRAP ");
|
seq_printf(m, "ENSWRAP ");
|
||||||
if (s & ENSDONE)
|
if (s & ENSDONE)
|
||||||
SPRINTF("ENSDONE ");
|
seq_printf(m, "ENSDONE ");
|
||||||
if (s & ENSPIORDY)
|
if (s & ENSPIORDY)
|
||||||
SPRINTF("ENSPIORDY ");
|
seq_printf(m, "ENSPIORDY ");
|
||||||
if (s & ENDMADONE)
|
if (s & ENDMADONE)
|
||||||
SPRINTF("ENDMADONE ");
|
seq_printf(m, "ENDMADONE ");
|
||||||
|
|
||||||
s = GETPORT(SIMODE1);
|
s = GETPORT(SIMODE1);
|
||||||
if (s & ENSELTIMO)
|
if (s & ENSELTIMO)
|
||||||
SPRINTF("ENSELTIMO ");
|
seq_printf(m, "ENSELTIMO ");
|
||||||
if (s & ENATNTARG)
|
if (s & ENATNTARG)
|
||||||
SPRINTF("ENATNTARG ");
|
seq_printf(m, "ENATNTARG ");
|
||||||
if (s & ENPHASEMIS)
|
if (s & ENPHASEMIS)
|
||||||
SPRINTF("ENPHASEMIS ");
|
seq_printf(m, "ENPHASEMIS ");
|
||||||
if (s & ENBUSFREE)
|
if (s & ENBUSFREE)
|
||||||
SPRINTF("ENBUSFREE ");
|
seq_printf(m, "ENBUSFREE ");
|
||||||
if (s & ENSCSIPERR)
|
if (s & ENSCSIPERR)
|
||||||
SPRINTF("ENSCSIPERR ");
|
seq_printf(m, "ENSCSIPERR ");
|
||||||
if (s & ENPHASECHG)
|
if (s & ENPHASECHG)
|
||||||
SPRINTF("ENPHASECHG ");
|
seq_printf(m, "ENPHASECHG ");
|
||||||
if (s & ENREQINIT)
|
if (s & ENREQINIT)
|
||||||
SPRINTF("ENREQINIT ");
|
seq_printf(m, "ENREQINIT ");
|
||||||
SPRINTF(")\n");
|
seq_printf(m, ")\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int aha152x_set_info(struct Scsi_Host *shpnt, char *buffer, int length)
|
static int aha152x_set_info(struct Scsi_Host *shpnt, char *buffer, int length)
|
||||||
|
@ -2825,56 +2822,56 @@ static int aha152x_show_info(struct seq_file *m, struct Scsi_Host *shpnt)
|
||||||
Scsi_Cmnd *ptr;
|
Scsi_Cmnd *ptr;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
SPRINTF(AHA152X_REVID "\n");
|
seq_printf(m, AHA152X_REVID "\n");
|
||||||
|
|
||||||
SPRINTF("ioports 0x%04lx to 0x%04lx\n",
|
seq_printf(m, "ioports 0x%04lx to 0x%04lx\n",
|
||||||
shpnt->io_port, shpnt->io_port + shpnt->n_io_port - 1);
|
shpnt->io_port, shpnt->io_port + shpnt->n_io_port - 1);
|
||||||
SPRINTF("interrupt 0x%02x\n", shpnt->irq);
|
seq_printf(m, "interrupt 0x%02x\n", shpnt->irq);
|
||||||
SPRINTF("disconnection/reconnection %s\n",
|
seq_printf(m, "disconnection/reconnection %s\n",
|
||||||
RECONNECT ? "enabled" : "disabled");
|
RECONNECT ? "enabled" : "disabled");
|
||||||
SPRINTF("parity checking %s\n",
|
seq_printf(m, "parity checking %s\n",
|
||||||
PARITY ? "enabled" : "disabled");
|
PARITY ? "enabled" : "disabled");
|
||||||
SPRINTF("synchronous transfers %s\n",
|
seq_printf(m, "synchronous transfers %s\n",
|
||||||
SYNCHRONOUS ? "enabled" : "disabled");
|
SYNCHRONOUS ? "enabled" : "disabled");
|
||||||
SPRINTF("%d commands currently queued\n", HOSTDATA(shpnt)->commands);
|
seq_printf(m, "%d commands currently queued\n", HOSTDATA(shpnt)->commands);
|
||||||
|
|
||||||
if(SYNCHRONOUS) {
|
if(SYNCHRONOUS) {
|
||||||
SPRINTF("synchronously operating targets (tick=50 ns):\n");
|
seq_printf(m, "synchronously operating targets (tick=50 ns):\n");
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
if (HOSTDATA(shpnt)->syncrate[i] & 0x7f)
|
if (HOSTDATA(shpnt)->syncrate[i] & 0x7f)
|
||||||
SPRINTF("target %d: period %dT/%dns; req/ack offset %d\n",
|
seq_printf(m, "target %d: period %dT/%dns; req/ack offset %d\n",
|
||||||
i,
|
i,
|
||||||
(((HOSTDATA(shpnt)->syncrate[i] & 0x70) >> 4) + 2),
|
(((HOSTDATA(shpnt)->syncrate[i] & 0x70) >> 4) + 2),
|
||||||
(((HOSTDATA(shpnt)->syncrate[i] & 0x70) >> 4) + 2) * 50,
|
(((HOSTDATA(shpnt)->syncrate[i] & 0x70) >> 4) + 2) * 50,
|
||||||
HOSTDATA(shpnt)->syncrate[i] & 0x0f);
|
HOSTDATA(shpnt)->syncrate[i] & 0x0f);
|
||||||
}
|
}
|
||||||
SPRINTF("\nqueue status:\n");
|
seq_printf(m, "\nqueue status:\n");
|
||||||
DO_LOCK(flags);
|
DO_LOCK(flags);
|
||||||
if (ISSUE_SC) {
|
if (ISSUE_SC) {
|
||||||
SPRINTF("not yet issued commands:\n");
|
seq_printf(m, "not yet issued commands:\n");
|
||||||
for (ptr = ISSUE_SC; ptr; ptr = SCNEXT(ptr))
|
for (ptr = ISSUE_SC; ptr; ptr = SCNEXT(ptr))
|
||||||
get_command(m, ptr);
|
get_command(m, ptr);
|
||||||
} else
|
} else
|
||||||
SPRINTF("no not yet issued commands\n");
|
seq_printf(m, "no not yet issued commands\n");
|
||||||
DO_UNLOCK(flags);
|
DO_UNLOCK(flags);
|
||||||
|
|
||||||
if (CURRENT_SC) {
|
if (CURRENT_SC) {
|
||||||
SPRINTF("current command:\n");
|
seq_printf(m, "current command:\n");
|
||||||
get_command(m, CURRENT_SC);
|
get_command(m, CURRENT_SC);
|
||||||
} else
|
} else
|
||||||
SPRINTF("no current command\n");
|
seq_printf(m, "no current command\n");
|
||||||
|
|
||||||
if (DISCONNECTED_SC) {
|
if (DISCONNECTED_SC) {
|
||||||
SPRINTF("disconnected commands:\n");
|
seq_printf(m, "disconnected commands:\n");
|
||||||
for (ptr = DISCONNECTED_SC; ptr; ptr = SCNEXT(ptr))
|
for (ptr = DISCONNECTED_SC; ptr; ptr = SCNEXT(ptr))
|
||||||
get_command(m, ptr);
|
get_command(m, ptr);
|
||||||
} else
|
} else
|
||||||
SPRINTF("no disconnected commands\n");
|
seq_printf(m, "no disconnected commands\n");
|
||||||
|
|
||||||
get_ports(m, shpnt);
|
get_ports(m, shpnt);
|
||||||
|
|
||||||
#if defined(AHA152X_STAT)
|
#if defined(AHA152X_STAT)
|
||||||
SPRINTF("statistics:\n"
|
seq_printf(m, "statistics:\n"
|
||||||
"total commands: %d\n"
|
"total commands: %d\n"
|
||||||
"disconnections: %d\n"
|
"disconnections: %d\n"
|
||||||
"busfree with check condition: %d\n"
|
"busfree with check condition: %d\n"
|
||||||
|
@ -2894,7 +2891,7 @@ static int aha152x_show_info(struct seq_file *m, struct Scsi_Host *shpnt)
|
||||||
HOSTDATA(shpnt)->busfree_without_done_command,
|
HOSTDATA(shpnt)->busfree_without_done_command,
|
||||||
HOSTDATA(shpnt)->busfree_without_any_action);
|
HOSTDATA(shpnt)->busfree_without_any_action);
|
||||||
for(i=0; i<maxstate; i++) {
|
for(i=0; i<maxstate; i++) {
|
||||||
SPRINTF("%-10s %-12d %-12d %-12ld\n",
|
seq_printf(m, "%-10s %-12d %-12d %-12ld\n",
|
||||||
states[i].name,
|
states[i].name,
|
||||||
HOSTDATA(shpnt)->count_trans[i],
|
HOSTDATA(shpnt)->count_trans[i],
|
||||||
HOSTDATA(shpnt)->count[i],
|
HOSTDATA(shpnt)->count[i],
|
||||||
|
|
|
@ -4610,13 +4610,10 @@ static void adapter_uninit(struct AdapterCtlBlk *acb)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#undef SPRINTF
|
|
||||||
#define SPRINTF(args...) seq_printf(m,##args)
|
|
||||||
|
|
||||||
#undef YESNO
|
#undef YESNO
|
||||||
#define YESNO(YN) \
|
#define YESNO(YN) \
|
||||||
if (YN) SPRINTF(" Yes ");\
|
if (YN) seq_printf(m, " Yes ");\
|
||||||
else SPRINTF(" No ")
|
else seq_printf(m, " No ")
|
||||||
|
|
||||||
static int dc395x_show_info(struct seq_file *m, struct Scsi_Host *host)
|
static int dc395x_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
{
|
{
|
||||||
|
@ -4626,47 +4623,44 @@ static int dc395x_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int dev;
|
int dev;
|
||||||
|
|
||||||
SPRINTF(DC395X_BANNER " PCI SCSI Host Adapter\n");
|
seq_printf(m, DC395X_BANNER " PCI SCSI Host Adapter\n");
|
||||||
SPRINTF(" Driver Version " DC395X_VERSION "\n");
|
seq_printf(m, " Driver Version " DC395X_VERSION "\n");
|
||||||
|
|
||||||
DC395x_LOCK_IO(acb->scsi_host, flags);
|
DC395x_LOCK_IO(acb->scsi_host, flags);
|
||||||
|
|
||||||
SPRINTF("SCSI Host Nr %i, ", host->host_no);
|
seq_printf(m, "SCSI Host Nr %i, ", host->host_no);
|
||||||
SPRINTF("DC395U/UW/F DC315/U %s\n",
|
seq_printf(m, "DC395U/UW/F DC315/U %s\n",
|
||||||
(acb->config & HCC_WIDE_CARD) ? "Wide" : "");
|
(acb->config & HCC_WIDE_CARD) ? "Wide" : "");
|
||||||
SPRINTF("io_port_base 0x%04lx, ", acb->io_port_base);
|
seq_printf(m, "io_port_base 0x%04lx, ", acb->io_port_base);
|
||||||
SPRINTF("irq_level 0x%04x, ", acb->irq_level);
|
seq_printf(m, "irq_level 0x%04x, ", acb->irq_level);
|
||||||
SPRINTF(" SelTimeout %ims\n", (1638 * acb->sel_timeout) / 1000);
|
seq_printf(m, " SelTimeout %ims\n", (1638 * acb->sel_timeout) / 1000);
|
||||||
|
|
||||||
SPRINTF("MaxID %i, MaxLUN %llu, ", host->max_id, host->max_lun);
|
seq_printf(m, "MaxID %i, MaxLUN %llu, ", host->max_id, host->max_lun);
|
||||||
SPRINTF("AdapterID %i\n", host->this_id);
|
seq_printf(m, "AdapterID %i\n", host->this_id);
|
||||||
|
|
||||||
SPRINTF("tag_max_num %i", acb->tag_max_num);
|
seq_printf(m, "tag_max_num %i", acb->tag_max_num);
|
||||||
/*SPRINTF(", DMA_Status %i\n", DC395x_read8(acb, TRM_S1040_DMA_STATUS)); */
|
/*seq_printf(m, ", DMA_Status %i\n", DC395x_read8(acb, TRM_S1040_DMA_STATUS)); */
|
||||||
SPRINTF(", FilterCfg 0x%02x",
|
seq_printf(m, ", FilterCfg 0x%02x",
|
||||||
DC395x_read8(acb, TRM_S1040_SCSI_CONFIG1));
|
DC395x_read8(acb, TRM_S1040_SCSI_CONFIG1));
|
||||||
SPRINTF(", DelayReset %is\n", acb->eeprom.delay_time);
|
seq_printf(m, ", DelayReset %is\n", acb->eeprom.delay_time);
|
||||||
/*SPRINTF("\n"); */
|
/*seq_printf(m, "\n"); */
|
||||||
|
|
||||||
SPRINTF("Nr of DCBs: %i\n", list_size(&acb->dcb_list));
|
seq_printf(m, "Nr of DCBs: %i\n", list_size(&acb->dcb_list));
|
||||||
SPRINTF
|
seq_printf(m, "Map of attached LUNs: %02x %02x %02x %02x %02x %02x %02x %02x\n",
|
||||||
("Map of attached LUNs: %02x %02x %02x %02x %02x %02x %02x %02x\n",
|
|
||||||
acb->dcb_map[0], acb->dcb_map[1], acb->dcb_map[2],
|
acb->dcb_map[0], acb->dcb_map[1], acb->dcb_map[2],
|
||||||
acb->dcb_map[3], acb->dcb_map[4], acb->dcb_map[5],
|
acb->dcb_map[3], acb->dcb_map[4], acb->dcb_map[5],
|
||||||
acb->dcb_map[6], acb->dcb_map[7]);
|
acb->dcb_map[6], acb->dcb_map[7]);
|
||||||
SPRINTF
|
seq_printf(m, " %02x %02x %02x %02x %02x %02x %02x %02x\n",
|
||||||
(" %02x %02x %02x %02x %02x %02x %02x %02x\n",
|
|
||||||
acb->dcb_map[8], acb->dcb_map[9], acb->dcb_map[10],
|
acb->dcb_map[8], acb->dcb_map[9], acb->dcb_map[10],
|
||||||
acb->dcb_map[11], acb->dcb_map[12], acb->dcb_map[13],
|
acb->dcb_map[11], acb->dcb_map[12], acb->dcb_map[13],
|
||||||
acb->dcb_map[14], acb->dcb_map[15]);
|
acb->dcb_map[14], acb->dcb_map[15]);
|
||||||
|
|
||||||
SPRINTF
|
seq_printf(m, "Un ID LUN Prty Sync Wide DsCn SndS TagQ nego_period SyncFreq SyncOffs MaxCmd\n");
|
||||||
("Un ID LUN Prty Sync Wide DsCn SndS TagQ nego_period SyncFreq SyncOffs MaxCmd\n");
|
|
||||||
|
|
||||||
dev = 0;
|
dev = 0;
|
||||||
list_for_each_entry(dcb, &acb->dcb_list, list) {
|
list_for_each_entry(dcb, &acb->dcb_list, list) {
|
||||||
int nego_period;
|
int nego_period;
|
||||||
SPRINTF("%02i %02i %02i ", dev, dcb->target_id,
|
seq_printf(m, "%02i %02i %02i ", dev, dcb->target_id,
|
||||||
dcb->target_lun);
|
dcb->target_lun);
|
||||||
YESNO(dcb->dev_mode & NTC_DO_PARITY_CHK);
|
YESNO(dcb->dev_mode & NTC_DO_PARITY_CHK);
|
||||||
YESNO(dcb->sync_offset);
|
YESNO(dcb->sync_offset);
|
||||||
|
@ -4676,53 +4670,53 @@ static int dc395x_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
YESNO(dcb->sync_mode & EN_TAG_QUEUEING);
|
YESNO(dcb->sync_mode & EN_TAG_QUEUEING);
|
||||||
nego_period = clock_period[dcb->sync_period & 0x07] << 2;
|
nego_period = clock_period[dcb->sync_period & 0x07] << 2;
|
||||||
if (dcb->sync_offset)
|
if (dcb->sync_offset)
|
||||||
SPRINTF(" %03i ns ", nego_period);
|
seq_printf(m, " %03i ns ", nego_period);
|
||||||
else
|
else
|
||||||
SPRINTF(" (%03i ns)", (dcb->min_nego_period << 2));
|
seq_printf(m, " (%03i ns)", (dcb->min_nego_period << 2));
|
||||||
|
|
||||||
if (dcb->sync_offset & 0x0f) {
|
if (dcb->sync_offset & 0x0f) {
|
||||||
spd = 1000 / (nego_period);
|
spd = 1000 / (nego_period);
|
||||||
spd1 = 1000 % (nego_period);
|
spd1 = 1000 % (nego_period);
|
||||||
spd1 = (spd1 * 10 + nego_period / 2) / (nego_period);
|
spd1 = (spd1 * 10 + nego_period / 2) / (nego_period);
|
||||||
SPRINTF(" %2i.%1i M %02i ", spd, spd1,
|
seq_printf(m, " %2i.%1i M %02i ", spd, spd1,
|
||||||
(dcb->sync_offset & 0x0f));
|
(dcb->sync_offset & 0x0f));
|
||||||
} else
|
} else
|
||||||
SPRINTF(" ");
|
seq_printf(m, " ");
|
||||||
|
|
||||||
/* Add more info ... */
|
/* Add more info ... */
|
||||||
SPRINTF(" %02i\n", dcb->max_command);
|
seq_printf(m, " %02i\n", dcb->max_command);
|
||||||
dev++;
|
dev++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timer_pending(&acb->waiting_timer))
|
if (timer_pending(&acb->waiting_timer))
|
||||||
SPRINTF("Waiting queue timer running\n");
|
seq_printf(m, "Waiting queue timer running\n");
|
||||||
else
|
else
|
||||||
SPRINTF("\n");
|
seq_printf(m, "\n");
|
||||||
|
|
||||||
list_for_each_entry(dcb, &acb->dcb_list, list) {
|
list_for_each_entry(dcb, &acb->dcb_list, list) {
|
||||||
struct ScsiReqBlk *srb;
|
struct ScsiReqBlk *srb;
|
||||||
if (!list_empty(&dcb->srb_waiting_list))
|
if (!list_empty(&dcb->srb_waiting_list))
|
||||||
SPRINTF("DCB (%02i-%i): Waiting: %i:",
|
seq_printf(m, "DCB (%02i-%i): Waiting: %i:",
|
||||||
dcb->target_id, dcb->target_lun,
|
dcb->target_id, dcb->target_lun,
|
||||||
list_size(&dcb->srb_waiting_list));
|
list_size(&dcb->srb_waiting_list));
|
||||||
list_for_each_entry(srb, &dcb->srb_waiting_list, list)
|
list_for_each_entry(srb, &dcb->srb_waiting_list, list)
|
||||||
SPRINTF(" %p", srb->cmd);
|
seq_printf(m, " %p", srb->cmd);
|
||||||
if (!list_empty(&dcb->srb_going_list))
|
if (!list_empty(&dcb->srb_going_list))
|
||||||
SPRINTF("\nDCB (%02i-%i): Going : %i:",
|
seq_printf(m, "\nDCB (%02i-%i): Going : %i:",
|
||||||
dcb->target_id, dcb->target_lun,
|
dcb->target_id, dcb->target_lun,
|
||||||
list_size(&dcb->srb_going_list));
|
list_size(&dcb->srb_going_list));
|
||||||
list_for_each_entry(srb, &dcb->srb_going_list, list)
|
list_for_each_entry(srb, &dcb->srb_going_list, list)
|
||||||
SPRINTF(" %p", srb->cmd);
|
seq_printf(m, " %p", srb->cmd);
|
||||||
if (!list_empty(&dcb->srb_waiting_list) || !list_empty(&dcb->srb_going_list))
|
if (!list_empty(&dcb->srb_waiting_list) || !list_empty(&dcb->srb_going_list))
|
||||||
SPRINTF("\n");
|
seq_printf(m, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug_enabled(DBG_1)) {
|
if (debug_enabled(DBG_1)) {
|
||||||
SPRINTF("DCB list for ACB %p:\n", acb);
|
seq_printf(m, "DCB list for ACB %p:\n", acb);
|
||||||
list_for_each_entry(dcb, &acb->dcb_list, list) {
|
list_for_each_entry(dcb, &acb->dcb_list, list) {
|
||||||
SPRINTF("%p -> ", dcb);
|
seq_printf(m, "%p -> ", dcb);
|
||||||
}
|
}
|
||||||
SPRINTF("END\n");
|
seq_printf(m, "END\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
DC395x_UNLOCK_IO(acb->scsi_host, flags);
|
DC395x_UNLOCK_IO(acb->scsi_host, flags);
|
||||||
|
|
|
@ -1441,8 +1441,6 @@ static irqreturn_t do_nsp32_isr(int irq, void *dev_id)
|
||||||
return IRQ_RETVAL(handled);
|
return IRQ_RETVAL(handled);
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef SPRINTF
|
|
||||||
#define SPRINTF(args...) seq_printf(m, ##args)
|
|
||||||
|
|
||||||
static int nsp32_show_info(struct seq_file *m, struct Scsi_Host *host)
|
static int nsp32_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
{
|
{
|
||||||
|
@ -1458,64 +1456,63 @@ static int nsp32_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
data = (nsp32_hw_data *)host->hostdata;
|
data = (nsp32_hw_data *)host->hostdata;
|
||||||
base = host->io_port;
|
base = host->io_port;
|
||||||
|
|
||||||
SPRINTF("NinjaSCSI-32 status\n\n");
|
seq_printf(m, "NinjaSCSI-32 status\n\n");
|
||||||
SPRINTF("Driver version: %s, $Revision: 1.33 $\n", nsp32_release_version);
|
seq_printf(m, "Driver version: %s, $Revision: 1.33 $\n", nsp32_release_version);
|
||||||
SPRINTF("SCSI host No.: %d\n", hostno);
|
seq_printf(m, "SCSI host No.: %d\n", hostno);
|
||||||
SPRINTF("IRQ: %d\n", host->irq);
|
seq_printf(m, "IRQ: %d\n", host->irq);
|
||||||
SPRINTF("IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_port - 1);
|
seq_printf(m, "IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_port - 1);
|
||||||
SPRINTF("MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - 1);
|
seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - 1);
|
||||||
SPRINTF("sg_tablesize: %d\n", host->sg_tablesize);
|
seq_printf(m, "sg_tablesize: %d\n", host->sg_tablesize);
|
||||||
SPRINTF("Chip revision: 0x%x\n", (nsp32_read2(base, INDEX_REG) >> 8) & 0xff);
|
seq_printf(m, "Chip revision: 0x%x\n", (nsp32_read2(base, INDEX_REG) >> 8) & 0xff);
|
||||||
|
|
||||||
mode_reg = nsp32_index_read1(base, CHIP_MODE);
|
mode_reg = nsp32_index_read1(base, CHIP_MODE);
|
||||||
model = data->pci_devid->driver_data;
|
model = data->pci_devid->driver_data;
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
SPRINTF("Power Management: %s\n", (mode_reg & OPTF) ? "yes" : "no");
|
seq_printf(m, "Power Management: %s\n", (mode_reg & OPTF) ? "yes" : "no");
|
||||||
#endif
|
#endif
|
||||||
SPRINTF("OEM: %ld, %s\n", (mode_reg & (OEM0|OEM1)), nsp32_model[model]);
|
seq_printf(m, "OEM: %ld, %s\n", (mode_reg & (OEM0|OEM1)), nsp32_model[model]);
|
||||||
|
|
||||||
spin_lock_irqsave(&(data->Lock), flags);
|
spin_lock_irqsave(&(data->Lock), flags);
|
||||||
SPRINTF("CurrentSC: 0x%p\n\n", data->CurrentSC);
|
seq_printf(m, "CurrentSC: 0x%p\n\n", data->CurrentSC);
|
||||||
spin_unlock_irqrestore(&(data->Lock), flags);
|
spin_unlock_irqrestore(&(data->Lock), flags);
|
||||||
|
|
||||||
|
|
||||||
SPRINTF("SDTR status\n");
|
seq_printf(m, "SDTR status\n");
|
||||||
for (id = 0; id < ARRAY_SIZE(data->target); id++) {
|
for (id = 0; id < ARRAY_SIZE(data->target); id++) {
|
||||||
|
|
||||||
SPRINTF("id %d: ", id);
|
seq_printf(m, "id %d: ", id);
|
||||||
|
|
||||||
if (id == host->this_id) {
|
if (id == host->this_id) {
|
||||||
SPRINTF("----- NinjaSCSI-32 host adapter\n");
|
seq_printf(m, "----- NinjaSCSI-32 host adapter\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data->target[id].sync_flag == SDTR_DONE) {
|
if (data->target[id].sync_flag == SDTR_DONE) {
|
||||||
if (data->target[id].period == 0 &&
|
if (data->target[id].period == 0 &&
|
||||||
data->target[id].offset == ASYNC_OFFSET ) {
|
data->target[id].offset == ASYNC_OFFSET ) {
|
||||||
SPRINTF("async");
|
seq_printf(m, "async");
|
||||||
} else {
|
} else {
|
||||||
SPRINTF(" sync");
|
seq_printf(m, " sync");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SPRINTF(" none");
|
seq_printf(m, " none");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data->target[id].period != 0) {
|
if (data->target[id].period != 0) {
|
||||||
|
|
||||||
speed = 1000000 / (data->target[id].period * 4);
|
speed = 1000000 / (data->target[id].period * 4);
|
||||||
|
|
||||||
SPRINTF(" transfer %d.%dMB/s, offset %d",
|
seq_printf(m, " transfer %d.%dMB/s, offset %d",
|
||||||
speed / 1000,
|
speed / 1000,
|
||||||
speed % 1000,
|
speed % 1000,
|
||||||
data->target[id].offset
|
data->target[id].offset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
SPRINTF("\n");
|
seq_printf(m, "\n");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#undef SPRINTF
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1364,9 +1364,6 @@ static const char *nsp_info(struct Scsi_Host *shpnt)
|
||||||
return data->nspinfo;
|
return data->nspinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef SPRINTF
|
|
||||||
#define SPRINTF(args...) seq_printf(m, ##args)
|
|
||||||
|
|
||||||
static int nsp_show_info(struct seq_file *m, struct Scsi_Host *host)
|
static int nsp_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
{
|
{
|
||||||
int id;
|
int id;
|
||||||
|
@ -1378,75 +1375,74 @@ static int nsp_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
hostno = host->host_no;
|
hostno = host->host_no;
|
||||||
data = (nsp_hw_data *)host->hostdata;
|
data = (nsp_hw_data *)host->hostdata;
|
||||||
|
|
||||||
SPRINTF("NinjaSCSI status\n\n");
|
seq_printf(m, "NinjaSCSI status\n\n");
|
||||||
SPRINTF("Driver version: $Revision: 1.23 $\n");
|
seq_printf(m, "Driver version: $Revision: 1.23 $\n");
|
||||||
SPRINTF("SCSI host No.: %d\n", hostno);
|
seq_printf(m, "SCSI host No.: %d\n", hostno);
|
||||||
SPRINTF("IRQ: %d\n", host->irq);
|
seq_printf(m, "IRQ: %d\n", host->irq);
|
||||||
SPRINTF("IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_port - 1);
|
seq_printf(m, "IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_port - 1);
|
||||||
SPRINTF("MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - 1);
|
seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - 1);
|
||||||
SPRINTF("sg_tablesize: %d\n", host->sg_tablesize);
|
seq_printf(m, "sg_tablesize: %d\n", host->sg_tablesize);
|
||||||
|
|
||||||
SPRINTF("burst transfer mode: ");
|
seq_printf(m, "burst transfer mode: ");
|
||||||
switch (nsp_burst_mode) {
|
switch (nsp_burst_mode) {
|
||||||
case BURST_IO8:
|
case BURST_IO8:
|
||||||
SPRINTF("io8");
|
seq_printf(m, "io8");
|
||||||
break;
|
break;
|
||||||
case BURST_IO32:
|
case BURST_IO32:
|
||||||
SPRINTF("io32");
|
seq_printf(m, "io32");
|
||||||
break;
|
break;
|
||||||
case BURST_MEM32:
|
case BURST_MEM32:
|
||||||
SPRINTF("mem32");
|
seq_printf(m, "mem32");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SPRINTF("???");
|
seq_printf(m, "???");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SPRINTF("\n");
|
seq_printf(m, "\n");
|
||||||
|
|
||||||
|
|
||||||
spin_lock_irqsave(&(data->Lock), flags);
|
spin_lock_irqsave(&(data->Lock), flags);
|
||||||
SPRINTF("CurrentSC: 0x%p\n\n", data->CurrentSC);
|
seq_printf(m, "CurrentSC: 0x%p\n\n", data->CurrentSC);
|
||||||
spin_unlock_irqrestore(&(data->Lock), flags);
|
spin_unlock_irqrestore(&(data->Lock), flags);
|
||||||
|
|
||||||
SPRINTF("SDTR status\n");
|
seq_printf(m, "SDTR status\n");
|
||||||
for(id = 0; id < ARRAY_SIZE(data->Sync); id++) {
|
for(id = 0; id < ARRAY_SIZE(data->Sync); id++) {
|
||||||
|
|
||||||
SPRINTF("id %d: ", id);
|
seq_printf(m, "id %d: ", id);
|
||||||
|
|
||||||
if (id == host->this_id) {
|
if (id == host->this_id) {
|
||||||
SPRINTF("----- NinjaSCSI-3 host adapter\n");
|
seq_printf(m, "----- NinjaSCSI-3 host adapter\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(data->Sync[id].SyncNegotiation) {
|
switch(data->Sync[id].SyncNegotiation) {
|
||||||
case SYNC_OK:
|
case SYNC_OK:
|
||||||
SPRINTF(" sync");
|
seq_printf(m, " sync");
|
||||||
break;
|
break;
|
||||||
case SYNC_NG:
|
case SYNC_NG:
|
||||||
SPRINTF("async");
|
seq_printf(m, "async");
|
||||||
break;
|
break;
|
||||||
case SYNC_NOT_YET:
|
case SYNC_NOT_YET:
|
||||||
SPRINTF(" none");
|
seq_printf(m, " none");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SPRINTF("?????");
|
seq_printf(m, "?????");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data->Sync[id].SyncPeriod != 0) {
|
if (data->Sync[id].SyncPeriod != 0) {
|
||||||
speed = 1000000 / (data->Sync[id].SyncPeriod * 4);
|
speed = 1000000 / (data->Sync[id].SyncPeriod * 4);
|
||||||
|
|
||||||
SPRINTF(" transfer %d.%dMB/s, offset %d",
|
seq_printf(m, " transfer %d.%dMB/s, offset %d",
|
||||||
speed / 1000,
|
speed / 1000,
|
||||||
speed % 1000,
|
speed % 1000,
|
||||||
data->Sync[id].SyncOffset
|
data->Sync[id].SyncOffset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
SPRINTF("\n");
|
seq_printf(m, "\n");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#undef SPRINTF
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------*/
|
/*---------------------------------------------------------------*/
|
||||||
/* error handler */
|
/* error handler */
|
||||||
|
|
|
@ -1295,9 +1295,6 @@ static void wd7000_revision(Adapter * host)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#undef SPRINTF
|
|
||||||
#define SPRINTF(args...) { seq_printf(m, ## args); }
|
|
||||||
|
|
||||||
static int wd7000_set_info(struct Scsi_Host *host, char *buffer, int length)
|
static int wd7000_set_info(struct Scsi_Host *host, char *buffer, int length)
|
||||||
{
|
{
|
||||||
dprintk("Buffer = <%.*s>, length = %d\n", length, buffer, length);
|
dprintk("Buffer = <%.*s>, length = %d\n", length, buffer, length);
|
||||||
|
@ -1320,43 +1317,43 @@ static int wd7000_show_info(struct seq_file *m, struct Scsi_Host *host)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
spin_lock_irqsave(host->host_lock, flags);
|
spin_lock_irqsave(host->host_lock, flags);
|
||||||
SPRINTF("Host scsi%d: Western Digital WD-7000 (rev %d.%d)\n", host->host_no, adapter->rev1, adapter->rev2);
|
seq_printf(m, "Host scsi%d: Western Digital WD-7000 (rev %d.%d)\n", host->host_no, adapter->rev1, adapter->rev2);
|
||||||
SPRINTF(" IO base: 0x%x\n", adapter->iobase);
|
seq_printf(m, " IO base: 0x%x\n", adapter->iobase);
|
||||||
SPRINTF(" IRQ: %d\n", adapter->irq);
|
seq_printf(m, " IRQ: %d\n", adapter->irq);
|
||||||
SPRINTF(" DMA channel: %d\n", adapter->dma);
|
seq_printf(m, " DMA channel: %d\n", adapter->dma);
|
||||||
SPRINTF(" Interrupts: %d\n", adapter->int_counter);
|
seq_printf(m, " Interrupts: %d\n", adapter->int_counter);
|
||||||
SPRINTF(" BUS_ON time: %d nanoseconds\n", adapter->bus_on * 125);
|
seq_printf(m, " BUS_ON time: %d nanoseconds\n", adapter->bus_on * 125);
|
||||||
SPRINTF(" BUS_OFF time: %d nanoseconds\n", adapter->bus_off * 125);
|
seq_printf(m, " BUS_OFF time: %d nanoseconds\n", adapter->bus_off * 125);
|
||||||
|
|
||||||
#ifdef WD7000_DEBUG
|
#ifdef WD7000_DEBUG
|
||||||
ogmbs = adapter->mb.ogmb;
|
ogmbs = adapter->mb.ogmb;
|
||||||
icmbs = adapter->mb.icmb;
|
icmbs = adapter->mb.icmb;
|
||||||
|
|
||||||
SPRINTF("\nControl port value: 0x%x\n", adapter->control);
|
seq_printf(m, "\nControl port value: 0x%x\n", adapter->control);
|
||||||
SPRINTF("Incoming mailbox:\n");
|
seq_printf(m, "Incoming mailbox:\n");
|
||||||
SPRINTF(" size: %d\n", ICMB_CNT);
|
seq_printf(m, " size: %d\n", ICMB_CNT);
|
||||||
SPRINTF(" queued messages: ");
|
seq_printf(m, " queued messages: ");
|
||||||
|
|
||||||
for (i = count = 0; i < ICMB_CNT; i++)
|
for (i = count = 0; i < ICMB_CNT; i++)
|
||||||
if (icmbs[i].status) {
|
if (icmbs[i].status) {
|
||||||
count++;
|
count++;
|
||||||
SPRINTF("0x%x ", i);
|
seq_printf(m, "0x%x ", i);
|
||||||
}
|
}
|
||||||
|
|
||||||
SPRINTF(count ? "\n" : "none\n");
|
seq_printf(m, count ? "\n" : "none\n");
|
||||||
|
|
||||||
SPRINTF("Outgoing mailbox:\n");
|
seq_printf(m, "Outgoing mailbox:\n");
|
||||||
SPRINTF(" size: %d\n", OGMB_CNT);
|
seq_printf(m, " size: %d\n", OGMB_CNT);
|
||||||
SPRINTF(" next message: 0x%x\n", adapter->next_ogmb);
|
seq_printf(m, " next message: 0x%x\n", adapter->next_ogmb);
|
||||||
SPRINTF(" queued messages: ");
|
seq_printf(m, " queued messages: ");
|
||||||
|
|
||||||
for (i = count = 0; i < OGMB_CNT; i++)
|
for (i = count = 0; i < OGMB_CNT; i++)
|
||||||
if (ogmbs[i].status) {
|
if (ogmbs[i].status) {
|
||||||
count++;
|
count++;
|
||||||
SPRINTF("0x%x ", i);
|
seq_printf(m, "0x%x ", i);
|
||||||
}
|
}
|
||||||
|
|
||||||
SPRINTF(count ? "\n" : "none\n");
|
seq_printf(m, count ? "\n" : "none\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
spin_unlock_irqrestore(host->host_lock, flags);
|
spin_unlock_irqrestore(host->host_lock, flags);
|
||||||
|
|
Loading…
Reference in New Issue