diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c index ba51699827063597407e096d73d25f50d5bc7b50..6943dd6b9b56edade66fea306b3a425c2a2d9d85 100644 --- a/drivers/scsi/sun3_scsi.c +++ b/drivers/scsi/sun3_scsi.c @@ -33,18 +33,42 @@ #include #include -/* dma on! */ -#define REAL_DMA - #include #include "sun3_scsi.h" -#include "NCR5380.h" -extern int sun3_map_test(unsigned long, char *); +/* Definitions for the core NCR5380 driver. */ -/*#define RESET_BOOT */ +#define REAL_DMA +#define RESET_RUN_DONE /* #define SUPPORT_TAGS */ +/* #define MAX_TAGS 32 */ + +#define NCR5380_implementation_fields /* none */ + +#define NCR5380_read(reg) sun3scsi_read(reg) +#define NCR5380_write(reg, value) sun3scsi_write(reg, value) + +#define NCR5380_queue_command sun3scsi_queue_command +#define NCR5380_bus_reset sun3scsi_bus_reset +#define NCR5380_abort sun3scsi_abort +#define NCR5380_show_info sun3scsi_show_info +#define NCR5380_info sun3scsi_info + +#define NCR5380_dma_read_setup(instance, data, count) \ + sun3scsi_dma_setup(data, count, 0) +#define NCR5380_dma_write_setup(instance, data, count) \ + sun3scsi_dma_setup(data, count, 1) +#define NCR5380_dma_residual(instance) \ + sun3scsi_dma_residual(instance) +#define NCR5380_dma_xfer_len(instance, cmd, phase) \ + sun3scsi_dma_xfer_len(cmd->SCp.this_residual, cmd, !((phase) & SR_IO)) + +#include "NCR5380.h" + + +extern int sun3_map_test(unsigned long, char *); + #ifdef SUN3_SCSI_VME #define ENABLE_IRQ() #else @@ -65,9 +89,7 @@ module_param(setup_use_tagged_queuing, int, 0); static int setup_hostid = -1; module_param(setup_hostid, int, 0); -static struct scsi_cmnd *sun3_dma_setup_done = NULL; - -#define RESET_RUN_DONE +/* #define RESET_BOOT */ #define AFTER_RESET_DELAY (HZ/2) @@ -80,6 +102,7 @@ static struct scsi_cmnd *sun3_dma_setup_done = NULL; /* minimum number of bytes to do dma on */ #define SUN3_DMA_MINSIZE 128 +static struct scsi_cmnd *sun3_dma_setup_done; static unsigned char *sun3_scsi_regp; static volatile struct sun3_dma_regs *dregs; static struct sun3_udc_regs *udc_regs; @@ -131,9 +154,6 @@ static inline void sun3_udc_write(unsigned short val, unsigned char reg) static void sun3_scsi_reset_boot(struct Scsi_Host *instance) { unsigned long end; - - NCR5380_local_declare(); - NCR5380_setup(instance); /* * Do a SCSI reset to clean up the bus during initialization. No @@ -210,7 +230,6 @@ static irqreturn_t scsi_sun3_intr(int irq, void *dummy) void sun3_sun3_debug (void) { unsigned long flags; - NCR5380_local_declare(); if (default_instance) { local_irq_save(flags); diff --git a/drivers/scsi/sun3_scsi.h b/drivers/scsi/sun3_scsi.h index 653aab113a218607a7b1e869ee3758ed0f6f6ff9..d22745fae328d46804d85bd432c7235320708469 100644 --- a/drivers/scsi/sun3_scsi.h +++ b/drivers/scsi/sun3_scsi.h @@ -18,31 +18,6 @@ #ifndef SUN3_SCSI_H #define SUN3_SCSI_H -#define MAX_TAGS 32 - -#define NCR5380_implementation_fields /* none */ - -#define NCR5380_local_declare() \ - struct Scsi_Host *_instance - -#define NCR5380_setup(instance) \ - _instance = instance - -#define NCR5380_read(reg) sun3scsi_read(reg) -#define NCR5380_write(reg, value) sun3scsi_write(reg, value) - -#define NCR5380_queue_command sun3scsi_queue_command -#define NCR5380_bus_reset sun3scsi_bus_reset -#define NCR5380_abort sun3scsi_abort -#define NCR5380_show_info sun3scsi_show_info -#define NCR5380_info sun3scsi_info -#define NCR5380_dma_xfer_len(i, cmd, phase) \ - sun3scsi_dma_xfer_len(cmd->SCp.this_residual,cmd,((phase) & SR_IO) ? 0 : 1) - -#define NCR5380_dma_write_setup(instance, data, count) sun3scsi_dma_setup(data, count, 1) -#define NCR5380_dma_read_setup(instance, data, count) sun3scsi_dma_setup(data, count, 0) -#define NCR5380_dma_residual sun3scsi_dma_residual - /* additional registers - mainly DMA control regs */ /* these start at regbase + 8 -- directly after the NCR regs */ struct sun3_dma_regs {