1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00

scsi: nsp32: Whitespace cleanup

[mkp: fix kernel test robot warning]

Link: https://lore.kernel.org/r/20210427083046.31620-24-hare@suse.de
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Hannes Reinecke 2021-04-27 10:30:29 +02:00 committed by Martin K. Petersen
parent 5751a9eaf1
commit 7e2bc6de92

View file

@ -176,38 +176,40 @@ static nsp32_sync_table nsp32_sync_table_pci[] = {
* function declaration * function declaration
*/ */
/* module entry point */ /* module entry point */
static int nsp32_probe (struct pci_dev *, const struct pci_device_id *); static int nsp32_probe (struct pci_dev *, const struct pci_device_id *);
static void nsp32_remove(struct pci_dev *); static void nsp32_remove(struct pci_dev *);
static int __init init_nsp32 (void); static int __init init_nsp32 (void);
static void __exit exit_nsp32 (void); static void __exit exit_nsp32 (void);
/* struct struct scsi_host_template */ /* struct struct scsi_host_template */
static int nsp32_show_info (struct seq_file *, struct Scsi_Host *); static int nsp32_show_info (struct seq_file *, struct Scsi_Host *);
static int nsp32_detect (struct pci_dev *pdev); static int nsp32_detect (struct pci_dev *pdev);
static int nsp32_queuecommand(struct Scsi_Host *, struct scsi_cmnd *); static int nsp32_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
static const char *nsp32_info (struct Scsi_Host *); static const char *nsp32_info (struct Scsi_Host *);
static int nsp32_release (struct Scsi_Host *); static int nsp32_release (struct Scsi_Host *);
/* SCSI error handler */ /* SCSI error handler */
static int nsp32_eh_abort (struct scsi_cmnd *); static int nsp32_eh_abort (struct scsi_cmnd *);
static int nsp32_eh_host_reset(struct scsi_cmnd *); static int nsp32_eh_host_reset(struct scsi_cmnd *);
/* generate SCSI message */ /* generate SCSI message */
static void nsp32_build_identify(struct scsi_cmnd *); static void nsp32_build_identify(struct scsi_cmnd *);
static void nsp32_build_nop (struct scsi_cmnd *); static void nsp32_build_nop (struct scsi_cmnd *);
static void nsp32_build_reject (struct scsi_cmnd *); static void nsp32_build_reject (struct scsi_cmnd *);
static void nsp32_build_sdtr (struct scsi_cmnd *, unsigned char, unsigned char); static void nsp32_build_sdtr (struct scsi_cmnd *, unsigned char,
unsigned char);
/* SCSI message handler */ /* SCSI message handler */
static int nsp32_busfree_occur(struct scsi_cmnd *, unsigned short); static int nsp32_busfree_occur(struct scsi_cmnd *, unsigned short);
static void nsp32_msgout_occur (struct scsi_cmnd *); static void nsp32_msgout_occur (struct scsi_cmnd *);
static void nsp32_msgin_occur (struct scsi_cmnd *, unsigned long, unsigned short); static void nsp32_msgin_occur (struct scsi_cmnd *, unsigned long,
unsigned short);
static int nsp32_setup_sg_table (struct scsi_cmnd *); static int nsp32_setup_sg_table (struct scsi_cmnd *);
static int nsp32_selection_autopara(struct scsi_cmnd *); static int nsp32_selection_autopara(struct scsi_cmnd *);
static int nsp32_selection_autoscsi(struct scsi_cmnd *); static int nsp32_selection_autoscsi(struct scsi_cmnd *);
static void nsp32_scsi_done (struct scsi_cmnd *); static void nsp32_scsi_done (struct scsi_cmnd *);
static int nsp32_arbitration (struct scsi_cmnd *, unsigned int); static int nsp32_arbitration (struct scsi_cmnd *, unsigned int);
static int nsp32_reselection (struct scsi_cmnd *, unsigned char); static int nsp32_reselection (struct scsi_cmnd *, unsigned char);
static void nsp32_adjust_busfree (struct scsi_cmnd *, unsigned int); static void nsp32_adjust_busfree (struct scsi_cmnd *, unsigned int);
@ -215,10 +217,13 @@ static void nsp32_restart_autoscsi (struct scsi_cmnd *, unsigned short);
/* SCSI SDTR */ /* SCSI SDTR */
static void nsp32_analyze_sdtr (struct scsi_cmnd *); static void nsp32_analyze_sdtr (struct scsi_cmnd *);
static int nsp32_search_period_entry(nsp32_hw_data *, nsp32_target *, unsigned char); static int nsp32_search_period_entry(nsp32_hw_data *, nsp32_target *,
static void nsp32_set_async (nsp32_hw_data *, nsp32_target *); unsigned char);
static void nsp32_set_max_sync (nsp32_hw_data *, nsp32_target *, unsigned char *, unsigned char *); static void nsp32_set_async (nsp32_hw_data *, nsp32_target *);
static void nsp32_set_sync_entry (nsp32_hw_data *, nsp32_target *, int, unsigned char); static void nsp32_set_max_sync (nsp32_hw_data *, nsp32_target *,
unsigned char *, unsigned char *);
static void nsp32_set_sync_entry (nsp32_hw_data *, nsp32_target *,
int, unsigned char);
/* SCSI bus status handler */ /* SCSI bus status handler */
static void nsp32_wait_req (nsp32_hw_data *, int); static void nsp32_wait_req (nsp32_hw_data *, int);
@ -234,16 +239,16 @@ static irqreturn_t do_nsp32_isr(int, void *);
static int nsp32hw_init(nsp32_hw_data *); static int nsp32hw_init(nsp32_hw_data *);
/* EEPROM handler */ /* EEPROM handler */
static int nsp32_getprom_param (nsp32_hw_data *); static int nsp32_getprom_param (nsp32_hw_data *);
static int nsp32_getprom_at24 (nsp32_hw_data *); static int nsp32_getprom_at24 (nsp32_hw_data *);
static int nsp32_getprom_c16 (nsp32_hw_data *); static int nsp32_getprom_c16 (nsp32_hw_data *);
static void nsp32_prom_start (nsp32_hw_data *); static void nsp32_prom_start (nsp32_hw_data *);
static void nsp32_prom_stop (nsp32_hw_data *); static void nsp32_prom_stop (nsp32_hw_data *);
static int nsp32_prom_read (nsp32_hw_data *, int); static int nsp32_prom_read (nsp32_hw_data *, int);
static int nsp32_prom_read_bit (nsp32_hw_data *); static int nsp32_prom_read_bit (nsp32_hw_data *);
static void nsp32_prom_write_bit(nsp32_hw_data *, int); static void nsp32_prom_write_bit(nsp32_hw_data *, int);
static void nsp32_prom_set (nsp32_hw_data *, int, int); static void nsp32_prom_set (nsp32_hw_data *, int, int);
static int nsp32_prom_get (nsp32_hw_data *, int); static int nsp32_prom_get (nsp32_hw_data *, int);
/* debug/warning/info message */ /* debug/warning/info message */
static void nsp32_message (const char *, int, char *, char *, ...); static void nsp32_message (const char *, int, char *, char *, ...);
@ -356,8 +361,8 @@ static void nsp32_dmessage(const char *func, int line, int mask, char *fmt, ...)
static void nsp32_build_identify(struct scsi_cmnd *SCpnt) static void nsp32_build_identify(struct scsi_cmnd *SCpnt)
{ {
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
int pos = data->msgout_len; int pos = data->msgout_len;
int mode = FALSE; int mode = FALSE;
/* XXX: Auto DiscPriv detection is progressing... */ /* XXX: Auto DiscPriv detection is progressing... */
if (disc_priv == 0) { if (disc_priv == 0) {
@ -377,13 +382,13 @@ static void nsp32_build_sdtr(struct scsi_cmnd *SCpnt,
unsigned char offset) unsigned char offset)
{ {
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
int pos = data->msgout_len; int pos = data->msgout_len;
data->msgoutbuf[pos] = EXTENDED_MESSAGE; pos++; data->msgoutbuf[pos] = EXTENDED_MESSAGE; pos++;
data->msgoutbuf[pos] = EXTENDED_SDTR_LEN; pos++; data->msgoutbuf[pos] = EXTENDED_SDTR_LEN; pos++;
data->msgoutbuf[pos] = EXTENDED_SDTR; pos++; data->msgoutbuf[pos] = EXTENDED_SDTR; pos++;
data->msgoutbuf[pos] = period; pos++; data->msgoutbuf[pos] = period; pos++;
data->msgoutbuf[pos] = offset; pos++; data->msgoutbuf[pos] = offset; pos++;
data->msgout_len = pos; data->msgout_len = pos;
} }
@ -394,7 +399,7 @@ static void nsp32_build_sdtr(struct scsi_cmnd *SCpnt,
static void nsp32_build_nop(struct scsi_cmnd *SCpnt) static void nsp32_build_nop(struct scsi_cmnd *SCpnt)
{ {
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
int pos = data->msgout_len; int pos = data->msgout_len;
if (pos != 0) { if (pos != 0) {
nsp32_msg(KERN_WARNING, nsp32_msg(KERN_WARNING,
@ -412,7 +417,7 @@ static void nsp32_build_nop(struct scsi_cmnd *SCpnt)
static void nsp32_build_reject(struct scsi_cmnd *SCpnt) static void nsp32_build_reject(struct scsi_cmnd *SCpnt)
{ {
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
int pos = data->msgout_len; int pos = data->msgout_len;
data->msgoutbuf[pos] = MESSAGE_REJECT; pos++; data->msgoutbuf[pos] = MESSAGE_REJECT; pos++;
data->msgout_len = pos; data->msgout_len = pos;
@ -450,7 +455,7 @@ static int nsp32_selection_autopara(struct scsi_cmnd *SCpnt)
unsigned char phase; unsigned char phase;
int i, ret; int i, ret;
unsigned int msgout; unsigned int msgout;
u16_le s; u16_le s;
nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "in"); nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "in");
@ -494,7 +499,8 @@ static int nsp32_selection_autopara(struct scsi_cmnd *SCpnt)
msgout = 0; msgout = 0;
} }
// nsp_dbg(NSP32_DEBUG_AUTOSCSI, "sel time out=0x%x\n", nsp32_read2(base, SEL_TIME_OUT)); // nsp_dbg(NSP32_DEBUG_AUTOSCSI, "sel time out=0x%x\n",
// nsp32_read2(base, SEL_TIME_OUT));
// nsp32_write2(base, SEL_TIME_OUT, SEL_TIMEOUT_TIME); // nsp32_write2(base, SEL_TIME_OUT, SEL_TIMEOUT_TIME);
/* /*
@ -520,10 +526,10 @@ static int nsp32_selection_autopara(struct scsi_cmnd *SCpnt)
/* command control */ /* command control */
param->command_control = cpu_to_le16(CLEAR_CDB_FIFO_POINTER | param->command_control = cpu_to_le16(CLEAR_CDB_FIFO_POINTER |
AUTOSCSI_START | AUTOSCSI_START |
AUTO_MSGIN_00_OR_04 | AUTO_MSGIN_00_OR_04 |
AUTO_MSGIN_02 | AUTO_MSGIN_02 |
AUTO_ATN ); AUTO_ATN );
/* transfer control */ /* transfer control */
@ -555,9 +561,9 @@ static int nsp32_selection_autopara(struct scsi_cmnd *SCpnt)
/* /*
* transfer parameter to ASIC * transfer parameter to ASIC
*/ */
nsp32_write4(base, SGT_ADR, data->auto_paddr); nsp32_write4(base, SGT_ADR, data->auto_paddr);
nsp32_write2(base, COMMAND_CONTROL, CLEAR_CDB_FIFO_POINTER | nsp32_write2(base, COMMAND_CONTROL,
AUTO_PARAMETER ); CLEAR_CDB_FIFO_POINTER | AUTO_PARAMETER );
/* /*
* Check arbitration * Check arbitration
@ -599,7 +605,7 @@ static int nsp32_selection_autoscsi(struct scsi_cmnd *SCpnt)
SCpnt->result = DID_BUS_BUSY << 16; SCpnt->result = DID_BUS_BUSY << 16;
status = 1; status = 1;
goto out; goto out;
} }
/* /*
* clear execph * clear execph
@ -616,13 +622,14 @@ static int nsp32_selection_autoscsi(struct scsi_cmnd *SCpnt)
*/ */
for (i = 0; i < SCpnt->cmd_len; i++) { for (i = 0; i < SCpnt->cmd_len; i++) {
nsp32_write1(base, COMMAND_DATA, SCpnt->cmnd[i]); nsp32_write1(base, COMMAND_DATA, SCpnt->cmnd[i]);
} }
nsp32_dbg(NSP32_DEBUG_CDB_CONTENTS, "CDB[0]=[0x%x]", SCpnt->cmnd[0]); nsp32_dbg(NSP32_DEBUG_CDB_CONTENTS, "CDB[0]=[0x%x]", SCpnt->cmnd[0]);
/* /*
* set SCSIOUT LATCH(initiator)/TARGET(target) (OR-ed) ID * set SCSIOUT LATCH(initiator)/TARGET(target) (OR-ed) ID
*/ */
nsp32_write1(base, SCSI_OUT_LATCH_TARGET_ID, BIT(host_id) | BIT(target)); nsp32_write1(base, SCSI_OUT_LATCH_TARGET_ID,
BIT(host_id) | BIT(target));
/* /*
* set SCSI MSGOUT REG * set SCSI MSGOUT REG
@ -687,7 +694,8 @@ static int nsp32_selection_autoscsi(struct scsi_cmnd *SCpnt)
nsp32_dbg(NSP32_DEBUG_AUTOSCSI, nsp32_dbg(NSP32_DEBUG_AUTOSCSI,
"syncreg=0x%x, ackwidth=0x%x, sgtpaddr=0x%x, id=0x%x", "syncreg=0x%x, ackwidth=0x%x, sgtpaddr=0x%x, id=0x%x",
nsp32_read1(base, SYNC_REG), nsp32_read1(base, ACK_WIDTH), nsp32_read1(base, SYNC_REG), nsp32_read1(base, ACK_WIDTH),
nsp32_read4(base, SGT_ADR), nsp32_read1(base, SCSI_OUT_LATCH_TARGET_ID)); nsp32_read4(base, SGT_ADR),
nsp32_read1(base, SCSI_OUT_LATCH_TARGET_ID));
nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "msgout_len=%d, msgout=0x%x", nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "msgout_len=%d, msgout=0x%x",
data->msgout_len, msgout); data->msgout_len, msgout);
@ -716,10 +724,10 @@ static int nsp32_selection_autoscsi(struct scsi_cmnd *SCpnt)
* start AUTO SCSI, kick off arbitration * start AUTO SCSI, kick off arbitration
*/ */
command = (CLEAR_CDB_FIFO_POINTER | command = (CLEAR_CDB_FIFO_POINTER |
AUTOSCSI_START | AUTOSCSI_START |
AUTO_MSGIN_00_OR_04 | AUTO_MSGIN_00_OR_04 |
AUTO_MSGIN_02 | AUTO_MSGIN_02 |
AUTO_ATN ); AUTO_ATN);
nsp32_write2(base, COMMAND_CONTROL, command); nsp32_write2(base, COMMAND_CONTROL, command);
/* /*
@ -776,7 +784,7 @@ static int nsp32_arbitration(struct scsi_cmnd *SCpnt, unsigned int base)
nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "arbit timeout"); nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "arbit timeout");
SCpnt->result = DID_NO_CONNECT << 16; SCpnt->result = DID_NO_CONNECT << 16;
status = FALSE; status = FALSE;
} }
/* /*
* clear Arbit * clear Arbit
@ -822,7 +830,8 @@ static int nsp32_reselection(struct scsi_cmnd *SCpnt, unsigned char newlun)
* or current nexus is not existed, unexpected * or current nexus is not existed, unexpected
* reselection is occurred. Send reject message. * reselection is occurred. Send reject message.
*/ */
if (newid >= ARRAY_SIZE(data->lunt) || newlun >= ARRAY_SIZE(data->lunt[0])) { if (newid >= ARRAY_SIZE(data->lunt) ||
newlun >= ARRAY_SIZE(data->lunt[0])) {
nsp32_msg(KERN_WARNING, "unknown id/lun"); nsp32_msg(KERN_WARNING, "unknown id/lun");
return FALSE; return FALSE;
} else if(data->lunt[newid][newlun].SCpnt == NULL) { } else if(data->lunt[newid][newlun].SCpnt == NULL) {
@ -876,7 +885,8 @@ static int nsp32_setup_sg_table(struct scsi_cmnd *SCpnt)
if (le32_to_cpu(sgt[i].len) > 0x10000) { if (le32_to_cpu(sgt[i].len) > 0x10000) {
nsp32_msg(KERN_ERR, nsp32_msg(KERN_ERR,
"can't transfer over 64KB at a time, size=0x%x", le32_to_cpu(sgt[i].len)); "can't transfer over 64KB at a time, "
"size=0x%x", le32_to_cpu(sgt[i].len));
return FALSE; return FALSE;
} }
nsp32_dbg(NSP32_DEBUG_SGLIST, nsp32_dbg(NSP32_DEBUG_SGLIST,
@ -894,7 +904,8 @@ static int nsp32_setup_sg_table(struct scsi_cmnd *SCpnt)
return TRUE; return TRUE;
} }
static int nsp32_queuecommand_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) static int nsp32_queuecommand_lck(struct scsi_cmnd *SCpnt,
void (*done)(struct scsi_cmnd *))
{ {
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
nsp32_target *target; nsp32_target *target;
@ -904,8 +915,9 @@ static int nsp32_queuecommand_lck(struct scsi_cmnd *SCpnt, void (*done)(struct s
nsp32_dbg(NSP32_DEBUG_QUEUECOMMAND, nsp32_dbg(NSP32_DEBUG_QUEUECOMMAND,
"enter. target: 0x%x LUN: 0x%llx cmnd: 0x%x cmndlen: 0x%x " "enter. target: 0x%x LUN: 0x%llx cmnd: 0x%x cmndlen: 0x%x "
"use_sg: 0x%x reqbuf: 0x%lx reqlen: 0x%x", "use_sg: 0x%x reqbuf: 0x%lx reqlen: 0x%x",
SCpnt->device->id, SCpnt->device->lun, SCpnt->cmnd[0], SCpnt->cmd_len, SCpnt->device->id, SCpnt->device->lun, SCpnt->cmnd[0],
scsi_sg_count(SCpnt), scsi_sglist(SCpnt), scsi_bufflen(SCpnt)); SCpnt->cmd_len, scsi_sg_count(SCpnt), scsi_sglist(SCpnt),
scsi_bufflen(SCpnt));
if (data->CurrentSC != NULL) { if (data->CurrentSC != NULL) {
nsp32_msg(KERN_ERR, "Currentsc != NULL. Cancel this command request"); nsp32_msg(KERN_ERR, "Currentsc != NULL. Cancel this command request");
@ -1051,9 +1063,9 @@ static int nsp32hw_init(nsp32_hw_data *data)
nsp32_index_write2(base, CFG_LATE_CACHE, lc_reg & 0xffff); nsp32_index_write2(base, CFG_LATE_CACHE, lc_reg & 0xffff);
} }
nsp32_write2(base, IRQ_CONTROL, IRQ_CONTROL_ALL_IRQ_MASK); nsp32_write2(base, IRQ_CONTROL, IRQ_CONTROL_ALL_IRQ_MASK);
nsp32_write2(base, TRANSFER_CONTROL, 0); nsp32_write2(base, TRANSFER_CONTROL, 0);
nsp32_write4(base, BM_CNT, 0); nsp32_write4(base, BM_CNT, 0);
nsp32_write2(base, SCSI_EXECUTE_PHASE, 0); nsp32_write2(base, SCSI_EXECUTE_PHASE, 0);
do { do {
@ -1081,7 +1093,8 @@ static int nsp32hw_init(nsp32_hw_data *data)
nsp32_index_read1(base, FIFO_EMPTY_SHLD_COUNT)); nsp32_index_read1(base, FIFO_EMPTY_SHLD_COUNT));
nsp32_index_write1(base, CLOCK_DIV, data->clock); nsp32_index_write1(base, CLOCK_DIV, data->clock);
nsp32_index_write1(base, BM_CYCLE, MEMRD_CMD1 | SGT_AUTO_PARA_MEMED_CMD); nsp32_index_write1(base, BM_CYCLE,
MEMRD_CMD1 | SGT_AUTO_PARA_MEMED_CMD);
nsp32_write1(base, PARITY_CONTROL, 0); /* parity check is disable */ nsp32_write1(base, PARITY_CONTROL, 0); /* parity check is disable */
/* /*
@ -1101,10 +1114,10 @@ static int nsp32hw_init(nsp32_hw_data *data)
*/ */
nsp32_index_write2(base, MISC_WR, nsp32_index_write2(base, MISC_WR,
(SCSI_DIRECTION_DETECTOR_SELECT | (SCSI_DIRECTION_DETECTOR_SELECT |
DELAYED_BMSTART | DELAYED_BMSTART |
MASTER_TERMINATION_SELECT | MASTER_TERMINATION_SELECT |
BMREQ_NEGATE_TIMING_SEL | BMREQ_NEGATE_TIMING_SEL |
AUTOSEL_TIMING_SEL | AUTOSEL_TIMING_SEL |
BMSTOP_CHANGE2_NONDATA_PHASE)); BMSTOP_CHANGE2_NONDATA_PHASE));
nsp32_index_write1(base, TERM_PWR_CONTROL, 0); nsp32_index_write1(base, TERM_PWR_CONTROL, 0);
@ -1125,15 +1138,16 @@ static int nsp32hw_init(nsp32_hw_data *data)
* enable to select designated IRQ (except for * enable to select designated IRQ (except for
* IRQSELECT_SERR, IRQSELECT_PERR, IRQSELECT_BMCNTERR) * IRQSELECT_SERR, IRQSELECT_PERR, IRQSELECT_BMCNTERR)
*/ */
nsp32_index_write2(base, IRQ_SELECT, IRQSELECT_TIMER_IRQ | nsp32_index_write2(base, IRQ_SELECT,
IRQSELECT_SCSIRESET_IRQ | IRQSELECT_TIMER_IRQ |
IRQSELECT_FIFO_SHLD_IRQ | IRQSELECT_SCSIRESET_IRQ |
IRQSELECT_RESELECT_IRQ | IRQSELECT_FIFO_SHLD_IRQ |
IRQSELECT_PHASE_CHANGE_IRQ | IRQSELECT_RESELECT_IRQ |
IRQSELECT_AUTO_SCSI_SEQ_IRQ | IRQSELECT_PHASE_CHANGE_IRQ |
// IRQSELECT_BMCNTERR_IRQ | IRQSELECT_AUTO_SCSI_SEQ_IRQ |
IRQSELECT_TARGET_ABORT_IRQ | // IRQSELECT_BMCNTERR_IRQ |
IRQSELECT_MASTER_ABORT_IRQ ); IRQSELECT_TARGET_ABORT_IRQ |
IRQSELECT_MASTER_ABORT_IRQ );
nsp32_write2(base, IRQ_CONTROL, 0); nsp32_write2(base, IRQ_CONTROL, 0);
/* PCI LED off */ /* PCI LED off */
@ -1167,7 +1181,8 @@ static irqreturn_t do_nsp32_isr(int irq, void *dev_id)
"enter IRQ: %d, IRQstatus: 0x%x", irq, irq_stat); "enter IRQ: %d, IRQstatus: 0x%x", irq, irq_stat);
/* is this interrupt comes from Ninja asic? */ /* is this interrupt comes from Ninja asic? */
if ((irq_stat & IRQSTATUS_ANY_IRQ) == 0) { if ((irq_stat & IRQSTATUS_ANY_IRQ) == 0) {
nsp32_dbg(NSP32_DEBUG_INTR, "shared interrupt: irq other 0x%x", irq_stat); nsp32_dbg(NSP32_DEBUG_INTR,
"shared interrupt: irq other 0x%x", irq_stat);
goto out2; goto out2;
} }
handled = 1; handled = 1;
@ -1207,7 +1222,8 @@ static irqreturn_t do_nsp32_isr(int irq, void *dev_id)
if (SCpnt == NULL) { if (SCpnt == NULL) {
nsp32_msg(KERN_WARNING, "SCpnt==NULL this can't be happened"); nsp32_msg(KERN_WARNING, "SCpnt==NULL this can't be happened");
nsp32_msg(KERN_WARNING, "irq_stat=0x%x trans_stat=0x%x", irq_stat, trans_stat); nsp32_msg(KERN_WARNING, "irq_stat=0x%x trans_stat=0x%x",
irq_stat, trans_stat);
goto out; goto out;
} }
@ -1367,7 +1383,8 @@ static irqreturn_t do_nsp32_isr(int irq, void *dev_id)
break; break;
default: default:
nsp32_dbg(NSP32_DEBUG_INTR, "fifo/other phase"); nsp32_dbg(NSP32_DEBUG_INTR, "fifo/other phase");
nsp32_dbg(NSP32_DEBUG_INTR, "irq_stat=0x%x trans_stat=0x%x", irq_stat, trans_stat); nsp32_dbg(NSP32_DEBUG_INTR, "irq_stat=0x%x trans_stat=0x%x",
irq_stat, trans_stat);
show_busphase(busphase); show_busphase(busphase);
break; break;
} }
@ -1433,32 +1450,39 @@ static int nsp32_show_info(struct seq_file *m, struct Scsi_Host *host)
{ {
unsigned long flags; unsigned long flags;
nsp32_hw_data *data; nsp32_hw_data *data;
int hostno; int hostno;
unsigned int base; unsigned int base;
unsigned char mode_reg; unsigned char mode_reg;
int id, speed; int id, speed;
long model; long model;
hostno = host->host_no; hostno = host->host_no;
data = (nsp32_hw_data *)host->hostdata; data = (nsp32_hw_data *)host->hostdata;
base = host->io_port; base = host->io_port;
seq_puts(m, "NinjaSCSI-32 status\n\n"); seq_puts(m, "NinjaSCSI-32 status\n\n");
seq_printf(m, "Driver version: %s, $Revision: 1.33 $\n", nsp32_release_version); seq_printf(m, "Driver version: %s, $Revision: 1.33 $\n",
seq_printf(m, "SCSI host No.: %d\n", hostno); nsp32_release_version);
seq_printf(m, "IRQ: %d\n", host->irq); seq_printf(m, "SCSI host No.: %d\n", hostno);
seq_printf(m, "IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_port - 1); seq_printf(m, "IRQ: %d\n", host->irq);
seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - 1); seq_printf(m, "IO: 0x%lx-0x%lx\n",
seq_printf(m, "sg_tablesize: %d\n", host->sg_tablesize); host->io_port, host->io_port + host->n_io_port - 1);
seq_printf(m, "Chip revision: 0x%x\n", (nsp32_read2(base, INDEX_REG) >> 8) & 0xff); seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n",
host->base, host->base + data->MmioLength - 1);
seq_printf(m, "sg_tablesize: %d\n",
host->sg_tablesize);
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
seq_printf(m, "Power Management: %s\n", (mode_reg & OPTF) ? "yes" : "no"); seq_printf(m, "Power Management: %s\n",
(mode_reg & OPTF) ? "yes" : "no");
#endif #endif
seq_printf(m, "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);
seq_printf(m, "CurrentSC: 0x%p\n\n", data->CurrentSC); seq_printf(m, "CurrentSC: 0x%p\n\n", data->CurrentSC);
@ -1476,7 +1500,7 @@ static int nsp32_show_info(struct seq_file *m, struct Scsi_Host *host)
} }
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 ) {
seq_puts(m, "async"); seq_puts(m, "async");
} else { } else {
@ -1518,7 +1542,7 @@ static void nsp32_scsi_done(struct scsi_cmnd *SCpnt)
* clear TRANSFERCONTROL_BM_START * clear TRANSFERCONTROL_BM_START
*/ */
nsp32_write2(base, TRANSFER_CONTROL, 0); nsp32_write2(base, TRANSFER_CONTROL, 0);
nsp32_write4(base, BM_CNT, 0); nsp32_write4(base, BM_CNT, 0);
/* /*
* call scsi_done * call scsi_done
@ -1528,10 +1552,10 @@ static void nsp32_scsi_done(struct scsi_cmnd *SCpnt)
/* /*
* reset parameters * reset parameters
*/ */
data->cur_lunt->SCpnt = NULL; data->cur_lunt->SCpnt = NULL;
data->cur_lunt = NULL; data->cur_lunt = NULL;
data->cur_target = NULL; data->cur_target = NULL;
data->CurrentSC = NULL; data->CurrentSC = NULL;
} }
@ -1553,7 +1577,7 @@ static int nsp32_busfree_occur(struct scsi_cmnd *SCpnt, unsigned short execph)
nsp32_dbg(NSP32_DEBUG_BUSFREE, "enter execph=0x%x", execph); nsp32_dbg(NSP32_DEBUG_BUSFREE, "enter execph=0x%x", execph);
show_autophase(execph); show_autophase(execph);
nsp32_write4(base, BM_CNT, 0); nsp32_write4(base, BM_CNT, 0);
nsp32_write2(base, TRANSFER_CONTROL, 0); nsp32_write2(base, TRANSFER_CONTROL, 0);
/* /*
@ -1670,9 +1694,9 @@ static int nsp32_busfree_occur(struct scsi_cmnd *SCpnt, unsigned short execph)
nsp32_dbg(NSP32_DEBUG_BUSFREE, nsp32_dbg(NSP32_DEBUG_BUSFREE,
"normal end stat=0x%x resid=0x%x\n", "normal end stat=0x%x resid=0x%x\n",
SCpnt->SCp.Status, scsi_get_resid(SCpnt)); SCpnt->SCp.Status, scsi_get_resid(SCpnt));
SCpnt->result = (DID_OK << 16) | SCpnt->result = (DID_OK << 16) |
(SCpnt->SCp.Message << 8) | (SCpnt->SCp.Message << 8) |
(SCpnt->SCp.Status << 0); (SCpnt->SCp.Status << 0);
nsp32_scsi_done(SCpnt); nsp32_scsi_done(SCpnt);
/* All operation is done */ /* All operation is done */
return TRUE; return TRUE;
@ -1706,12 +1730,12 @@ static int nsp32_busfree_occur(struct scsi_cmnd *SCpnt, unsigned short execph)
static void nsp32_adjust_busfree(struct scsi_cmnd *SCpnt, unsigned int s_sacklen) static void nsp32_adjust_busfree(struct scsi_cmnd *SCpnt, unsigned int s_sacklen)
{ {
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
int old_entry = data->cur_entry; int old_entry = data->cur_entry;
int new_entry; int new_entry;
int sg_num = data->cur_lunt->sg_num; int sg_num = data->cur_lunt->sg_num;
nsp32_sgtable *sgt = data->cur_lunt->sglun->sgt; nsp32_sgtable *sgt = data->cur_lunt->sglun->sgt;
unsigned int restlen, sentlen; unsigned int restlen, sentlen;
u32_le len, addr; u32_le len, addr;
nsp32_dbg(NSP32_DEBUG_SGLIST, "old resid=0x%x", scsi_get_resid(SCpnt)); nsp32_dbg(NSP32_DEBUG_SGLIST, "old resid=0x%x", scsi_get_resid(SCpnt));
@ -1738,7 +1762,9 @@ static void nsp32_adjust_busfree(struct scsi_cmnd *SCpnt, unsigned int s_sacklen
if (sentlen == s_sacklen) { if (sentlen == s_sacklen) {
/* XXX: confirm it's ok or not */ /* XXX: confirm it's ok or not */
/* In this case, it's ok because we are at /* In this case, it's ok because we are at
the head element of the sg. restlen is correctly calculated. */ * the head element of the sg. restlen is correctly
* calculated.
*/
} }
/* calculate the rest length for transferring */ /* calculate the rest length for transferring */
@ -1815,10 +1841,10 @@ static void nsp32_msgout_occur(struct scsi_cmnd *SCpnt)
//nsp32_restart_autoscsi(SCpnt, command); //nsp32_restart_autoscsi(SCpnt, command);
nsp32_write2(base, COMMAND_CONTROL, nsp32_write2(base, COMMAND_CONTROL,
(CLEAR_CDB_FIFO_POINTER | (CLEAR_CDB_FIFO_POINTER |
AUTO_COMMAND_PHASE | AUTO_COMMAND_PHASE |
AUTOSCSI_RESTART | AUTOSCSI_RESTART |
AUTO_MSGIN_00_OR_04 | AUTO_MSGIN_00_OR_04 |
AUTO_MSGIN_02 )); AUTO_MSGIN_02 ));
} }
/* /*
* Write data with SACK, then wait sack is * Write data with SACK, then wait sack is
@ -1918,9 +1944,9 @@ static void nsp32_msgin_occur(struct scsi_cmnd *SCpnt,
unsigned char msgtype; unsigned char msgtype;
unsigned char newlun; unsigned char newlun;
unsigned short command = 0; unsigned short command = 0;
int msgclear = TRUE; int msgclear = TRUE;
long new_sgtp; long new_sgtp;
int ret; int ret;
/* /*
* read first message * read first message
@ -2208,10 +2234,10 @@ static void nsp32_msgin_occur(struct scsi_cmnd *SCpnt,
static void nsp32_analyze_sdtr(struct scsi_cmnd *SCpnt) static void nsp32_analyze_sdtr(struct scsi_cmnd *SCpnt)
{ {
nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;
nsp32_target *target = data->cur_target; nsp32_target *target = data->cur_target;
unsigned char get_period = data->msginbuf[3]; unsigned char get_period = data->msginbuf[3];
unsigned char get_offset = data->msginbuf[4]; unsigned char get_offset = data->msginbuf[4];
int entry; int entry;
nsp32_dbg(NSP32_DEBUG_MSGINOCCUR, "enter"); nsp32_dbg(NSP32_DEBUG_MSGINOCCUR, "enter");
@ -2409,7 +2435,7 @@ static void nsp32_set_max_sync(nsp32_hw_data *data,
*/ */
static void nsp32_set_sync_entry(nsp32_hw_data *data, static void nsp32_set_sync_entry(nsp32_hw_data *data,
nsp32_target *target, nsp32_target *target,
int entry, int entry,
unsigned char offset) unsigned char offset)
{ {
unsigned char period, ackwidth, sample_rate; unsigned char period, ackwidth, sample_rate;
@ -2438,7 +2464,7 @@ static void nsp32_set_sync_entry(nsp32_hw_data *data,
static void nsp32_wait_req(nsp32_hw_data *data, int state) static void nsp32_wait_req(nsp32_hw_data *data, int state)
{ {
unsigned int base = data->BaseAddress; unsigned int base = data->BaseAddress;
int wait_time = 0; int wait_time = 0;
unsigned char bus, req_bit; unsigned char bus, req_bit;
if (!((state == ASSERT) || (state == NEGATE))) { if (!((state == ASSERT) || (state == NEGATE))) {
@ -2467,7 +2493,7 @@ static void nsp32_wait_req(nsp32_hw_data *data, int state)
static void nsp32_wait_sack(nsp32_hw_data *data, int state) static void nsp32_wait_sack(nsp32_hw_data *data, int state)
{ {
unsigned int base = data->BaseAddress; unsigned int base = data->BaseAddress;
int wait_time = 0; int wait_time = 0;
unsigned char bus, ack_bit; unsigned char bus, ack_bit;
if (!((state == ASSERT) || (state == NEGATE))) { if (!((state == ASSERT) || (state == NEGATE))) {
@ -2532,8 +2558,8 @@ static int nsp32_detect(struct pci_dev *pdev)
struct Scsi_Host *host; /* registered host structure */ struct Scsi_Host *host; /* registered host structure */
struct resource *res; struct resource *res;
nsp32_hw_data *data; nsp32_hw_data *data;
int ret; int ret;
int i, j; int i, j;
nsp32_dbg(NSP32_DEBUG_REGISTER, "enter"); nsp32_dbg(NSP32_DEBUG_REGISTER, "enter");
@ -2710,7 +2736,7 @@ static int nsp32_detect(struct pci_dev *pdev)
goto free_sg_list; goto free_sg_list;
} }
/* /*
* PCI IO register * PCI IO register
*/ */
res = request_region(host->io_port, host->n_io_port, "nsp32"); res = request_region(host->io_port, host->n_io_port, "nsp32");
@ -2719,7 +2745,7 @@ static int nsp32_detect(struct pci_dev *pdev)
"I/O region 0x%x+0x%x is already used", "I/O region 0x%x+0x%x is already used",
data->BaseAddress, data->NumAddress); data->BaseAddress, data->NumAddress);
goto free_irq; goto free_irq;
} }
ret = scsi_add_host(host, &pdev->dev); ret = scsi_add_host(host, &pdev->dev);
if (ret) { if (ret) {
@ -2810,7 +2836,7 @@ static int nsp32_eh_abort(struct scsi_cmnd *SCpnt)
} }
nsp32_write2(base, TRANSFER_CONTROL, 0); nsp32_write2(base, TRANSFER_CONTROL, 0);
nsp32_write2(base, BM_CNT, 0); nsp32_write2(base, BM_CNT, 0);
SCpnt->result = DID_ABORT << 16; SCpnt->result = DID_ABORT << 16;
nsp32_scsi_done(SCpnt); nsp32_scsi_done(SCpnt);
@ -2833,8 +2859,8 @@ static void nsp32_do_bus_reset(nsp32_hw_data *data)
* clear counter * clear counter
*/ */
nsp32_write2(base, TRANSFER_CONTROL, 0); nsp32_write2(base, TRANSFER_CONTROL, 0);
nsp32_write4(base, BM_CNT, 0); nsp32_write4(base, BM_CNT, 0);
nsp32_write4(base, CLR_COUNTER, CLRCOUNTER_ALLMASK); nsp32_write4(base, CLR_COUNTER, CLRCOUNTER_ALLMASK);
/* /*
* fall back to asynchronous transfer mode * fall back to asynchronous transfer mode
@ -2856,7 +2882,7 @@ static void nsp32_do_bus_reset(nsp32_hw_data *data)
for(i = 0; i < 5; i++) { for(i = 0; i < 5; i++) {
intrdat = nsp32_read2(base, IRQ_STATUS); /* dummy read */ intrdat = nsp32_read2(base, IRQ_STATUS); /* dummy read */
nsp32_dbg(NSP32_DEBUG_BUSRESET, "irq:1: 0x%x", intrdat); nsp32_dbg(NSP32_DEBUG_BUSRESET, "irq:1: 0x%x", intrdat);
} }
data->CurrentSC = NULL; data->CurrentSC = NULL;
} }
@ -2948,7 +2974,7 @@ static int nsp32_getprom_param(nsp32_hw_data *data)
* Value 0: AutoSync, 1: Manual Setting * Value 0: AutoSync, 1: Manual Setting
* 0x08 - 0x0f : Not Used? (0x0) * 0x08 - 0x0f : Not Used? (0x0)
* 0x10 : Bus Termination * 0x10 : Bus Termination
* Value 0: Auto[ON], 1: ON, 2: OFF * Value 0: Auto[ON], 1: ON, 2: OFF
* 0x11 : Not Used? (0) * 0x11 : Not Used? (0)
* 0x12 : Bus Reset Delay Time (0x03) * 0x12 : Bus Reset Delay Time (0x03)
* 0x13 : Bootable CD Support * 0x13 : Bootable CD Support
@ -2956,7 +2982,7 @@ static int nsp32_getprom_param(nsp32_hw_data *data)
* 0x14 : Device Scan * 0x14 : Device Scan
* Bit 7 6 5 4 3 2 1 0 * Bit 7 6 5 4 3 2 1 0
* | <-----------------> * | <----------------->
* | SCSI ID: Value 0: Skip, 1: YES * | SCSI ID: Value 0: Skip, 1: YES
* |-> Value 0: ALL scan, Value 1: Manual * |-> Value 0: ALL scan, Value 1: Manual
* 0x15 - 0x1b : Not Used? (0) * 0x15 - 0x1b : Not Used? (0)
* 0x1c : Constant? (0x01) (clock div?) * 0x1c : Constant? (0x01) (clock div?)
@ -2967,10 +2993,10 @@ static int nsp32_getprom_param(nsp32_hw_data *data)
*/ */
static int nsp32_getprom_at24(nsp32_hw_data *data) static int nsp32_getprom_at24(nsp32_hw_data *data)
{ {
int ret, i; int ret, i;
int auto_sync; int auto_sync;
nsp32_target *target; nsp32_target *target;
int entry; int entry;
/* /*
* Reset time which is designated by EEPROM. * Reset time which is designated by EEPROM.
@ -3044,7 +3070,7 @@ static int nsp32_getprom_at24(nsp32_hw_data *data)
* Value 0: PIO, 1: Busmater * Value 0: PIO, 1: Busmater
* 0x11 : Bus Reset Delay Time (0x00-0x20) * 0x11 : Bus Reset Delay Time (0x00-0x20)
* 0x12 : Bus Termination * 0x12 : Bus Termination
* Value 0: Disable, 1: Enable * Value 0: Disable, 1: Enable
* 0x13 - 0x19 : Disconnection * 0x13 - 0x19 : Disconnection
* Value 0: Disable, 1: Enable * Value 0: Disable, 1: Enable
* 0x1a - 0x7c : Not Used? (0) * 0x1a - 0x7c : Not Used? (0)
@ -3054,9 +3080,9 @@ static int nsp32_getprom_at24(nsp32_hw_data *data)
*/ */
static int nsp32_getprom_c16(nsp32_hw_data *data) static int nsp32_getprom_c16(nsp32_hw_data *data)
{ {
int ret, i; int ret, i;
nsp32_target *target; nsp32_target *target;
int entry, val; int entry, val;
/* /*
* Reset time which is designated by EEPROM. * Reset time which is designated by EEPROM.
@ -3281,7 +3307,8 @@ static int nsp32_resume(struct pci_dev *pdev)
nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata; nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata;
unsigned short reg; unsigned short reg;
nsp32_msg(KERN_INFO, "pci-resume: pdev=0x%p, slot=%s, host=0x%p", pdev, pci_name(pdev), host); nsp32_msg(KERN_INFO, "pci-resume: pdev=0x%p, slot=%s, host=0x%p",
pdev, pci_name(pdev), host);
pci_set_power_state(pdev, PCI_D0); pci_set_power_state(pdev, PCI_D0);
pci_enable_wake (pdev, PCI_D0, 0); pci_enable_wake (pdev, PCI_D0, 0);
@ -3316,13 +3343,13 @@ static int nsp32_probe(struct pci_dev *pdev, const struct pci_device_id *id)
nsp32_dbg(NSP32_DEBUG_REGISTER, "enter"); nsp32_dbg(NSP32_DEBUG_REGISTER, "enter");
ret = pci_enable_device(pdev); ret = pci_enable_device(pdev);
if (ret) { if (ret) {
nsp32_msg(KERN_ERR, "failed to enable pci device"); nsp32_msg(KERN_ERR, "failed to enable pci device");
return ret; return ret;
} }
data->Pci = pdev; data->Pci = pdev;
data->pci_devid = id; data->pci_devid = id;
data->IrqNumber = pdev->irq; data->IrqNumber = pdev->irq;
data->BaseAddress = pci_resource_start(pdev, 0); data->BaseAddress = pci_resource_start(pdev, 0);
@ -3351,7 +3378,7 @@ static void nsp32_remove(struct pci_dev *pdev)
nsp32_dbg(NSP32_DEBUG_REGISTER, "enter"); nsp32_dbg(NSP32_DEBUG_REGISTER, "enter");
scsi_remove_host(host); scsi_remove_host(host);
nsp32_release(host); nsp32_release(host);