Loading drivers/scsi/ncr53c8xx.c +0 −163 Original line number Diff line number Diff line Loading @@ -1453,11 +1453,6 @@ struct head { #define xerr_status phys.xerr_st #define nego_status phys.nego_st #if 0 #define sync_status phys.sync_st #define wide_status phys.wide_st #endif /*========================================================== ** ** Declaration of structs: Data structure block Loading Loading @@ -1980,9 +1975,6 @@ static inline char *ncr_name (struct ncb *np) #define RELOC_SOFTC 0x40000000 #define RELOC_LABEL 0x50000000 #define RELOC_REGISTER 0x60000000 #if 0 #define RELOC_KVAR 0x70000000 #endif #define RELOC_LABELH 0x80000000 #define RELOC_MASK 0xf0000000 Loading @@ -1991,21 +1983,7 @@ static inline char *ncr_name (struct ncb *np) #define PADDRH(label) (RELOC_LABELH | offsetof(struct scripth, label)) #define RADDR(label) (RELOC_REGISTER | REG(label)) #define FADDR(label,ofs)(RELOC_REGISTER | ((REG(label))+(ofs))) #if 0 #define KVAR(which) (RELOC_KVAR | (which)) #endif #if 0 #define SCRIPT_KVAR_JIFFIES (0) #define SCRIPT_KVAR_FIRST SCRIPT_KVAR_JIFFIES #define SCRIPT_KVAR_LAST SCRIPT_KVAR_JIFFIES /* * Kernel variables referenced in the scripts. * THESE MUST ALL BE ALIGNED TO A 4-BYTE BOUNDARY. */ static void *script_kvars[] __initdata = { (void *)&jiffies }; #endif static struct script script0 __initdata = { /*--------------------------< START >-----------------------*/ { Loading Loading @@ -2162,11 +2140,6 @@ static struct script script0 __initdata = { SCR_COPY (1), RADDR (scratcha), NADDR (msgout), #if 0 SCR_COPY (1), RADDR (scratcha), NADDR (msgin), #endif /* ** Anticipate the COMMAND phase. ** This is the normal case for initial selection. Loading Loading @@ -4378,10 +4351,6 @@ static int ncr_queue_command (struct ncb *np, struct scsi_cmnd *cmd) cp->parity_status = 0; cp->xerr_status = XE_OK; #if 0 cp->sync_status = tp->sval; cp->wide_status = tp->wval; #endif /*---------------------------------------------------- ** Loading Loading @@ -4580,89 +4549,6 @@ static int ncr_reset_bus (struct ncb *np) return SUCCESS; } #if 0 /* unused and broken.. */ /*========================================================== ** ** ** Abort an SCSI command. ** This is called from the generic SCSI driver. ** ** **========================================================== */ static int ncr_abort_command (struct ncb *np, struct scsi_cmnd *cmd) { /* struct scsi_device *device = cmd->device; */ struct ccb *cp; int found; int retv; /* * First, look for the scsi command in the waiting list */ if (remove_from_waiting_list(np, cmd)) { set_host_byte(cmd, DID_ABORT); ncr_queue_done_cmd(np, cmd); return SCSI_ABORT_SUCCESS; } /* * Then, look in the wakeup list */ for (found=0, cp=np->ccb; cp; cp=cp->link_ccb) { /* ** look for the ccb of this command. */ if (cp->host_status == HS_IDLE) continue; if (cp->cmd == cmd) { found = 1; break; } } if (!found) { return SCSI_ABORT_NOT_RUNNING; } if (np->settle_time) { return SCSI_ABORT_SNOOZE; } /* ** If the CCB is active, patch schedule jumps for the ** script to abort the command. */ switch(cp->host_status) { case HS_BUSY: case HS_NEGOTIATE: printk ("%s: abort ccb=%p (cancel)\n", ncr_name (np), cp); cp->start.schedule.l_paddr = cpu_to_scr(NCB_SCRIPTH_PHYS (np, cancel)); retv = SCSI_ABORT_PENDING; break; case HS_DISCONNECT: cp->restart.schedule.l_paddr = cpu_to_scr(NCB_SCRIPTH_PHYS (np, abort)); retv = SCSI_ABORT_PENDING; break; default: retv = SCSI_ABORT_NOT_RUNNING; break; } /* ** If there are no requests, the script ** processor will sleep on SEL_WAIT_RESEL. ** Let's wake it up, since it may have to work. */ OUTB (nc_istat, SIGP); return retv; } #endif static void ncr_detach(struct ncb *np) { struct ccb *cp; Loading Loading @@ -5421,27 +5307,6 @@ static void ncr_getsync(struct ncb *np, u_char sfac, u_char *fakp, u_char *scntl */ fak = (kpc - 1) / div_10M[div] + 1; #if 0 /* This optimization does not seem very useful */ per = (fak * div_10M[div]) / clk; /* ** Why not to try the immediate lower divisor and to choose ** the one that allows the fastest output speed ? ** We don't want input speed too much greater than output speed. */ if (div >= 1 && fak < 8) { u_long fak2, per2; fak2 = (kpc - 1) / div_10M[div-1] + 1; per2 = (fak2 * div_10M[div-1]) / clk; if (per2 < per && fak2 <= 8) { fak = fak2; per = per2; --div; } } #endif if (fak < 4) fak = 4; /* Should never happen, too bad ... */ /* Loading Loading @@ -5479,10 +5344,6 @@ static void ncr_set_sync_wide_status (struct ncb *np, u_char target) for (cp = np->ccb; cp; cp = cp->link_ccb) { if (!cp->cmd) continue; if (scmd_id(cp->cmd) != target) continue; #if 0 cp->sync_status = tp->sval; cp->wide_status = tp->wval; #endif cp->phys.select.sel_scntl3 = tp->wval; cp->phys.select.sel_sxfer = tp->sval; } Loading Loading @@ -8104,30 +7965,6 @@ static int ncr53c8xx_bus_reset(struct scsi_cmnd *cmd) return sts; } #if 0 /* unused and broken */ static int ncr53c8xx_abort(struct scsi_cmnd *cmd) { struct ncb *np = ((struct host_data *) cmd->device->host->hostdata)->ncb; int sts; unsigned long flags; struct scsi_cmnd *done_list; printk("ncr53c8xx_abort\n"); NCR_LOCK_NCB(np, flags); sts = ncr_abort_command(np, cmd); out: done_list = np->done_list; np->done_list = NULL; NCR_UNLOCK_NCB(np, flags); ncr_flush_done_cmds(done_list); return sts; } #endif /* ** Scsi command waiting list management. Loading Loading
drivers/scsi/ncr53c8xx.c +0 −163 Original line number Diff line number Diff line Loading @@ -1453,11 +1453,6 @@ struct head { #define xerr_status phys.xerr_st #define nego_status phys.nego_st #if 0 #define sync_status phys.sync_st #define wide_status phys.wide_st #endif /*========================================================== ** ** Declaration of structs: Data structure block Loading Loading @@ -1980,9 +1975,6 @@ static inline char *ncr_name (struct ncb *np) #define RELOC_SOFTC 0x40000000 #define RELOC_LABEL 0x50000000 #define RELOC_REGISTER 0x60000000 #if 0 #define RELOC_KVAR 0x70000000 #endif #define RELOC_LABELH 0x80000000 #define RELOC_MASK 0xf0000000 Loading @@ -1991,21 +1983,7 @@ static inline char *ncr_name (struct ncb *np) #define PADDRH(label) (RELOC_LABELH | offsetof(struct scripth, label)) #define RADDR(label) (RELOC_REGISTER | REG(label)) #define FADDR(label,ofs)(RELOC_REGISTER | ((REG(label))+(ofs))) #if 0 #define KVAR(which) (RELOC_KVAR | (which)) #endif #if 0 #define SCRIPT_KVAR_JIFFIES (0) #define SCRIPT_KVAR_FIRST SCRIPT_KVAR_JIFFIES #define SCRIPT_KVAR_LAST SCRIPT_KVAR_JIFFIES /* * Kernel variables referenced in the scripts. * THESE MUST ALL BE ALIGNED TO A 4-BYTE BOUNDARY. */ static void *script_kvars[] __initdata = { (void *)&jiffies }; #endif static struct script script0 __initdata = { /*--------------------------< START >-----------------------*/ { Loading Loading @@ -2162,11 +2140,6 @@ static struct script script0 __initdata = { SCR_COPY (1), RADDR (scratcha), NADDR (msgout), #if 0 SCR_COPY (1), RADDR (scratcha), NADDR (msgin), #endif /* ** Anticipate the COMMAND phase. ** This is the normal case for initial selection. Loading Loading @@ -4378,10 +4351,6 @@ static int ncr_queue_command (struct ncb *np, struct scsi_cmnd *cmd) cp->parity_status = 0; cp->xerr_status = XE_OK; #if 0 cp->sync_status = tp->sval; cp->wide_status = tp->wval; #endif /*---------------------------------------------------- ** Loading Loading @@ -4580,89 +4549,6 @@ static int ncr_reset_bus (struct ncb *np) return SUCCESS; } #if 0 /* unused and broken.. */ /*========================================================== ** ** ** Abort an SCSI command. ** This is called from the generic SCSI driver. ** ** **========================================================== */ static int ncr_abort_command (struct ncb *np, struct scsi_cmnd *cmd) { /* struct scsi_device *device = cmd->device; */ struct ccb *cp; int found; int retv; /* * First, look for the scsi command in the waiting list */ if (remove_from_waiting_list(np, cmd)) { set_host_byte(cmd, DID_ABORT); ncr_queue_done_cmd(np, cmd); return SCSI_ABORT_SUCCESS; } /* * Then, look in the wakeup list */ for (found=0, cp=np->ccb; cp; cp=cp->link_ccb) { /* ** look for the ccb of this command. */ if (cp->host_status == HS_IDLE) continue; if (cp->cmd == cmd) { found = 1; break; } } if (!found) { return SCSI_ABORT_NOT_RUNNING; } if (np->settle_time) { return SCSI_ABORT_SNOOZE; } /* ** If the CCB is active, patch schedule jumps for the ** script to abort the command. */ switch(cp->host_status) { case HS_BUSY: case HS_NEGOTIATE: printk ("%s: abort ccb=%p (cancel)\n", ncr_name (np), cp); cp->start.schedule.l_paddr = cpu_to_scr(NCB_SCRIPTH_PHYS (np, cancel)); retv = SCSI_ABORT_PENDING; break; case HS_DISCONNECT: cp->restart.schedule.l_paddr = cpu_to_scr(NCB_SCRIPTH_PHYS (np, abort)); retv = SCSI_ABORT_PENDING; break; default: retv = SCSI_ABORT_NOT_RUNNING; break; } /* ** If there are no requests, the script ** processor will sleep on SEL_WAIT_RESEL. ** Let's wake it up, since it may have to work. */ OUTB (nc_istat, SIGP); return retv; } #endif static void ncr_detach(struct ncb *np) { struct ccb *cp; Loading Loading @@ -5421,27 +5307,6 @@ static void ncr_getsync(struct ncb *np, u_char sfac, u_char *fakp, u_char *scntl */ fak = (kpc - 1) / div_10M[div] + 1; #if 0 /* This optimization does not seem very useful */ per = (fak * div_10M[div]) / clk; /* ** Why not to try the immediate lower divisor and to choose ** the one that allows the fastest output speed ? ** We don't want input speed too much greater than output speed. */ if (div >= 1 && fak < 8) { u_long fak2, per2; fak2 = (kpc - 1) / div_10M[div-1] + 1; per2 = (fak2 * div_10M[div-1]) / clk; if (per2 < per && fak2 <= 8) { fak = fak2; per = per2; --div; } } #endif if (fak < 4) fak = 4; /* Should never happen, too bad ... */ /* Loading Loading @@ -5479,10 +5344,6 @@ static void ncr_set_sync_wide_status (struct ncb *np, u_char target) for (cp = np->ccb; cp; cp = cp->link_ccb) { if (!cp->cmd) continue; if (scmd_id(cp->cmd) != target) continue; #if 0 cp->sync_status = tp->sval; cp->wide_status = tp->wval; #endif cp->phys.select.sel_scntl3 = tp->wval; cp->phys.select.sel_sxfer = tp->sval; } Loading Loading @@ -8104,30 +7965,6 @@ static int ncr53c8xx_bus_reset(struct scsi_cmnd *cmd) return sts; } #if 0 /* unused and broken */ static int ncr53c8xx_abort(struct scsi_cmnd *cmd) { struct ncb *np = ((struct host_data *) cmd->device->host->hostdata)->ncb; int sts; unsigned long flags; struct scsi_cmnd *done_list; printk("ncr53c8xx_abort\n"); NCR_LOCK_NCB(np, flags); sts = ncr_abort_command(np, cmd); out: done_list = np->done_list; np->done_list = NULL; NCR_UNLOCK_NCB(np, flags); ncr_flush_done_cmds(done_list); return sts; } #endif /* ** Scsi command waiting list management. Loading