From: Finn Thain <fthain@telegraphics.com.au>
To: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Michael Schmitz <schmitzmic@gmail.com>,
<linux-m68k@vger.kernel.org>, <linux-scsi@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Cc: Ondrej Zary <linux@rainbow-software.org>, Sam Creasey <sammy@sammy.net>
Subject: [PATCH v3 07/23] ncr5380: Remove BOARD_REQUIRES_NO_DELAY macro
Date: Mon, 21 Mar 2016 13:31:56 +1100 [thread overview]
Message-ID: <20160321023151.493990834@telegraphics.com.au> (raw)
In-Reply-To: 20160321023149.604138431@telegraphics.com.au
[-- Attachment #1: ncr5380-io_recovery_delay --]
[-- Type: text/plain, Size: 3125 bytes --]
The io_recovery_delay macro is intended to insert a microsecond delay
between the chip register accesses that begin a DMA operation. This
is reportedly needed for some ISA boards.
Reverse the sense of the macro test so that in the common case,
where no delay is required, drivers need not define the macro.
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Tested-by: Michael Schmitz <schmitzmic@gmail.com>
---
drivers/scsi/NCR5380.c | 18 ++++++++----------
drivers/scsi/dtc.h | 2 ++
drivers/scsi/g_NCR5380.h | 2 ++
drivers/scsi/t128.h | 2 ++
4 files changed, 14 insertions(+), 10 deletions(-)
Index: linux/drivers/scsi/NCR5380.c
===================================================================
--- linux.orig/drivers/scsi/NCR5380.c 2016-03-21 13:31:16.000000000 +1100
+++ linux/drivers/scsi/NCR5380.c 2016-03-21 13:31:20.000000000 +1100
@@ -39,12 +39,6 @@
* tagged queueing)
*/
-#ifdef BOARD_REQUIRES_NO_DELAY
-#define io_recovery_delay(x)
-#else
-#define io_recovery_delay(x) udelay(x)
-#endif
-
/*
* Design
*
@@ -150,6 +144,10 @@
* possible) function may be used.
*/
+#ifndef NCR5380_io_delay
+#define NCR5380_io_delay(x)
+#endif
+
static int do_abort(struct Scsi_Host *);
static void do_reset(struct Scsi_Host *);
@@ -1468,14 +1466,14 @@ static int NCR5380_transfer_dma(struct S
*/
if (p & SR_IO) {
- io_recovery_delay(1);
+ NCR5380_io_delay(1);
NCR5380_write(START_DMA_INITIATOR_RECEIVE_REG, 0);
} else {
- io_recovery_delay(1);
+ NCR5380_io_delay(1);
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_DATA);
- io_recovery_delay(1);
+ NCR5380_io_delay(1);
NCR5380_write(START_DMA_SEND_REG, 0);
- io_recovery_delay(1);
+ NCR5380_io_delay(1);
}
/*
Index: linux/drivers/scsi/dtc.h
===================================================================
--- linux.orig/drivers/scsi/dtc.h 2016-03-21 13:31:16.000000000 +1100
+++ linux/drivers/scsi/dtc.h 2016-03-21 13:31:20.000000000 +1100
@@ -28,6 +28,8 @@
#define NCR5380_bus_reset dtc_bus_reset
#define NCR5380_info dtc_info
+#define NCR5380_io_delay(x) udelay(x)
+
/* 15 12 11 10
1001 1100 0000 0000 */
Index: linux/drivers/scsi/g_NCR5380.h
===================================================================
--- linux.orig/drivers/scsi/g_NCR5380.h 2016-03-21 13:31:16.000000000 +1100
+++ linux/drivers/scsi/g_NCR5380.h 2016-03-21 13:31:20.000000000 +1100
@@ -71,6 +71,8 @@
#define NCR5380_pwrite generic_NCR5380_pwrite
#define NCR5380_info generic_NCR5380_info
+#define NCR5380_io_delay(x) udelay(x)
+
#define BOARD_NCR5380 0
#define BOARD_NCR53C400 1
#define BOARD_NCR53C400A 2
Index: linux/drivers/scsi/t128.h
===================================================================
--- linux.orig/drivers/scsi/t128.h 2016-03-21 13:31:16.000000000 +1100
+++ linux/drivers/scsi/t128.h 2016-03-21 13:31:20.000000000 +1100
@@ -84,6 +84,8 @@
#define NCR5380_bus_reset t128_bus_reset
#define NCR5380_info t128_info
+#define NCR5380_io_delay(x) udelay(x)
+
/* 15 14 12 10 7 5 3
1101 0100 1010 1000 */
next prev parent reply other threads:[~2016-03-21 4:10 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-21 2:31 [PATCH v3 00/23] ncr5380: Eliminate macros, reduce code duplication, fix bugs etc Finn Thain
2016-03-21 2:31 ` [PATCH v3 01/23] g_ncr5380: Remove CONFIG_SCSI_GENERIC_NCR53C400 Finn Thain
2016-03-21 2:31 ` [PATCH v3 02/23] ncr5380: Remove FLAG_NO_PSEUDO_DMA where possible Finn Thain
2016-03-21 2:31 ` [PATCH v3 03/23] ncr5380: Remove REAL_DMA and REAL_DMA_POLL macros Finn Thain
2016-03-21 2:31 ` [PATCH v3 04/23] atari_NCR5380: Remove DMA_MIN_SIZE macro Finn Thain
2016-03-23 7:27 ` Hannes Reinecke
2016-03-21 2:31 ` [PATCH v3 05/23] ncr5380: Disable the DMA errata workaround flag by default Finn Thain
2016-03-21 2:31 ` [PATCH v3 06/23] ncr5380: Remove PSEUDO_DMA macro Finn Thain
2016-03-21 2:31 ` Finn Thain [this message]
2016-03-21 2:31 ` [PATCH v3 08/23] ncr5380: Use DMA hooks for PDMA Finn Thain
2016-03-21 2:31 ` [PATCH v3 09/23] ncr5380: Adopt uniform DMA setup convention Finn Thain
2016-03-21 2:31 ` [PATCH v3 10/23] ncr5380: Merge DMA implementation from atari_NCR5380 core driver Finn Thain
2016-03-21 2:32 ` [PATCH v3 11/23] atari_scsi: Adopt NCR5380.c " Finn Thain
2016-03-21 2:32 ` [PATCH v3 12/23] sun3_scsi: " Finn Thain
2016-03-21 2:32 ` [PATCH v3 13/23] ncr5380: Remove disused atari_NCR5380.c " Finn Thain
2016-03-21 2:32 ` [PATCH v3 14/23] ncr5380: Reduce max_lun limit Finn Thain
2016-03-23 7:28 ` Hannes Reinecke
2016-03-21 2:32 ` [PATCH v3 15/23] dmx3191d: Drop max_sectors limit Finn Thain
2016-03-21 2:32 ` [PATCH v3 16/23] ncr5380: Fix register decoding for debugging Finn Thain
2016-03-21 2:32 ` [PATCH v3 17/23] ncr5380: Remove remaining register storage qualifiers Finn Thain
2016-03-21 2:32 ` [PATCH v3 18/23] ncr5380: Remove DONT_USE_INTR and AUTOPROBE_IRQ macros Finn Thain
2016-03-21 2:32 ` [PATCH v3 19/23] ncr5380: Update usage documentation Finn Thain
2016-03-21 2:32 ` [PATCH v3 20/23] atari_scsi: Set a reasonable default for cmd_per_lun Finn Thain
2016-03-23 7:28 ` Hannes Reinecke
2016-03-21 2:32 ` [PATCH v3 21/23] atari_scsi: Allow can_queue to be increased for Falcon Finn Thain
2016-03-21 2:32 ` [PATCH v3 22/23] mac_scsi: Fix pseudo DMA implementation Finn Thain
2016-03-21 2:32 ` [PATCH v3 23/23] ncr5380: Call complete_cmd() for disconnected commands on bus reset Finn Thain
2016-03-23 7:29 ` Hannes Reinecke
2016-03-22 22:24 ` [PATCH v3 00/23] ncr5380: Eliminate macros, reduce code duplication, fix bugs etc Ondrej Zary
2016-03-23 1:35 ` Finn Thain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160321023151.493990834@telegraphics.com.au \
--to=fthain@telegraphics.com.au \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux@rainbow-software.org \
--cc=martin.petersen@oracle.com \
--cc=sammy@sammy.net \
--cc=schmitzmic@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox