diff options
author | Finn Thain <fthain@telegraphics.com.au> | 2016-01-03 08:05:39 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-01-07 05:43:00 +0300 |
commit | d1af9c7f4a69824440d2d755ddc3b861712ef024 (patch) | |
tree | 9bc2ce3c4a693a566352d46cb5ebaa4875fa3ea3 | |
parent | 010e89d18c4e66ab69d64bab439eba988d16fcc9 (diff) | |
download | linux-d1af9c7f4a69824440d2d755ddc3b861712ef024.tar.xz |
ncr5380: Remove UNSAFE macro
Configuring core drivers using macros like this one prevents re-unifying
the core driver forks, and prevents implementing the core driver as a
library or a platform driver.
The UNSAFE macro in particular is a poor workaround for the problem of
interrupt latency. Releasing the locks complicates things because then we
would have to handle the possibility of EH handler invocation during a
PDMA transfer.
The comments say that instead of using this macro, "you're going to be
better off twiddling with transfersize". I agree. Remove this stuff.
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Tested-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r-- | drivers/scsi/NCR5380.c | 15 | ||||
-rw-r--r-- | drivers/scsi/dtc.c | 2 | ||||
-rw-r--r-- | drivers/scsi/pas16.c | 1 |
3 files changed, 0 insertions, 18 deletions
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c index 8ff59509585c..1a6562b94bf7 100644 --- a/drivers/scsi/NCR5380.c +++ b/drivers/scsi/NCR5380.c @@ -195,12 +195,6 @@ * rely on phase mismatch and EOP interrupts to determine end * of phase. * - * UNSAFE - leave interrupts enabled during pseudo-DMA transfers. You - * only really want to use this if you're having a problem with - * dropped characters during high speed communications, and even - * then, you're going to be better off twiddling with transfersize - * in the high level code. - * * Defaults for these will be provided although the user may want to adjust * these to allocate CPU resources to the SCSI driver or "real" code. * @@ -554,9 +548,6 @@ static void prepare_info(struct Scsi_Host *instance) #ifdef PSEUDO_DMA "PSEUDO_DMA " #endif -#ifdef UNSAFE - "UNSAFE " -#endif ""); } @@ -1582,9 +1573,6 @@ static int NCR5380_transfer_dma(struct Scsi_Host *instance, unsigned char *phase * before the setting of DMA mode to after transfer of the last byte. */ -#if defined(PSEUDO_DMA) && defined(UNSAFE) - spin_unlock_irq(instance->host_lock); -#endif /* KLL May need eop and parity in 53c400 */ if (hostdata->flags & FLAG_NCR53C400) NCR5380_write(MODE_REG, MR_BASE | MR_DMA_MODE | @@ -1793,9 +1781,6 @@ static int NCR5380_transfer_dma(struct Scsi_Host *instance, unsigned char *phase *data = d + c; *count = 0; *phase = NCR5380_read(STATUS_REG) & PHASE_MASK; -#if defined(PSEUDO_DMA) && defined(UNSAFE) - spin_lock_irq(instance->host_lock); -#endif /* defined(REAL_DMA_POLL) */ return foo; #endif /* def REAL_DMA */ } diff --git a/drivers/scsi/dtc.c b/drivers/scsi/dtc.c index 010d9b13aae7..60bffb34ecfb 100644 --- a/drivers/scsi/dtc.c +++ b/drivers/scsi/dtc.c @@ -1,7 +1,5 @@ - #define PSEUDO_DMA #define DONT_USE_INTR -#define UNSAFE /* Leave interrupts enabled during pseudo-dma I/O */ #define DMA_WORKS_RIGHT diff --git a/drivers/scsi/pas16.c b/drivers/scsi/pas16.c index 5e57ee01093c..4570536187d8 100644 --- a/drivers/scsi/pas16.c +++ b/drivers/scsi/pas16.c @@ -1,5 +1,4 @@ #define PSEUDO_DMA -#define UNSAFE /* Not unsafe for PAS16 -- use it */ /* * This driver adapted from Drew Eckhardt's Trantor T128 driver |