All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20160103050502.371803537@telegraphics.com.au>

diff --git a/a/1.txt b/N1/1.txt
index 32ea4f1..dff9b25 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,808 +1,3 @@
-The NCR5380_local_declare and NCR5380_setup macros exist to define and
-initialize a particular local variable, to provide the address of the
-chip registers needed for the driver's implementation of its
-NCR5380_read/write register access macros.
-
-In cumana_1 and macscsi, these macros generate pointless code like this,
-	struct Scsi_Host *_instance;
-	_instance = instance;
-
-In pas16, the use of NCR5380_read/write in pas16_hw_detect() requires that
-the io_port local variable has been defined and initialized, but the
-NCR5380_local_declare and NCR5380_setup macros can't be used for that
-purpose because the Scsi_Host struct has not yet been instantiated.
-
-Moreover, these macros were removed from atari_NCR5380.c long ago and
-now they constitute yet another discrepancy between the two core driver
-forks.
-
-Remove these "optimizations".
-
-Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
-Reviewed-by: Hannes Reinecke <hare@suse.com>
-Tested-by: Ondrej Zary <linux@rainbow-software.org>
-
----
-
-Any performance penalty is highly unlikely given the algorithms involved
-and the improvements made to compilers over the last two decades. (And
-I'd probably accept some loss anyway given the maintainability benefit.)
-
-Following the example of atari_NCR5380.c, the Scsi_Host pointer is now
-always named "instance", and the NCR5380_read/write macros depend on this.
-I think it is poor style to hard-code the identifier "instance" in these
-macros but it is actually an improvement -- previously each NCR5380 driver
-named a different local variable in its macro definitions.
-
-Eventually, the NCR5380_read/write macros may have to become function
-calls if this is to become a platform driver or a library. The instance
-pointer or hostdata pointer will then have to be passed as an argument.
-
-This patch is a step in that direction, in that it rewrites the
-NCR5380_read/write macros in terms of hostdata and removes the
-NCR5380_read/write usage from pas16_hw_detect() where there is no
-Scsi_Host instance as yet.
-
----
- drivers/scsi/NCR5380.c      |   60 ++++++--------------------------------------
- drivers/scsi/arm/cumana_1.c |    6 +---
- drivers/scsi/arm/oak.c      |    9 +++---
- drivers/scsi/dmx3191d.c     |    6 +---
- drivers/scsi/dtc.c          |   14 +++-------
- drivers/scsi/dtc.h          |    9 +-----
- drivers/scsi/g_NCR5380.c    |   27 ++++++++++---------
- drivers/scsi/g_NCR5380.h    |   30 ++++++++--------------
- drivers/scsi/mac_scsi.c     |   15 +----------
- drivers/scsi/pas16.c        |   16 +++++------
- drivers/scsi/pas16.h        |   11 +-------
- drivers/scsi/t128.c         |   26 +++++++++----------
- drivers/scsi/t128.h         |    9 +-----
- 13 files changed, 77 insertions(+), 161 deletions(-)
-
-Index: linux/drivers/scsi/NCR5380.c
-===================================================================
---- linux.orig/drivers/scsi/NCR5380.c	2016-01-03 16:02:42.000000000 +1100
-+++ linux/drivers/scsi/NCR5380.c	2016-01-03 16:02:56.000000000 +1100
-@@ -230,11 +230,6 @@
-  * USLEEP_POLL - amount of time, in jiffies, to poll
-  *
-  * These macros MUST be defined :
-- * NCR5380_local_declare() - declare any local variables needed for your
-- *      transfer routines.
-- *
-- * NCR5380_setup(instance) - initialize any local variables needed from a given
-- *      instance of the host adapter for NCR5380_{read,write,pread,pwrite}
-  * 
-  * NCR5380_read(register)  - read from the specified register
-  *
-@@ -267,8 +262,8 @@
-  * possible) function may be used.
-  */
- 
--static int do_abort(struct Scsi_Host *host);
--static void do_reset(struct Scsi_Host *host);
-+static int do_abort(struct Scsi_Host *);
-+static void do_reset(struct Scsi_Host *);
- 
- /*
-  *	initialize_SCp		-	init the scsi pointer field
-@@ -313,12 +308,9 @@ static inline void initialize_SCp(struct
-  
- static int NCR5380_poll_politely(struct Scsi_Host *instance, int reg, int bit, int val, int t)
- {
--	NCR5380_local_declare();
- 	int n = 500;		/* At about 8uS a cycle for the cpu access */
- 	unsigned long end = jiffies + t;
- 	int r;
--	
--	NCR5380_setup(instance);
- 
- 	while( n-- > 0)
- 	{
-@@ -406,9 +398,7 @@ mrs[] = {
- 
- static void NCR5380_print(struct Scsi_Host *instance)
- {
--	NCR5380_local_declare();
- 	unsigned char status, data, basr, mr, icr, i;
--	NCR5380_setup(instance);
- 
- 	data = NCR5380_read(CURRENT_SCSI_DATA_REG);
- 	status = NCR5380_read(STATUS_REG);
-@@ -447,10 +437,8 @@ static void NCR5380_print(struct Scsi_Ho
- 
- static void NCR5380_print_phase(struct Scsi_Host *instance)
- {
--	NCR5380_local_declare();
- 	unsigned char status;
- 	int i;
--	NCR5380_setup(instance);
- 
- 	status = NCR5380_read(STATUS_REG);
- 	if (!(status & SR_REQ))
-@@ -566,11 +554,9 @@ static irqreturn_t __init probe_intr(int
- static int __init __maybe_unused NCR5380_probe_irq(struct Scsi_Host *instance,
- 						int possible)
- {
--	NCR5380_local_declare();
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
- 	unsigned long timeout;
- 	int trying_irqs, i, mask;
--	NCR5380_setup(instance);
- 
- 	for (trying_irqs = 0, i = 1, mask = 2; i < 16; ++i, mask <<= 1)
- 		if ((mask & possible) && (request_irq(i, &probe_intr, 0, "NCR-probe", NULL) == 0))
-@@ -791,7 +777,6 @@ static void lprint_opcode(int opcode, st
- 
- static int NCR5380_init(struct Scsi_Host *instance, int flags)
- {
--	NCR5380_local_declare();
- 	int i, pass;
- 	unsigned long timeout;
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
-@@ -808,8 +793,6 @@ static int NCR5380_init(struct Scsi_Host
- 		instance->NCR5380_instance_name += NCR53C400_address_adjust;
- #endif
- 
--	NCR5380_setup(instance);
--
- 	hostdata->aborted = 0;
- 	hostdata->id_mask = 1 << instance->this_id;
- 	for (i = hostdata->id_mask; i <= 0x80; i <<= 1)
-@@ -1100,7 +1083,6 @@ static void NCR5380_main(struct work_str
- 
- static irqreturn_t NCR5380_intr(int dummy, void *dev_id)
- {
--	NCR5380_local_declare();
- 	struct Scsi_Host *instance = dev_id;
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
- 	int done;
-@@ -1114,7 +1096,6 @@ static irqreturn_t NCR5380_intr(int dumm
- 		done = 1;
- 		spin_lock_irqsave(instance->host_lock, flags);
- 		/* Look for pending interrupts */
--		NCR5380_setup(instance);
- 		basr = NCR5380_read(BUS_AND_STATUS_REG);
- 		/* XXX dispatch to appropriate routine if found and done=0 */
- 		if (basr & BASR_IRQ) {
-@@ -1205,7 +1186,6 @@ static irqreturn_t NCR5380_intr(int dumm
-  
- static int NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd)
- {
--	NCR5380_local_declare();
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
- 	unsigned char tmp[3], phase;
- 	unsigned char *data;
-@@ -1213,7 +1193,6 @@ static int NCR5380_select(struct Scsi_Ho
- 	unsigned long timeout;
- 	unsigned char value;
- 	int err;
--	NCR5380_setup(instance);
- 
- 	if (hostdata->selecting)
- 		goto part2;
-@@ -1487,7 +1466,6 @@ failed:
-  */
- 
- static int NCR5380_transfer_pio(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data) {
--	NCR5380_local_declare();
- 	unsigned char p = *phase, tmp;
- 	int c = *count;
- 	unsigned char *d = *data;
-@@ -1496,7 +1474,6 @@ static int NCR5380_transfer_pio(struct S
- 	 */
- 	int break_allowed = 0;
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
--	NCR5380_setup(instance);
- 
- 	if (!(p & SR_IO))
- 		dprintk(NDEBUG_PIO, "scsi%d : pio write %d bytes\n", instance->host_no, c);
-@@ -1623,10 +1600,8 @@ static int NCR5380_transfer_pio(struct S
-  *	Locks: caller holds queue lock
-  */
-  
--static void do_reset(struct Scsi_Host *host) {
--	NCR5380_local_declare();
--	NCR5380_setup(host);
--
-+static void do_reset(struct Scsi_Host *instance)
-+{
- 	NCR5380_write(TARGET_COMMAND_REG, PHASE_SR_TO_TCR(NCR5380_read(STATUS_REG) & PHASE_MASK));
- 	NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_RST);
- 	udelay(25);
-@@ -1645,13 +1620,11 @@ static void do_reset(struct Scsi_Host *h
-  *	FIXME: sort this out and get new_eh running
-  */
- 
--static int do_abort(struct Scsi_Host *host) {
--	NCR5380_local_declare();
-+static int do_abort(struct Scsi_Host *instance)
-+{
- 	unsigned char *msgptr, phase, tmp;
- 	int len;
- 	int rc;
--	NCR5380_setup(host);
--
- 
- 	/* Request message out phase */
- 	NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);
-@@ -1666,7 +1639,7 @@ static int do_abort(struct Scsi_Host *ho
- 	 * the target sees, so we just handshake.
- 	 */
- 
--	rc = NCR5380_poll_politely(host, STATUS_REG, SR_REQ, SR_REQ, 60 * HZ);
-+	rc = NCR5380_poll_politely(instance, STATUS_REG, SR_REQ, SR_REQ, 60 * HZ);
- 	
- 	if(rc < 0)
- 		return -1;
-@@ -1677,7 +1650,7 @@ static int do_abort(struct Scsi_Host *ho
- 
- 	if ((tmp & PHASE_MASK) != PHASE_MSGOUT) {
- 		NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN | ICR_ASSERT_ACK);
--		rc = NCR5380_poll_politely(host, STATUS_REG, SR_REQ, 0, 3*HZ);
-+		rc = NCR5380_poll_politely(instance, STATUS_REG, SR_REQ, 0, 3 * HZ);
- 		NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);
- 		if(rc == -1)
- 			return -1;
-@@ -1686,7 +1659,7 @@ static int do_abort(struct Scsi_Host *ho
- 	msgptr = &tmp;
- 	len = 1;
- 	phase = PHASE_MSGOUT;
--	NCR5380_transfer_pio(host, &phase, &len, &msgptr);
-+	NCR5380_transfer_pio(instance, &phase, &len, &msgptr);
- 
- 	/*
- 	 * If we got here, and the command completed successfully,
-@@ -1719,7 +1692,6 @@ static int do_abort(struct Scsi_Host *ho
- 
- 
- static int NCR5380_transfer_dma(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data) {
--	NCR5380_local_declare();
- 	register int c = *count;
- 	register unsigned char p = *phase;
- 	register unsigned char *d = *data;
-@@ -1732,8 +1704,6 @@ static int NCR5380_transfer_dma(struct S
- 
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
- 
--	NCR5380_setup(instance);
--
- 	if ((tmp = (NCR5380_read(STATUS_REG) & PHASE_MASK)) != p) {
- 		*phase = tmp;
- 		return -1;
-@@ -2000,7 +1970,6 @@ static int NCR5380_transfer_dma(struct S
-  */
- 
- static void NCR5380_information_transfer(struct Scsi_Host *instance) {
--	NCR5380_local_declare();
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *)instance->hostdata;
- 	unsigned char msgout = NOP;
- 	int sink = 0;
-@@ -2014,8 +1983,6 @@ static void NCR5380_information_transfer
- 	/* RvC: we need to set the end of the polling time */
- 	unsigned long poll_time = jiffies + USLEEP_POLL;
- 
--	NCR5380_setup(instance);
--
- 	while (1) {
- 		tmp = NCR5380_read(STATUS_REG);
- 		/* We only have a valid SCSI phase when REQ is asserted */
-@@ -2406,7 +2373,6 @@ static void NCR5380_information_transfer
-  */
- 
- static void NCR5380_reselect(struct Scsi_Host *instance) {
--	NCR5380_local_declare();
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *)
- 	 instance->hostdata;
- 	unsigned char target_mask;
-@@ -2416,7 +2382,6 @@ static void NCR5380_reselect(struct Scsi
- 	unsigned char *data;
- 	struct scsi_cmnd *tmp = NULL, *prev;
- 	int abort = 0;
--	NCR5380_setup(instance);
- 
- 	/*
- 	 * Disable arbitration, etc. since the host adapter obviously
-@@ -2525,10 +2490,8 @@ static void NCR5380_reselect(struct Scsi
- 
- #ifdef REAL_DMA
- static void NCR5380_dma_complete(NCR5380_instance * instance) {
--	NCR5380_local_declare();
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
- 	int transferred;
--	NCR5380_setup(instance);
- 
- 	/*
- 	 * XXX this might not be right.
-@@ -2581,7 +2544,6 @@ static void NCR5380_dma_complete(NCR5380
- 
- static int NCR5380_abort(struct scsi_cmnd *cmd)
- {
--	NCR5380_local_declare();
- 	struct Scsi_Host *instance = cmd->device->host;
- 	struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
- 	struct scsi_cmnd *tmp, **prev;
-@@ -2590,8 +2552,6 @@ static int NCR5380_abort(struct scsi_cmn
- 
- 	NCR5380_print_status(instance);
- 
--	NCR5380_setup(instance);
--
- 	dprintk(NDEBUG_ABORT, "scsi%d : abort called\n", instance->host_no);
- 	dprintk(NDEBUG_ABORT, "        basr 0x%X, sr 0x%X\n", NCR5380_read(BUS_AND_STATUS_REG), NCR5380_read(STATUS_REG));
- 
-@@ -2737,8 +2697,6 @@ static int NCR5380_bus_reset(struct scsi
- {
- 	struct Scsi_Host *instance = cmd->device->host;
- 
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
- 	NCR5380_print_status(instance);
- 
- 	spin_lock_irq(instance->host_lock);
-Index: linux/drivers/scsi/arm/cumana_1.c
-===================================================================
---- linux.orig/drivers/scsi/arm/cumana_1.c	2016-01-03 16:02:38.000000000 +1100
-+++ linux/drivers/scsi/arm/cumana_1.c	2016-01-03 16:02:56.000000000 +1100
-@@ -20,10 +20,8 @@
- #define PSEUDO_DMA
- 
- #define priv(host)			((struct NCR5380_hostdata *)(host)->hostdata)
--#define NCR5380_local_declare()		struct Scsi_Host *_instance
--#define NCR5380_setup(instance)		_instance = instance
--#define NCR5380_read(reg)		cumanascsi_read(_instance, reg)
--#define NCR5380_write(reg, value)	cumanascsi_write(_instance, reg, value)
-+#define NCR5380_read(reg)		cumanascsi_read(instance, reg)
-+#define NCR5380_write(reg, value)	cumanascsi_write(instance, reg, value)
- #define NCR5380_intr			cumanascsi_intr
- #define NCR5380_queue_command		cumanascsi_queue_command
- #define NCR5380_info			cumanascsi_info
-Index: linux/drivers/scsi/arm/oak.c
-===================================================================
---- linux.orig/drivers/scsi/arm/oak.c	2016-01-03 16:02:38.000000000 +1100
-+++ linux/drivers/scsi/arm/oak.c	2016-01-03 16:02:56.000000000 +1100
-@@ -20,11 +20,12 @@
- #define DONT_USE_INTR
- 
- #define priv(host)			((struct NCR5380_hostdata *)(host)->hostdata)
--#define NCR5380_local_declare()		void __iomem *_base
--#define NCR5380_setup(host)		_base = priv(host)->base
- 
--#define NCR5380_read(reg)		readb(_base + ((reg) << 2))
--#define NCR5380_write(reg, value)	writeb(value, _base + ((reg) << 2))
-+#define NCR5380_read(reg) \
-+	readb(priv(instance)->base + ((reg) << 2))
-+#define NCR5380_write(reg, value) \
-+	writeb(value, priv(instance)->base + ((reg) << 2))
-+
- #define NCR5380_queue_command		oakscsi_queue_command
- #define NCR5380_info			oakscsi_info
- #define NCR5380_show_info		oakscsi_show_info
-Index: linux/drivers/scsi/dmx3191d.c
-===================================================================
---- linux.orig/drivers/scsi/dmx3191d.c	2016-01-03 16:02:38.000000000 +1100
-+++ linux/drivers/scsi/dmx3191d.c	2016-01-03 16:02:56.000000000 +1100
-@@ -36,12 +36,10 @@
- 
- #define DONT_USE_INTR
- 
--#define NCR5380_read(reg)		inb(port + reg)
--#define NCR5380_write(reg, value)	outb(value, port + reg)
-+#define NCR5380_read(reg)		inb(instance->io_port + reg)
-+#define NCR5380_write(reg, value)	outb(value, instance->io_port + reg)
- 
- #define NCR5380_implementation_fields	/* none */
--#define NCR5380_local_declare()		unsigned int port
--#define NCR5380_setup(instance)		port = instance->io_port
- 
- /*
-  * Includes needed for NCR5380.[ch] (XXX: Move them to NCR5380.h)
-Index: linux/drivers/scsi/dtc.c
-===================================================================
---- linux.orig/drivers/scsi/dtc.c	2016-01-03 16:02:47.000000000 +1100
-+++ linux/drivers/scsi/dtc.c	2016-01-03 16:02:56.000000000 +1100
-@@ -325,8 +325,6 @@ static inline int NCR5380_pread(struct S
- 	unsigned char *d = dst;
- 	int i;			/* For counting time spent in the poll-loop */
- 	struct NCR5380_hostdata *hostdata = shost_priv(instance);
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
- 
- 	i = 0;
- 	NCR5380_read(RESET_PARITY_INTERRUPT_REG);
-@@ -342,7 +340,7 @@ static inline int NCR5380_pread(struct S
- 		while (NCR5380_read(DTC_CONTROL_REG) & CSR_HOST_BUF_NOT_RDY)
- 			++i;
- 		rtrc(3);
--		memcpy_fromio(d, base + DTC_DATA_BUF, 128);
-+		memcpy_fromio(d, hostdata->base + DTC_DATA_BUF, 128);
- 		d += 128;
- 		len -= 128;
- 		rtrc(7);
-@@ -377,8 +375,6 @@ static inline int NCR5380_pwrite(struct
- {
- 	int i;
- 	struct NCR5380_hostdata *hostdata = shost_priv(instance);
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
- 
- 	NCR5380_read(RESET_PARITY_INTERRUPT_REG);
- 	NCR5380_write(MODE_REG, MR_ENABLE_EOP_INTR | MR_DMA_MODE);
-@@ -394,7 +390,7 @@ static inline int NCR5380_pwrite(struct
- 		while (NCR5380_read(DTC_CONTROL_REG) & CSR_HOST_BUF_NOT_RDY)
- 			++i;
- 		rtrc(3);
--		memcpy_toio(base + DTC_DATA_BUF, src, 128);
-+		memcpy_toio(hostdata->base + DTC_DATA_BUF, src, 128);
- 		src += 128;
- 		len -= 128;
- 	}
-@@ -420,15 +416,15 @@ MODULE_LICENSE("GPL");
- 
- static int dtc_release(struct Scsi_Host *shost)
- {
--	NCR5380_local_declare();
--	NCR5380_setup(shost);
-+	struct NCR5380_hostdata *hostdata = shost_priv(shost);
-+
- 	if (shost->irq != NO_IRQ)
- 		free_irq(shost->irq, shost);
- 	NCR5380_exit(shost);
- 	if (shost->io_port && shost->n_io_port)
- 		release_region(shost->io_port, shost->n_io_port);
- 	scsi_unregister(shost);
--	iounmap(base);
-+	iounmap(hostdata->base);
- 	return 0;
- }
- 
-Index: linux/drivers/scsi/dtc.h
-===================================================================
---- linux.orig/drivers/scsi/dtc.h	2016-01-03 16:02:47.000000000 +1100
-+++ linux/drivers/scsi/dtc.h	2016-01-03 16:02:56.000000000 +1100
-@@ -21,13 +21,8 @@
- #define NCR5380_implementation_fields \
-     void __iomem *base
- 
--#define NCR5380_local_declare() \
--    void __iomem *base
--
--#define NCR5380_setup(instance) \
--    base = ((struct NCR5380_hostdata *)(instance)->hostdata)->base
--
--#define DTC_address(reg) (base + DTC_5380_OFFSET + reg)
-+#define DTC_address(reg) \
-+	(((struct NCR5380_hostdata *)shost_priv(instance))->base + DTC_5380_OFFSET + reg)
- 
- #define NCR5380_read(reg) (readb(DTC_address(reg)))
- #define NCR5380_write(reg, value) (writeb(value, DTC_address(reg)))
-Index: linux/drivers/scsi/g_NCR5380.c
-===================================================================
---- linux.orig/drivers/scsi/g_NCR5380.c	2016-01-03 16:02:54.000000000 +1100
-+++ linux/drivers/scsi/g_NCR5380.c	2016-01-03 16:02:56.000000000 +1100
-@@ -459,9 +459,6 @@ static int __init generic_NCR5380_detect
-  
- static int generic_NCR5380_release_resources(struct Scsi_Host *instance)
- {
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
--	
- 	if (instance->irq != NO_IRQ)
- 		free_irq(instance->irq, instance);
- 	NCR5380_exit(instance);
-@@ -520,13 +517,13 @@ generic_NCR5380_biosparam(struct scsi_de
-  
- static inline int NCR5380_pread(struct Scsi_Host *instance, unsigned char *dst, int len)
- {
-+#ifdef SCSI_G_NCR5380_MEM
-+	struct NCR5380_hostdata *hostdata = shost_priv(instance);
-+#endif
- 	int blocks = len / 128;
- 	int start = 0;
- 	int bl;
- 
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
--
- 	NCR5380_write(C400_CONTROL_STATUS_REG, CSR_BASE | CSR_TRANS_DIR);
- 	NCR5380_write(C400_BLOCK_COUNTER_REG, blocks);
- 	while (1) {
-@@ -547,7 +544,8 @@ static inline int NCR5380_pread(struct S
- 		}
- #else
- 		/* implies SCSI_G_NCR5380_MEM */
--		memcpy_fromio(dst + start, iomem + NCR53C400_host_buffer, 128);
-+		memcpy_fromio(dst + start,
-+		              hostdata->iomem + NCR53C400_host_buffer, 128);
- #endif
- 		start += 128;
- 		blocks--;
-@@ -567,7 +565,8 @@ static inline int NCR5380_pread(struct S
- 		}
- #else
- 		/* implies SCSI_G_NCR5380_MEM */
--		memcpy_fromio(dst + start, iomem + NCR53C400_host_buffer, 128);
-+		memcpy_fromio(dst + start,
-+		              hostdata->iomem + NCR53C400_host_buffer, 128);
- #endif
- 		start += 128;
- 		blocks--;
-@@ -604,14 +603,14 @@ static inline int NCR5380_pread(struct S
- 
- static inline int NCR5380_pwrite(struct Scsi_Host *instance, unsigned char *src, int len)
- {
-+#ifdef SCSI_G_NCR5380_MEM
-+	struct NCR5380_hostdata *hostdata = shost_priv(instance);
-+#endif
- 	int blocks = len / 128;
- 	int start = 0;
- 	int bl;
- 	int i;
- 
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
--
- 	NCR5380_write(C400_CONTROL_STATUS_REG, CSR_BASE);
- 	NCR5380_write(C400_BLOCK_COUNTER_REG, blocks);
- 	while (1) {
-@@ -632,7 +631,8 @@ static inline int NCR5380_pwrite(struct
- 		}
- #else
- 		/* implies SCSI_G_NCR5380_MEM */
--		memcpy_toio(iomem + NCR53C400_host_buffer, src + start, 128);
-+		memcpy_toio(hostdata->iomem + NCR53C400_host_buffer,
-+		            src + start, 128);
- #endif
- 		start += 128;
- 		blocks--;
-@@ -648,7 +648,8 @@ static inline int NCR5380_pwrite(struct
- 		}
- #else
- 		/* implies SCSI_G_NCR5380_MEM */
--		memcpy_toio(iomem + NCR53C400_host_buffer, src + start, 128);
-+		memcpy_toio(hostdata->iomem + NCR53C400_host_buffer,
-+		            src + start, 128);
- #endif
- 		start += 128;
- 		blocks--;
-Index: linux/drivers/scsi/g_NCR5380.h
-===================================================================
---- linux.orig/drivers/scsi/g_NCR5380.h	2016-01-03 16:02:54.000000000 +1100
-+++ linux/drivers/scsi/g_NCR5380.h	2016-01-03 16:02:56.000000000 +1100
-@@ -46,17 +46,12 @@
- #define NCR5380_region_size 8
- #endif
- 
--#define NCR5380_read(reg) (inb(NCR5380_map_name + (reg)))
--#define NCR5380_write(reg, value) (outb((value), (NCR5380_map_name + (reg))))
-+#define NCR5380_read(reg) \
-+	inb(instance->io_port + (reg))
-+#define NCR5380_write(reg, value) \
-+	outb(value, instance->io_port + (reg))
- 
--#define NCR5380_implementation_fields \
--    NCR5380_map_type NCR5380_map_name
--
--#define NCR5380_local_declare() \
--    register NCR5380_implementation_fields
--
--#define NCR5380_setup(instance) \
--    NCR5380_map_name = (NCR5380_map_type)((instance)->NCR5380_instance_name)
-+#define NCR5380_implementation_fields /* none */
- 
- #else 
- /* therefore SCSI_G_NCR5380_MEM */
-@@ -70,19 +65,16 @@
- #define NCR53C400_host_buffer 0x3900
- #define NCR5380_region_size 0x3a00
- 
--#define NCR5380_read(reg) readb(iomem + NCR53C400_mem_base + (reg))
--#define NCR5380_write(reg, value) writeb(value, iomem + NCR53C400_mem_base + (reg))
-+#define NCR5380_read(reg) \
-+	readb(((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \
-+	      NCR53C400_mem_base + (reg))
-+#define NCR5380_write(reg, value) \
-+	writeb(value, ((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \
-+	       NCR53C400_mem_base + (reg))
- 
- #define NCR5380_implementation_fields \
--    NCR5380_map_type NCR5380_map_name; \
-     void __iomem *iomem;
- 
--#define NCR5380_local_declare() \
--    register void __iomem *iomem
--
--#define NCR5380_setup(instance) \
--    iomem = (((struct NCR5380_hostdata *)(instance)->hostdata)->iomem)
--
- #endif
- 
- #define NCR5380_intr generic_NCR5380_intr
-Index: linux/drivers/scsi/mac_scsi.c
-===================================================================
---- linux.orig/drivers/scsi/mac_scsi.c	2016-01-03 16:02:38.000000000 +1100
-+++ linux/drivers/scsi/mac_scsi.c	2016-01-03 16:02:56.000000000 +1100
-@@ -32,11 +32,9 @@
- #define PSEUDO_DMA
- 
- #define NCR5380_implementation_fields   unsigned char *pdma_base
--#define NCR5380_local_declare()         struct Scsi_Host *_instance
--#define NCR5380_setup(instance)         _instance = instance
- 
--#define NCR5380_read(reg)               macscsi_read(_instance, reg)
--#define NCR5380_write(reg, value)       macscsi_write(_instance, reg, value)
-+#define NCR5380_read(reg)               macscsi_read(instance, reg)
-+#define NCR5380_write(reg, value)       macscsi_write(instance, reg, value)
- 
- #define NCR5380_pread                   macscsi_pread
- #define NCR5380_pwrite                  macscsi_pwrite
-@@ -129,9 +127,6 @@ static void mac_scsi_reset_boot(struct S
- {
- 	unsigned long end;
- 
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
--	
- 	/*
- 	 * Do a SCSI reset to clean up the bus during initialization. No messing
- 	 * with the queues, interrupts, or locks necessary here.
-@@ -235,9 +230,6 @@ static int macscsi_pread(struct Scsi_Hos
- 	unsigned char *d;
- 	unsigned char *s;
- 
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
--
- 	s = hostdata->pdma_base + (INPUT_DATA_REG << 4);
- 	d = dst;
- 
-@@ -329,9 +321,6 @@ static int macscsi_pwrite(struct Scsi_Ho
- 	unsigned char *s;
- 	unsigned char *d;
- 
--	NCR5380_local_declare();
--	NCR5380_setup(instance);
--
- 	s = src;
- 	d = hostdata->pdma_base + (OUTPUT_DATA_REG << 4);
- 
-Index: linux/drivers/scsi/pas16.h
-===================================================================
---- linux.orig/drivers/scsi/pas16.h	2016-01-03 16:02:54.000000000 +1100
-+++ linux/drivers/scsi/pas16.h	2016-01-03 16:02:56.000000000 +1100
-@@ -103,16 +103,9 @@
- #define CAN_QUEUE 32 
- #endif
- 
--#define NCR5380_implementation_fields \
--    volatile unsigned short io_port
-+#define NCR5380_implementation_fields /* none */
- 
--#define NCR5380_local_declare() \
--    volatile unsigned short io_port
--
--#define NCR5380_setup(instance) \
--    io_port = (instance)->io_port
--
--#define PAS16_io_port(reg) ( io_port + pas16_offset[(reg)] )
-+#define PAS16_io_port(reg) (instance->io_port + pas16_offset[(reg)])
- 
- #define NCR5380_read(reg) ( inb(PAS16_io_port(reg)) )
- #define NCR5380_write(reg, value) ( outb((value),PAS16_io_port(reg)) )
-Index: linux/drivers/scsi/t128.c
-===================================================================
---- linux.orig/drivers/scsi/t128.c	2016-01-03 16:02:47.000000000 +1100
-+++ linux/drivers/scsi/t128.c	2016-01-03 16:02:56.000000000 +1100
-@@ -248,15 +248,15 @@ found:
- 
- static int t128_release(struct Scsi_Host *shost)
- {
--	NCR5380_local_declare();
--	NCR5380_setup(shost);
-+	struct NCR5380_hostdata *hostdata = shost_priv(shost);
-+
- 	if (shost->irq != NO_IRQ)
- 		free_irq(shost->irq, shost);
- 	NCR5380_exit(shost);
- 	if (shost->io_port && shost->n_io_port)
- 		release_region(shost->io_port, shost->n_io_port);
- 	scsi_unregister(shost);
--	iounmap(base);
-+	iounmap(hostdata->base);
- 	return 0;
- }
- 
-@@ -302,14 +302,14 @@ static int t128_biosparam(struct scsi_de
-  * 	timeout.
-  */
- 
--static inline int NCR5380_pread (struct Scsi_Host *instance, unsigned char *dst,
--    int len) {
--    NCR5380_local_declare();
--    void __iomem *reg;
-+static inline int
-+NCR5380_pread(struct Scsi_Host *instance, unsigned char *dst, int len)
-+{
-+	struct NCR5380_hostdata *hostdata = shost_priv(instance);
-+	void __iomem *reg, *base = hostdata->base;
-     unsigned char *d = dst;
-     register int i = len;
- 
--    NCR5380_setup(instance);
-     reg = base + T_DATA_REG_OFFSET;
- 
- #if 0
-@@ -348,14 +348,14 @@ static inline int NCR5380_pread (struct
-  * 	timeout.
-  */
- 
--static inline int NCR5380_pwrite (struct Scsi_Host *instance, unsigned char *src,
--    int len) {
--    NCR5380_local_declare();
--    void __iomem *reg;
-+static inline int
-+NCR5380_pwrite(struct Scsi_Host *instance, unsigned char *src, int len)
-+{
-+	struct NCR5380_hostdata *hostdata = shost_priv(instance);
-+	void __iomem *reg, *base = hostdata->base;
-     unsigned char *s = src;
-     register int i = len;
- 
--    NCR5380_setup(instance);
-     reg = base + T_DATA_REG_OFFSET;
- 
- #if 0
-Index: linux/drivers/scsi/t128.h
-===================================================================
---- linux.orig/drivers/scsi/t128.h	2016-01-03 16:02:54.000000000 +1100
-+++ linux/drivers/scsi/t128.h	2016-01-03 16:02:56.000000000 +1100
-@@ -78,13 +78,8 @@
- #define NCR5380_implementation_fields \
-     void __iomem *base
- 
--#define NCR5380_local_declare() \
--    void __iomem *base
--
--#define NCR5380_setup(instance) \
--    base = ((struct NCR5380_hostdata *)(instance->hostdata))->base
--
--#define T128_address(reg) (base + T_5380_OFFSET + ((reg) * 0x20))
-+#define T128_address(reg) \
-+	(((struct NCR5380_hostdata *)shost_priv(instance))->base + T_5380_OFFSET + ((reg) * 0x20))
- 
- #define NCR5380_read(reg) readb(T128_address(reg))
- #define NCR5380_write(reg, value) writeb((value),(T128_address(reg)))
-Index: linux/drivers/scsi/pas16.c
-===================================================================
---- linux.orig/drivers/scsi/pas16.c	2016-01-03 16:02:54.000000000 +1100
-+++ linux/drivers/scsi/pas16.c	2016-01-03 16:02:56.000000000 +1100
-@@ -188,7 +188,7 @@ static void __init
- 	outb( 0x01, io_port + P_TIMEOUT_STATUS_REG_OFFSET );   /* Reset TC */
- 	outb( 0x01, io_port + WAIT_STATE );   /* 1 Wait state */
- 
--	NCR5380_read( RESET_PARITY_INTERRUPT_REG );
-+	inb(io_port + pas16_offset[RESET_PARITY_INTERRUPT_REG]);
- 
- 	/* Set the SCSI interrupt pointer without mucking up the sound
- 	 * interrupt pointer in the same byte.
-@@ -263,13 +263,13 @@ static int __init
-      * put in an additional test to try to weed them out.
-      */
- 
--    outb( 0x01, io_port + WAIT_STATE ); 	/* 1 Wait state */
--    NCR5380_write( MODE_REG, 0x20 );		/* Is it really SCSI? */
--    if( NCR5380_read( MODE_REG ) != 0x20 )	/* Write to a reg.    */
--	return 0;				/* and try to read    */
--    NCR5380_write( MODE_REG, 0x00 );		/* it back.	      */
--    if( NCR5380_read( MODE_REG ) != 0x00 )
--	return 0;
-+	outb(0x01, io_port + WAIT_STATE);             /* 1 Wait state */
-+	outb(0x20, io_port + pas16_offset[MODE_REG]); /* Is it really SCSI? */
-+	if (inb(io_port + pas16_offset[MODE_REG]) != 0x20) /* Write to a reg. */
-+		return 0;                                  /* and try to read */
-+	outb(0x00, io_port + pas16_offset[MODE_REG]);      /* it back. */
-+	if (inb(io_port + pas16_offset[MODE_REG]) != 0x00)
-+		return 0;
- 
-     return 1;
- }
+An embedded and charset-unspecified text was scrubbed...
+Name: ncr5380-eliminate-local_declare-macros
+URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160103/b9b42a55/attachment.ksh>
diff --git a/a/content_digest b/N1/content_digest
index 62d7f10..0d7895d 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,825 +1,12 @@
  "ref\020160103050501.042035135@telegraphics.com.au\0"
- "From\0Finn Thain <fthain@telegraphics.com.au>\0"
+ "From\0fthain@telegraphics.com.au (Finn Thain)\0"
  "Subject\0[PATCH v4 05/78] ncr5380: Remove NCR5380_local_declare and NCR5380_setup macros\0"
  "Date\0Sun, 03 Jan 2016 16:05:06 +1100\0"
- "To\0James E.J. Bottomley <JBottomley@odin.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
-  Russell King <linux@arm.linux.org.uk>
- " linux-arm-kernel@lists.infradead.org\0"
+ "To\0linux-arm-kernel@lists.infradead.org\0"
  "\00:1\0"
- "fn\0ncr5380-eliminate-local_declare-macros\0"
  "b\0"
- "The NCR5380_local_declare and NCR5380_setup macros exist to define and\n"
- "initialize a particular local variable, to provide the address of the\n"
- "chip registers needed for the driver's implementation of its\n"
- "NCR5380_read/write register access macros.\n"
- "\n"
- "In cumana_1 and macscsi, these macros generate pointless code like this,\n"
- "\tstruct Scsi_Host *_instance;\n"
- "\t_instance = instance;\n"
- "\n"
- "In pas16, the use of NCR5380_read/write in pas16_hw_detect() requires that\n"
- "the io_port local variable has been defined and initialized, but the\n"
- "NCR5380_local_declare and NCR5380_setup macros can't be used for that\n"
- "purpose because the Scsi_Host struct has not yet been instantiated.\n"
- "\n"
- "Moreover, these macros were removed from atari_NCR5380.c long ago and\n"
- "now they constitute yet another discrepancy between the two core driver\n"
- "forks.\n"
- "\n"
- "Remove these \"optimizations\".\n"
- "\n"
- "Signed-off-by: Finn Thain <fthain@telegraphics.com.au>\n"
- "Reviewed-by: Hannes Reinecke <hare@suse.com>\n"
- "Tested-by: Ondrej Zary <linux@rainbow-software.org>\n"
- "\n"
- "---\n"
- "\n"
- "Any performance penalty is highly unlikely given the algorithms involved\n"
- "and the improvements made to compilers over the last two decades. (And\n"
- "I'd probably accept some loss anyway given the maintainability benefit.)\n"
- "\n"
- "Following the example of atari_NCR5380.c, the Scsi_Host pointer is now\n"
- "always named \"instance\", and the NCR5380_read/write macros depend on this.\n"
- "I think it is poor style to hard-code the identifier \"instance\" in these\n"
- "macros but it is actually an improvement -- previously each NCR5380 driver\n"
- "named a different local variable in its macro definitions.\n"
- "\n"
- "Eventually, the NCR5380_read/write macros may have to become function\n"
- "calls if this is to become a platform driver or a library. The instance\n"
- "pointer or hostdata pointer will then have to be passed as an argument.\n"
- "\n"
- "This patch is a step in that direction, in that it rewrites the\n"
- "NCR5380_read/write macros in terms of hostdata and removes the\n"
- "NCR5380_read/write usage from pas16_hw_detect() where there is no\n"
- "Scsi_Host instance as yet.\n"
- "\n"
- "---\n"
- " drivers/scsi/NCR5380.c      |   60 ++++++--------------------------------------\n"
- " drivers/scsi/arm/cumana_1.c |    6 +---\n"
- " drivers/scsi/arm/oak.c      |    9 +++---\n"
- " drivers/scsi/dmx3191d.c     |    6 +---\n"
- " drivers/scsi/dtc.c          |   14 +++-------\n"
- " drivers/scsi/dtc.h          |    9 +-----\n"
- " drivers/scsi/g_NCR5380.c    |   27 ++++++++++---------\n"
- " drivers/scsi/g_NCR5380.h    |   30 ++++++++--------------\n"
- " drivers/scsi/mac_scsi.c     |   15 +----------\n"
- " drivers/scsi/pas16.c        |   16 +++++------\n"
- " drivers/scsi/pas16.h        |   11 +-------\n"
- " drivers/scsi/t128.c         |   26 +++++++++----------\n"
- " drivers/scsi/t128.h         |    9 +-----\n"
- " 13 files changed, 77 insertions(+), 161 deletions(-)\n"
- "\n"
- "Index: linux/drivers/scsi/NCR5380.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/NCR5380.c\t2016-01-03 16:02:42.000000000 +1100\n"
- "+++ linux/drivers/scsi/NCR5380.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -230,11 +230,6 @@\n"
- "  * USLEEP_POLL - amount of time, in jiffies, to poll\n"
- "  *\n"
- "  * These macros MUST be defined :\n"
- "- * NCR5380_local_declare() - declare any local variables needed for your\n"
- "- *      transfer routines.\n"
- "- *\n"
- "- * NCR5380_setup(instance) - initialize any local variables needed from a given\n"
- "- *      instance of the host adapter for NCR5380_{read,write,pread,pwrite}\n"
- "  * \n"
- "  * NCR5380_read(register)  - read from the specified register\n"
- "  *\n"
- "@@ -267,8 +262,8 @@\n"
- "  * possible) function may be used.\n"
- "  */\n"
- " \n"
- "-static int do_abort(struct Scsi_Host *host);\n"
- "-static void do_reset(struct Scsi_Host *host);\n"
- "+static int do_abort(struct Scsi_Host *);\n"
- "+static void do_reset(struct Scsi_Host *);\n"
- " \n"
- " /*\n"
- "  *\tinitialize_SCp\t\t-\tinit the scsi pointer field\n"
- "@@ -313,12 +308,9 @@ static inline void initialize_SCp(struct\n"
- "  \n"
- " static int NCR5380_poll_politely(struct Scsi_Host *instance, int reg, int bit, int val, int t)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tint n = 500;\t\t/* At about 8uS a cycle for the cpu access */\n"
- " \tunsigned long end = jiffies + t;\n"
- " \tint r;\n"
- "-\t\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \twhile( n-- > 0)\n"
- " \t{\n"
- "@@ -406,9 +398,7 @@ mrs[] = {\n"
- " \n"
- " static void NCR5380_print(struct Scsi_Host *instance)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tunsigned char status, data, basr, mr, icr, i;\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \tdata = NCR5380_read(CURRENT_SCSI_DATA_REG);\n"
- " \tstatus = NCR5380_read(STATUS_REG);\n"
- "@@ -447,10 +437,8 @@ static void NCR5380_print(struct Scsi_Ho\n"
- " \n"
- " static void NCR5380_print_phase(struct Scsi_Host *instance)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tunsigned char status;\n"
- " \tint i;\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \tstatus = NCR5380_read(STATUS_REG);\n"
- " \tif (!(status & SR_REQ))\n"
- "@@ -566,11 +554,9 @@ static irqreturn_t __init probe_intr(int\n"
- " static int __init __maybe_unused NCR5380_probe_irq(struct Scsi_Host *instance,\n"
- " \t\t\t\t\t\tint possible)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- " \tunsigned long timeout;\n"
- " \tint trying_irqs, i, mask;\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \tfor (trying_irqs = 0, i = 1, mask = 2; i < 16; ++i, mask <<= 1)\n"
- " \t\tif ((mask & possible) && (request_irq(i, &probe_intr, 0, \"NCR-probe\", NULL) == 0))\n"
- "@@ -791,7 +777,6 @@ static void lprint_opcode(int opcode, st\n"
- " \n"
- " static int NCR5380_init(struct Scsi_Host *instance, int flags)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tint i, pass;\n"
- " \tunsigned long timeout;\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- "@@ -808,8 +793,6 @@ static int NCR5380_init(struct Scsi_Host\n"
- " \t\tinstance->NCR5380_instance_name += NCR53C400_address_adjust;\n"
- " #endif\n"
- " \n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \thostdata->aborted = 0;\n"
- " \thostdata->id_mask = 1 << instance->this_id;\n"
- " \tfor (i = hostdata->id_mask; i <= 0x80; i <<= 1)\n"
- "@@ -1100,7 +1083,6 @@ static void NCR5380_main(struct work_str\n"
- " \n"
- " static irqreturn_t NCR5380_intr(int dummy, void *dev_id)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tstruct Scsi_Host *instance = dev_id;\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- " \tint done;\n"
- "@@ -1114,7 +1096,6 @@ static irqreturn_t NCR5380_intr(int dumm\n"
- " \t\tdone = 1;\n"
- " \t\tspin_lock_irqsave(instance->host_lock, flags);\n"
- " \t\t/* Look for pending interrupts */\n"
- "-\t\tNCR5380_setup(instance);\n"
- " \t\tbasr = NCR5380_read(BUS_AND_STATUS_REG);\n"
- " \t\t/* XXX dispatch to appropriate routine if found and done=0 */\n"
- " \t\tif (basr & BASR_IRQ) {\n"
- "@@ -1205,7 +1186,6 @@ static irqreturn_t NCR5380_intr(int dumm\n"
- "  \n"
- " static int NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- " \tunsigned char tmp[3], phase;\n"
- " \tunsigned char *data;\n"
- "@@ -1213,7 +1193,6 @@ static int NCR5380_select(struct Scsi_Ho\n"
- " \tunsigned long timeout;\n"
- " \tunsigned char value;\n"
- " \tint err;\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \tif (hostdata->selecting)\n"
- " \t\tgoto part2;\n"
- "@@ -1487,7 +1466,6 @@ failed:\n"
- "  */\n"
- " \n"
- " static int NCR5380_transfer_pio(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data) {\n"
- "-\tNCR5380_local_declare();\n"
- " \tunsigned char p = *phase, tmp;\n"
- " \tint c = *count;\n"
- " \tunsigned char *d = *data;\n"
- "@@ -1496,7 +1474,6 @@ static int NCR5380_transfer_pio(struct S\n"
- " \t */\n"
- " \tint break_allowed = 0;\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \tif (!(p & SR_IO))\n"
- " \t\tdprintk(NDEBUG_PIO, \"scsi%d : pio write %d bytes\\n\", instance->host_no, c);\n"
- "@@ -1623,10 +1600,8 @@ static int NCR5380_transfer_pio(struct S\n"
- "  *\tLocks: caller holds queue lock\n"
- "  */\n"
- "  \n"
- "-static void do_reset(struct Scsi_Host *host) {\n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(host);\n"
- "-\n"
- "+static void do_reset(struct Scsi_Host *instance)\n"
- "+{\n"
- " \tNCR5380_write(TARGET_COMMAND_REG, PHASE_SR_TO_TCR(NCR5380_read(STATUS_REG) & PHASE_MASK));\n"
- " \tNCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_RST);\n"
- " \tudelay(25);\n"
- "@@ -1645,13 +1620,11 @@ static void do_reset(struct Scsi_Host *h\n"
- "  *\tFIXME: sort this out and get new_eh running\n"
- "  */\n"
- " \n"
- "-static int do_abort(struct Scsi_Host *host) {\n"
- "-\tNCR5380_local_declare();\n"
- "+static int do_abort(struct Scsi_Host *instance)\n"
- "+{\n"
- " \tunsigned char *msgptr, phase, tmp;\n"
- " \tint len;\n"
- " \tint rc;\n"
- "-\tNCR5380_setup(host);\n"
- "-\n"
- " \n"
- " \t/* Request message out phase */\n"
- " \tNCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);\n"
- "@@ -1666,7 +1639,7 @@ static int do_abort(struct Scsi_Host *ho\n"
- " \t * the target sees, so we just handshake.\n"
- " \t */\n"
- " \n"
- "-\trc = NCR5380_poll_politely(host, STATUS_REG, SR_REQ, SR_REQ, 60 * HZ);\n"
- "+\trc = NCR5380_poll_politely(instance, STATUS_REG, SR_REQ, SR_REQ, 60 * HZ);\n"
- " \t\n"
- " \tif(rc < 0)\n"
- " \t\treturn -1;\n"
- "@@ -1677,7 +1650,7 @@ static int do_abort(struct Scsi_Host *ho\n"
- " \n"
- " \tif ((tmp & PHASE_MASK) != PHASE_MSGOUT) {\n"
- " \t\tNCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN | ICR_ASSERT_ACK);\n"
- "-\t\trc = NCR5380_poll_politely(host, STATUS_REG, SR_REQ, 0, 3*HZ);\n"
- "+\t\trc = NCR5380_poll_politely(instance, STATUS_REG, SR_REQ, 0, 3 * HZ);\n"
- " \t\tNCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);\n"
- " \t\tif(rc == -1)\n"
- " \t\t\treturn -1;\n"
- "@@ -1686,7 +1659,7 @@ static int do_abort(struct Scsi_Host *ho\n"
- " \tmsgptr = &tmp;\n"
- " \tlen = 1;\n"
- " \tphase = PHASE_MSGOUT;\n"
- "-\tNCR5380_transfer_pio(host, &phase, &len, &msgptr);\n"
- "+\tNCR5380_transfer_pio(instance, &phase, &len, &msgptr);\n"
- " \n"
- " \t/*\n"
- " \t * If we got here, and the command completed successfully,\n"
- "@@ -1719,7 +1692,6 @@ static int do_abort(struct Scsi_Host *ho\n"
- " \n"
- " \n"
- " static int NCR5380_transfer_dma(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data) {\n"
- "-\tNCR5380_local_declare();\n"
- " \tregister int c = *count;\n"
- " \tregister unsigned char p = *phase;\n"
- " \tregister unsigned char *d = *data;\n"
- "@@ -1732,8 +1704,6 @@ static int NCR5380_transfer_dma(struct S\n"
- " \n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- " \n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \tif ((tmp = (NCR5380_read(STATUS_REG) & PHASE_MASK)) != p) {\n"
- " \t\t*phase = tmp;\n"
- " \t\treturn -1;\n"
- "@@ -2000,7 +1970,6 @@ static int NCR5380_transfer_dma(struct S\n"
- "  */\n"
- " \n"
- " static void NCR5380_information_transfer(struct Scsi_Host *instance) {\n"
- "-\tNCR5380_local_declare();\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *)instance->hostdata;\n"
- " \tunsigned char msgout = NOP;\n"
- " \tint sink = 0;\n"
- "@@ -2014,8 +1983,6 @@ static void NCR5380_information_transfer\n"
- " \t/* RvC: we need to set the end of the polling time */\n"
- " \tunsigned long poll_time = jiffies + USLEEP_POLL;\n"
- " \n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \twhile (1) {\n"
- " \t\ttmp = NCR5380_read(STATUS_REG);\n"
- " \t\t/* We only have a valid SCSI phase when REQ is asserted */\n"
- "@@ -2406,7 +2373,6 @@ static void NCR5380_information_transfer\n"
- "  */\n"
- " \n"
- " static void NCR5380_reselect(struct Scsi_Host *instance) {\n"
- "-\tNCR5380_local_declare();\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *)\n"
- " \t instance->hostdata;\n"
- " \tunsigned char target_mask;\n"
- "@@ -2416,7 +2382,6 @@ static void NCR5380_reselect(struct Scsi\n"
- " \tunsigned char *data;\n"
- " \tstruct scsi_cmnd *tmp = NULL, *prev;\n"
- " \tint abort = 0;\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \t/*\n"
- " \t * Disable arbitration, etc. since the host adapter obviously\n"
- "@@ -2525,10 +2490,8 @@ static void NCR5380_reselect(struct Scsi\n"
- " \n"
- " #ifdef REAL_DMA\n"
- " static void NCR5380_dma_complete(NCR5380_instance * instance) {\n"
- "-\tNCR5380_local_declare();\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- " \tint transferred;\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \t/*\n"
- " \t * XXX this might not be right.\n"
- "@@ -2581,7 +2544,6 @@ static void NCR5380_dma_complete(NCR5380\n"
- " \n"
- " static int NCR5380_abort(struct scsi_cmnd *cmd)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- " \tstruct Scsi_Host *instance = cmd->device->host;\n"
- " \tstruct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;\n"
- " \tstruct scsi_cmnd *tmp, **prev;\n"
- "@@ -2590,8 +2552,6 @@ static int NCR5380_abort(struct scsi_cmn\n"
- " \n"
- " \tNCR5380_print_status(instance);\n"
- " \n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \tdprintk(NDEBUG_ABORT, \"scsi%d : abort called\\n\", instance->host_no);\n"
- " \tdprintk(NDEBUG_ABORT, \"        basr 0x%X, sr 0x%X\\n\", NCR5380_read(BUS_AND_STATUS_REG), NCR5380_read(STATUS_REG));\n"
- " \n"
- "@@ -2737,8 +2697,6 @@ static int NCR5380_bus_reset(struct scsi\n"
- " {\n"
- " \tstruct Scsi_Host *instance = cmd->device->host;\n"
- " \n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- " \tNCR5380_print_status(instance);\n"
- " \n"
- " \tspin_lock_irq(instance->host_lock);\n"
- "Index: linux/drivers/scsi/arm/cumana_1.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/arm/cumana_1.c\t2016-01-03 16:02:38.000000000 +1100\n"
- "+++ linux/drivers/scsi/arm/cumana_1.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -20,10 +20,8 @@\n"
- " #define PSEUDO_DMA\n"
- " \n"
- " #define priv(host)\t\t\t((struct NCR5380_hostdata *)(host)->hostdata)\n"
- "-#define NCR5380_local_declare()\t\tstruct Scsi_Host *_instance\n"
- "-#define NCR5380_setup(instance)\t\t_instance = instance\n"
- "-#define NCR5380_read(reg)\t\tcumanascsi_read(_instance, reg)\n"
- "-#define NCR5380_write(reg, value)\tcumanascsi_write(_instance, reg, value)\n"
- "+#define NCR5380_read(reg)\t\tcumanascsi_read(instance, reg)\n"
- "+#define NCR5380_write(reg, value)\tcumanascsi_write(instance, reg, value)\n"
- " #define NCR5380_intr\t\t\tcumanascsi_intr\n"
- " #define NCR5380_queue_command\t\tcumanascsi_queue_command\n"
- " #define NCR5380_info\t\t\tcumanascsi_info\n"
- "Index: linux/drivers/scsi/arm/oak.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/arm/oak.c\t2016-01-03 16:02:38.000000000 +1100\n"
- "+++ linux/drivers/scsi/arm/oak.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -20,11 +20,12 @@\n"
- " #define DONT_USE_INTR\n"
- " \n"
- " #define priv(host)\t\t\t((struct NCR5380_hostdata *)(host)->hostdata)\n"
- "-#define NCR5380_local_declare()\t\tvoid __iomem *_base\n"
- "-#define NCR5380_setup(host)\t\t_base = priv(host)->base\n"
- " \n"
- "-#define NCR5380_read(reg)\t\treadb(_base + ((reg) << 2))\n"
- "-#define NCR5380_write(reg, value)\twriteb(value, _base + ((reg) << 2))\n"
- "+#define NCR5380_read(reg) \\\n"
- "+\treadb(priv(instance)->base + ((reg) << 2))\n"
- "+#define NCR5380_write(reg, value) \\\n"
- "+\twriteb(value, priv(instance)->base + ((reg) << 2))\n"
- "+\n"
- " #define NCR5380_queue_command\t\toakscsi_queue_command\n"
- " #define NCR5380_info\t\t\toakscsi_info\n"
- " #define NCR5380_show_info\t\toakscsi_show_info\n"
- "Index: linux/drivers/scsi/dmx3191d.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/dmx3191d.c\t2016-01-03 16:02:38.000000000 +1100\n"
- "+++ linux/drivers/scsi/dmx3191d.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -36,12 +36,10 @@\n"
- " \n"
- " #define DONT_USE_INTR\n"
- " \n"
- "-#define NCR5380_read(reg)\t\tinb(port + reg)\n"
- "-#define NCR5380_write(reg, value)\toutb(value, port + reg)\n"
- "+#define NCR5380_read(reg)\t\tinb(instance->io_port + reg)\n"
- "+#define NCR5380_write(reg, value)\toutb(value, instance->io_port + reg)\n"
- " \n"
- " #define NCR5380_implementation_fields\t/* none */\n"
- "-#define NCR5380_local_declare()\t\tunsigned int port\n"
- "-#define NCR5380_setup(instance)\t\tport = instance->io_port\n"
- " \n"
- " /*\n"
- "  * Includes needed for NCR5380.[ch] (XXX: Move them to NCR5380.h)\n"
- "Index: linux/drivers/scsi/dtc.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/dtc.c\t2016-01-03 16:02:47.000000000 +1100\n"
- "+++ linux/drivers/scsi/dtc.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -325,8 +325,6 @@ static inline int NCR5380_pread(struct S\n"
- " \tunsigned char *d = dst;\n"
- " \tint i;\t\t\t/* For counting time spent in the poll-loop */\n"
- " \tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \ti = 0;\n"
- " \tNCR5380_read(RESET_PARITY_INTERRUPT_REG);\n"
- "@@ -342,7 +340,7 @@ static inline int NCR5380_pread(struct S\n"
- " \t\twhile (NCR5380_read(DTC_CONTROL_REG) & CSR_HOST_BUF_NOT_RDY)\n"
- " \t\t\t++i;\n"
- " \t\trtrc(3);\n"
- "-\t\tmemcpy_fromio(d, base + DTC_DATA_BUF, 128);\n"
- "+\t\tmemcpy_fromio(d, hostdata->base + DTC_DATA_BUF, 128);\n"
- " \t\td += 128;\n"
- " \t\tlen -= 128;\n"
- " \t\trtrc(7);\n"
- "@@ -377,8 +375,6 @@ static inline int NCR5380_pwrite(struct\n"
- " {\n"
- " \tint i;\n"
- " \tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- " \n"
- " \tNCR5380_read(RESET_PARITY_INTERRUPT_REG);\n"
- " \tNCR5380_write(MODE_REG, MR_ENABLE_EOP_INTR | MR_DMA_MODE);\n"
- "@@ -394,7 +390,7 @@ static inline int NCR5380_pwrite(struct\n"
- " \t\twhile (NCR5380_read(DTC_CONTROL_REG) & CSR_HOST_BUF_NOT_RDY)\n"
- " \t\t\t++i;\n"
- " \t\trtrc(3);\n"
- "-\t\tmemcpy_toio(base + DTC_DATA_BUF, src, 128);\n"
- "+\t\tmemcpy_toio(hostdata->base + DTC_DATA_BUF, src, 128);\n"
- " \t\tsrc += 128;\n"
- " \t\tlen -= 128;\n"
- " \t}\n"
- "@@ -420,15 +416,15 @@ MODULE_LICENSE(\"GPL\");\n"
- " \n"
- " static int dtc_release(struct Scsi_Host *shost)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(shost);\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(shost);\n"
- "+\n"
- " \tif (shost->irq != NO_IRQ)\n"
- " \t\tfree_irq(shost->irq, shost);\n"
- " \tNCR5380_exit(shost);\n"
- " \tif (shost->io_port && shost->n_io_port)\n"
- " \t\trelease_region(shost->io_port, shost->n_io_port);\n"
- " \tscsi_unregister(shost);\n"
- "-\tiounmap(base);\n"
- "+\tiounmap(hostdata->base);\n"
- " \treturn 0;\n"
- " }\n"
- " \n"
- "Index: linux/drivers/scsi/dtc.h\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/dtc.h\t2016-01-03 16:02:47.000000000 +1100\n"
- "+++ linux/drivers/scsi/dtc.h\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -21,13 +21,8 @@\n"
- " #define NCR5380_implementation_fields \\\n"
- "     void __iomem *base\n"
- " \n"
- "-#define NCR5380_local_declare() \\\n"
- "-    void __iomem *base\n"
- "-\n"
- "-#define NCR5380_setup(instance) \\\n"
- "-    base = ((struct NCR5380_hostdata *)(instance)->hostdata)->base\n"
- "-\n"
- "-#define DTC_address(reg) (base + DTC_5380_OFFSET + reg)\n"
- "+#define DTC_address(reg) \\\n"
- "+\t(((struct NCR5380_hostdata *)shost_priv(instance))->base + DTC_5380_OFFSET + reg)\n"
- " \n"
- " #define NCR5380_read(reg) (readb(DTC_address(reg)))\n"
- " #define NCR5380_write(reg, value) (writeb(value, DTC_address(reg)))\n"
- "Index: linux/drivers/scsi/g_NCR5380.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/g_NCR5380.c\t2016-01-03 16:02:54.000000000 +1100\n"
- "+++ linux/drivers/scsi/g_NCR5380.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -459,9 +459,6 @@ static int __init generic_NCR5380_detect\n"
- "  \n"
- " static int generic_NCR5380_release_resources(struct Scsi_Host *instance)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- "-\t\n"
- " \tif (instance->irq != NO_IRQ)\n"
- " \t\tfree_irq(instance->irq, instance);\n"
- " \tNCR5380_exit(instance);\n"
- "@@ -520,13 +517,13 @@ generic_NCR5380_biosparam(struct scsi_de\n"
- "  \n"
- " static inline int NCR5380_pread(struct Scsi_Host *instance, unsigned char *dst, int len)\n"
- " {\n"
- "+#ifdef SCSI_G_NCR5380_MEM\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- "+#endif\n"
- " \tint blocks = len / 128;\n"
- " \tint start = 0;\n"
- " \tint bl;\n"
- " \n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \tNCR5380_write(C400_CONTROL_STATUS_REG, CSR_BASE | CSR_TRANS_DIR);\n"
- " \tNCR5380_write(C400_BLOCK_COUNTER_REG, blocks);\n"
- " \twhile (1) {\n"
- "@@ -547,7 +544,8 @@ static inline int NCR5380_pread(struct S\n"
- " \t\t}\n"
- " #else\n"
- " \t\t/* implies SCSI_G_NCR5380_MEM */\n"
- "-\t\tmemcpy_fromio(dst + start, iomem + NCR53C400_host_buffer, 128);\n"
- "+\t\tmemcpy_fromio(dst + start,\n"
- "+\t\t              hostdata->iomem + NCR53C400_host_buffer, 128);\n"
- " #endif\n"
- " \t\tstart += 128;\n"
- " \t\tblocks--;\n"
- "@@ -567,7 +565,8 @@ static inline int NCR5380_pread(struct S\n"
- " \t\t}\n"
- " #else\n"
- " \t\t/* implies SCSI_G_NCR5380_MEM */\n"
- "-\t\tmemcpy_fromio(dst + start, iomem + NCR53C400_host_buffer, 128);\n"
- "+\t\tmemcpy_fromio(dst + start,\n"
- "+\t\t              hostdata->iomem + NCR53C400_host_buffer, 128);\n"
- " #endif\n"
- " \t\tstart += 128;\n"
- " \t\tblocks--;\n"
- "@@ -604,14 +603,14 @@ static inline int NCR5380_pread(struct S\n"
- " \n"
- " static inline int NCR5380_pwrite(struct Scsi_Host *instance, unsigned char *src, int len)\n"
- " {\n"
- "+#ifdef SCSI_G_NCR5380_MEM\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- "+#endif\n"
- " \tint blocks = len / 128;\n"
- " \tint start = 0;\n"
- " \tint bl;\n"
- " \tint i;\n"
- " \n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \tNCR5380_write(C400_CONTROL_STATUS_REG, CSR_BASE);\n"
- " \tNCR5380_write(C400_BLOCK_COUNTER_REG, blocks);\n"
- " \twhile (1) {\n"
- "@@ -632,7 +631,8 @@ static inline int NCR5380_pwrite(struct\n"
- " \t\t}\n"
- " #else\n"
- " \t\t/* implies SCSI_G_NCR5380_MEM */\n"
- "-\t\tmemcpy_toio(iomem + NCR53C400_host_buffer, src + start, 128);\n"
- "+\t\tmemcpy_toio(hostdata->iomem + NCR53C400_host_buffer,\n"
- "+\t\t            src + start, 128);\n"
- " #endif\n"
- " \t\tstart += 128;\n"
- " \t\tblocks--;\n"
- "@@ -648,7 +648,8 @@ static inline int NCR5380_pwrite(struct\n"
- " \t\t}\n"
- " #else\n"
- " \t\t/* implies SCSI_G_NCR5380_MEM */\n"
- "-\t\tmemcpy_toio(iomem + NCR53C400_host_buffer, src + start, 128);\n"
- "+\t\tmemcpy_toio(hostdata->iomem + NCR53C400_host_buffer,\n"
- "+\t\t            src + start, 128);\n"
- " #endif\n"
- " \t\tstart += 128;\n"
- " \t\tblocks--;\n"
- "Index: linux/drivers/scsi/g_NCR5380.h\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/g_NCR5380.h\t2016-01-03 16:02:54.000000000 +1100\n"
- "+++ linux/drivers/scsi/g_NCR5380.h\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -46,17 +46,12 @@\n"
- " #define NCR5380_region_size 8\n"
- " #endif\n"
- " \n"
- "-#define NCR5380_read(reg) (inb(NCR5380_map_name + (reg)))\n"
- "-#define NCR5380_write(reg, value) (outb((value), (NCR5380_map_name + (reg))))\n"
- "+#define NCR5380_read(reg) \\\n"
- "+\tinb(instance->io_port + (reg))\n"
- "+#define NCR5380_write(reg, value) \\\n"
- "+\toutb(value, instance->io_port + (reg))\n"
- " \n"
- "-#define NCR5380_implementation_fields \\\n"
- "-    NCR5380_map_type NCR5380_map_name\n"
- "-\n"
- "-#define NCR5380_local_declare() \\\n"
- "-    register NCR5380_implementation_fields\n"
- "-\n"
- "-#define NCR5380_setup(instance) \\\n"
- "-    NCR5380_map_name = (NCR5380_map_type)((instance)->NCR5380_instance_name)\n"
- "+#define NCR5380_implementation_fields /* none */\n"
- " \n"
- " #else \n"
- " /* therefore SCSI_G_NCR5380_MEM */\n"
- "@@ -70,19 +65,16 @@\n"
- " #define NCR53C400_host_buffer 0x3900\n"
- " #define NCR5380_region_size 0x3a00\n"
- " \n"
- "-#define NCR5380_read(reg) readb(iomem + NCR53C400_mem_base + (reg))\n"
- "-#define NCR5380_write(reg, value) writeb(value, iomem + NCR53C400_mem_base + (reg))\n"
- "+#define NCR5380_read(reg) \\\n"
- "+\treadb(((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \\\n"
- "+\t      NCR53C400_mem_base + (reg))\n"
- "+#define NCR5380_write(reg, value) \\\n"
- "+\twriteb(value, ((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \\\n"
- "+\t       NCR53C400_mem_base + (reg))\n"
- " \n"
- " #define NCR5380_implementation_fields \\\n"
- "-    NCR5380_map_type NCR5380_map_name; \\\n"
- "     void __iomem *iomem;\n"
- " \n"
- "-#define NCR5380_local_declare() \\\n"
- "-    register void __iomem *iomem\n"
- "-\n"
- "-#define NCR5380_setup(instance) \\\n"
- "-    iomem = (((struct NCR5380_hostdata *)(instance)->hostdata)->iomem)\n"
- "-\n"
- " #endif\n"
- " \n"
- " #define NCR5380_intr generic_NCR5380_intr\n"
- "Index: linux/drivers/scsi/mac_scsi.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/mac_scsi.c\t2016-01-03 16:02:38.000000000 +1100\n"
- "+++ linux/drivers/scsi/mac_scsi.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -32,11 +32,9 @@\n"
- " #define PSEUDO_DMA\n"
- " \n"
- " #define NCR5380_implementation_fields   unsigned char *pdma_base\n"
- "-#define NCR5380_local_declare()         struct Scsi_Host *_instance\n"
- "-#define NCR5380_setup(instance)         _instance = instance\n"
- " \n"
- "-#define NCR5380_read(reg)               macscsi_read(_instance, reg)\n"
- "-#define NCR5380_write(reg, value)       macscsi_write(_instance, reg, value)\n"
- "+#define NCR5380_read(reg)               macscsi_read(instance, reg)\n"
- "+#define NCR5380_write(reg, value)       macscsi_write(instance, reg, value)\n"
- " \n"
- " #define NCR5380_pread                   macscsi_pread\n"
- " #define NCR5380_pwrite                  macscsi_pwrite\n"
- "@@ -129,9 +127,6 @@ static void mac_scsi_reset_boot(struct S\n"
- " {\n"
- " \tunsigned long end;\n"
- " \n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- "-\t\n"
- " \t/*\n"
- " \t * Do a SCSI reset to clean up the bus during initialization. No messing\n"
- " \t * with the queues, interrupts, or locks necessary here.\n"
- "@@ -235,9 +230,6 @@ static int macscsi_pread(struct Scsi_Hos\n"
- " \tunsigned char *d;\n"
- " \tunsigned char *s;\n"
- " \n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \ts = hostdata->pdma_base + (INPUT_DATA_REG << 4);\n"
- " \td = dst;\n"
- " \n"
- "@@ -329,9 +321,6 @@ static int macscsi_pwrite(struct Scsi_Ho\n"
- " \tunsigned char *s;\n"
- " \tunsigned char *d;\n"
- " \n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(instance);\n"
- "-\n"
- " \ts = src;\n"
- " \td = hostdata->pdma_base + (OUTPUT_DATA_REG << 4);\n"
- " \n"
- "Index: linux/drivers/scsi/pas16.h\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/pas16.h\t2016-01-03 16:02:54.000000000 +1100\n"
- "+++ linux/drivers/scsi/pas16.h\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -103,16 +103,9 @@\n"
- " #define CAN_QUEUE 32 \n"
- " #endif\n"
- " \n"
- "-#define NCR5380_implementation_fields \\\n"
- "-    volatile unsigned short io_port\n"
- "+#define NCR5380_implementation_fields /* none */\n"
- " \n"
- "-#define NCR5380_local_declare() \\\n"
- "-    volatile unsigned short io_port\n"
- "-\n"
- "-#define NCR5380_setup(instance) \\\n"
- "-    io_port = (instance)->io_port\n"
- "-\n"
- "-#define PAS16_io_port(reg) ( io_port + pas16_offset[(reg)] )\n"
- "+#define PAS16_io_port(reg) (instance->io_port + pas16_offset[(reg)])\n"
- " \n"
- " #define NCR5380_read(reg) ( inb(PAS16_io_port(reg)) )\n"
- " #define NCR5380_write(reg, value) ( outb((value),PAS16_io_port(reg)) )\n"
- "Index: linux/drivers/scsi/t128.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/t128.c\t2016-01-03 16:02:47.000000000 +1100\n"
- "+++ linux/drivers/scsi/t128.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -248,15 +248,15 @@ found:\n"
- " \n"
- " static int t128_release(struct Scsi_Host *shost)\n"
- " {\n"
- "-\tNCR5380_local_declare();\n"
- "-\tNCR5380_setup(shost);\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(shost);\n"
- "+\n"
- " \tif (shost->irq != NO_IRQ)\n"
- " \t\tfree_irq(shost->irq, shost);\n"
- " \tNCR5380_exit(shost);\n"
- " \tif (shost->io_port && shost->n_io_port)\n"
- " \t\trelease_region(shost->io_port, shost->n_io_port);\n"
- " \tscsi_unregister(shost);\n"
- "-\tiounmap(base);\n"
- "+\tiounmap(hostdata->base);\n"
- " \treturn 0;\n"
- " }\n"
- " \n"
- "@@ -302,14 +302,14 @@ static int t128_biosparam(struct scsi_de\n"
- "  * \ttimeout.\n"
- "  */\n"
- " \n"
- "-static inline int NCR5380_pread (struct Scsi_Host *instance, unsigned char *dst,\n"
- "-    int len) {\n"
- "-    NCR5380_local_declare();\n"
- "-    void __iomem *reg;\n"
- "+static inline int\n"
- "+NCR5380_pread(struct Scsi_Host *instance, unsigned char *dst, int len)\n"
- "+{\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- "+\tvoid __iomem *reg, *base = hostdata->base;\n"
- "     unsigned char *d = dst;\n"
- "     register int i = len;\n"
- " \n"
- "-    NCR5380_setup(instance);\n"
- "     reg = base + T_DATA_REG_OFFSET;\n"
- " \n"
- " #if 0\n"
- "@@ -348,14 +348,14 @@ static inline int NCR5380_pread (struct\n"
- "  * \ttimeout.\n"
- "  */\n"
- " \n"
- "-static inline int NCR5380_pwrite (struct Scsi_Host *instance, unsigned char *src,\n"
- "-    int len) {\n"
- "-    NCR5380_local_declare();\n"
- "-    void __iomem *reg;\n"
- "+static inline int\n"
- "+NCR5380_pwrite(struct Scsi_Host *instance, unsigned char *src, int len)\n"
- "+{\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- "+\tvoid __iomem *reg, *base = hostdata->base;\n"
- "     unsigned char *s = src;\n"
- "     register int i = len;\n"
- " \n"
- "-    NCR5380_setup(instance);\n"
- "     reg = base + T_DATA_REG_OFFSET;\n"
- " \n"
- " #if 0\n"
- "Index: linux/drivers/scsi/t128.h\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/t128.h\t2016-01-03 16:02:54.000000000 +1100\n"
- "+++ linux/drivers/scsi/t128.h\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -78,13 +78,8 @@\n"
- " #define NCR5380_implementation_fields \\\n"
- "     void __iomem *base\n"
- " \n"
- "-#define NCR5380_local_declare() \\\n"
- "-    void __iomem *base\n"
- "-\n"
- "-#define NCR5380_setup(instance) \\\n"
- "-    base = ((struct NCR5380_hostdata *)(instance->hostdata))->base\n"
- "-\n"
- "-#define T128_address(reg) (base + T_5380_OFFSET + ((reg) * 0x20))\n"
- "+#define T128_address(reg) \\\n"
- "+\t(((struct NCR5380_hostdata *)shost_priv(instance))->base + T_5380_OFFSET + ((reg) * 0x20))\n"
- " \n"
- " #define NCR5380_read(reg) readb(T128_address(reg))\n"
- " #define NCR5380_write(reg, value) writeb((value),(T128_address(reg)))\n"
- "Index: linux/drivers/scsi/pas16.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/pas16.c\t2016-01-03 16:02:54.000000000 +1100\n"
- "+++ linux/drivers/scsi/pas16.c\t2016-01-03 16:02:56.000000000 +1100\n"
- "@@ -188,7 +188,7 @@ static void __init\n"
- " \toutb( 0x01, io_port + P_TIMEOUT_STATUS_REG_OFFSET );   /* Reset TC */\n"
- " \toutb( 0x01, io_port + WAIT_STATE );   /* 1 Wait state */\n"
- " \n"
- "-\tNCR5380_read( RESET_PARITY_INTERRUPT_REG );\n"
- "+\tinb(io_port + pas16_offset[RESET_PARITY_INTERRUPT_REG]);\n"
- " \n"
- " \t/* Set the SCSI interrupt pointer without mucking up the sound\n"
- " \t * interrupt pointer in the same byte.\n"
- "@@ -263,13 +263,13 @@ static int __init\n"
- "      * put in an additional test to try to weed them out.\n"
- "      */\n"
- " \n"
- "-    outb( 0x01, io_port + WAIT_STATE ); \t/* 1 Wait state */\n"
- "-    NCR5380_write( MODE_REG, 0x20 );\t\t/* Is it really SCSI? */\n"
- "-    if( NCR5380_read( MODE_REG ) != 0x20 )\t/* Write to a reg.    */\n"
- "-\treturn 0;\t\t\t\t/* and try to read    */\n"
- "-    NCR5380_write( MODE_REG, 0x00 );\t\t/* it back.\t      */\n"
- "-    if( NCR5380_read( MODE_REG ) != 0x00 )\n"
- "-\treturn 0;\n"
- "+\toutb(0x01, io_port + WAIT_STATE);             /* 1 Wait state */\n"
- "+\toutb(0x20, io_port + pas16_offset[MODE_REG]); /* Is it really SCSI? */\n"
- "+\tif (inb(io_port + pas16_offset[MODE_REG]) != 0x20) /* Write to a reg. */\n"
- "+\t\treturn 0;                                  /* and try to read */\n"
- "+\toutb(0x00, io_port + pas16_offset[MODE_REG]);      /* it back. */\n"
- "+\tif (inb(io_port + pas16_offset[MODE_REG]) != 0x00)\n"
- "+\t\treturn 0;\n"
- " \n"
- "     return 1;\n"
-  }
+ "An embedded and charset-unspecified text was scrubbed...\n"
+ "Name: ncr5380-eliminate-local_declare-macros\n"
+ URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160103/b9b42a55/attachment.ksh>
 
-b39b8fcf60d5c08cf3be664866118327b17b21601d2c1b65229c98a8eae45bfd
+4f42f2de098ca7b37193d797c1fc8cd2c0560e12289e533ff48e8cc8ee3ca57b

diff --git a/a/content_digest b/N2/content_digest
index 62d7f10..0f96ecf 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -5,9 +5,9 @@
  "To\0James E.J. Bottomley <JBottomley@odin.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
+  <linux-m68k@vger.kernel.org>
+  <linux-scsi@vger.kernel.org>
+  <linux-kernel@vger.kernel.org>
   Russell King <linux@arm.linux.org.uk>
  " linux-arm-kernel@lists.infradead.org\0"
  "\00:1\0"
@@ -822,4 +822,4 @@
  "     return 1;\n"
   }
 
-b39b8fcf60d5c08cf3be664866118327b17b21601d2c1b65229c98a8eae45bfd
+ade391a9fd85f33f62230a4e5837b558562bf1947c5723358a821d085dd49d7b

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.