public inbox for linux-m68k@lists.linux-m68k.org
 help / color / mirror / Atom feed
From: Finn Thain <fthain@telegraphics.com.au>
To: "James E.J. Bottomley" <JBottomley@odin.com>,
	Michael Schmitz <schmitzmic@gmail.com>,
	linux-m68k@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 69/71] ncr5380: Merge changes from atari_NCR5380.c
Date: Wed, 18 Nov 2015 19:36:04 +1100	[thread overview]
Message-ID: <20151118083521.411167293@telegraphics.com.au> (raw)
In-Reply-To: 20151118083455.331768508@telegraphics.com.au

[-- Attachment #1: ncr5380-merge-trivia-from-atari_NCR5380 --]
[-- Type: text/plain, Size: 15035 bytes --]

In the past, NCR5380.c was overlooked by those working on atari_NCR5380.c
and this caused needless divergence. All of the changes in this patch were
taken from atari_NCR5380.c.

This removes some unimportant discrepancies between the two core driver
forks so that 'diff' can be used to reveal the important ones, to
facilitate reunification.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>

---
 drivers/scsi/NCR5380.c |  157 +++++++++++++++++++++++++++----------------------
 1 file changed, 89 insertions(+), 68 deletions(-)

Index: linux/drivers/scsi/NCR5380.c
===================================================================
--- linux.orig/drivers/scsi/NCR5380.c	2015-11-18 19:34:38.000000000 +1100
+++ linux/drivers/scsi/NCR5380.c	2015-11-18 19:34:43.000000000 +1100
@@ -174,7 +174,7 @@ static int do_abort(struct Scsi_Host *);
 static void do_reset(struct Scsi_Host *);
 
 /**
- * initialize_SCp		-	init the scsi pointer field
+ * initialize_SCp - init the scsi pointer field
  * @cmd: command block to set up
  *
  * Set up the internal fields in the SCSI command.
@@ -275,19 +275,6 @@ static inline int NCR5380_poll_politely(
 	                                        reg, bit, val, wait);
 }
 
-static struct {
-	unsigned char value;
-	const char *name;
-} phases[] __maybe_unused = {
-	{PHASE_DATAOUT, "DATAOUT"},
-	{PHASE_DATAIN, "DATAIN"},
-	{PHASE_CMDOUT, "CMDOUT"},
-	{PHASE_STATIN, "STATIN"},
-	{PHASE_MSGOUT, "MSGOUT"},
-	{PHASE_MSGIN, "MSGIN"},
-	{PHASE_UNKNOWN, "UNKNOWN"}
-};
-
 #if NDEBUG
 static struct {
 	unsigned char mask;
@@ -322,6 +309,7 @@ mrs[] = {
 	{MR_TARGET, "MODE TARGET"},
 	{MR_ENABLE_PAR_CHECK, "MODE PARITY CHECK"},
 	{MR_ENABLE_PAR_INTR, "MODE PARITY INTR"},
+	{MR_ENABLE_EOP_INTR, "MODE EOP INTR"},
 	{MR_MONITOR_BSY, "MODE MONITOR BSY"},
 	{MR_DMA_MODE, "MODE DMA"},
 	{MR_ARBITRATE, "MODE ARBITRATION"},
@@ -329,8 +317,8 @@ mrs[] = {
 };
 
 /**
- * NCR5380_print	-	print scsi bus signals
- * @instance:	adapter state to dump
+ * NCR5380_print - print scsi bus signals
+ * @instance: adapter state to dump
  *
  * Print the SCSI bus signals for debugging purposes
  */
@@ -364,9 +352,21 @@ static void NCR5380_print(struct Scsi_Ho
 	printk("\n");
 }
 
+static struct {
+	unsigned char value;
+	const char *name;
+} phases[] = {
+	{PHASE_DATAOUT, "DATAOUT"},
+	{PHASE_DATAIN, "DATAIN"},
+	{PHASE_CMDOUT, "CMDOUT"},
+	{PHASE_STATIN, "STATIN"},
+	{PHASE_MSGOUT, "MSGOUT"},
+	{PHASE_MSGIN, "MSGIN"},
+	{PHASE_UNKNOWN, "UNKNOWN"}
+};
 
 /**
- * NCR5380_print_phase	-	show SCSI phase
+ * NCR5380_print_phase - show SCSI phase
  * @instance: adapter to dump
  *
  * Print the current SCSI phase for debugging purposes
@@ -381,7 +381,9 @@ static void NCR5380_print_phase(struct S
 	if (!(status & SR_REQ))
 		shost_printk(KERN_DEBUG, instance, "REQ not asserted, phase unknown.\n");
 	else {
-		for (i = 0; (phases[i].value != PHASE_UNKNOWN) && (phases[i].value != (status & PHASE_MASK)); ++i);
+		for (i = 0; (phases[i].value != PHASE_UNKNOWN) &&
+		     (phases[i].value != (status & PHASE_MASK)); ++i)
+			;
 		shost_printk(KERN_DEBUG, instance, "phase %s\n", phases[i].name);
 	}
 }
@@ -523,7 +525,7 @@ static int __maybe_unused NCR5380_write_
 }
 
 static int __maybe_unused NCR5380_show_info(struct seq_file *m,
-	struct Scsi_Host *instance)
+                                            struct Scsi_Host *instance)
 {
 	struct NCR5380_hostdata *hostdata = shost_priv(instance);
 
@@ -534,7 +536,7 @@ static int __maybe_unused NCR5380_show_i
 #endif
 
 /**
- * NCR5380_init	-	initialise an NCR5380
+ * NCR5380_init - initialise an NCR5380
  * @instance: adapter to configure
  * @flags: control flags
  *
@@ -542,7 +544,7 @@ static int __maybe_unused NCR5380_show_i
  * with flags OR'd into the initial flags value.
  *
  * Notes : I assume that the host, hostno, and id bits have been
- * set correctly.  I don't care about the irq and other fields.
+ * set correctly. I don't care about the irq and other fields.
  *
  * Returns 0 for success
  */
@@ -552,10 +554,9 @@ static int NCR5380_init(struct Scsi_Host
 	struct NCR5380_hostdata *hostdata = shost_priv(instance);
 	int i;
 
-	if(in_interrupt())
-		printk(KERN_ERR "NCR5380_init called with interrupts off!\n");
-
+	hostdata->host = instance;
 	hostdata->id_mask = 1 << instance->this_id;
+	hostdata->id_higher_mask = 0;
 	for (i = hostdata->id_mask; i <= 0x80; i <<= 1)
 		if (i > hostdata->id_mask)
 			hostdata->id_higher_mask |= i;
@@ -580,8 +581,6 @@ static int NCR5380_init(struct Scsi_Host
 	if (!hostdata->work_q)
 		return -ENOMEM;
 
-	hostdata->host = instance;
-
 	prepare_info(instance);
 
 #ifndef REAL_DMA
@@ -592,6 +591,7 @@ static int NCR5380_init(struct Scsi_Host
 	NCR5380_write(MODE_REG, MR_BASE);
 	NCR5380_write(TARGET_COMMAND_REG, 0);
 	NCR5380_write(SELECT_ENABLE_REG, 0);
+
 	return 0;
 }
 
@@ -648,8 +648,10 @@ static int NCR5380_maybe_reset_bus(struc
 }
 
 /**
- * NCR5380_exit	-	remove an NCR5380
+ * NCR5380_exit - remove an NCR5380
  * @instance: adapter to remove
+ *
+ * Assumes that no more work can be queued (e.g. by NCR5380_intr).
  */
 
 static void NCR5380_exit(struct Scsi_Host *instance)
@@ -714,7 +716,7 @@ static int NCR5380_queue_command(struct
 		cmd->scsi_done(cmd);
 		return 0;
 	}
-#endif				/* (NDEBUG & NDEBUG_NO_WRITE) */
+#endif /* (NDEBUG & NDEBUG_NO_WRITE) */
 
 	cmd->result = 0;
 
@@ -801,7 +803,7 @@ static void requeue_cmd(struct Scsi_Host
 }
 
 /**
- * NCR5380_main	-	NCR state machines
+ * NCR5380_main - NCR state machines
  *
  * NCR5380_main is a coroutine that runs as long as more work can
  * be done on the NCR5380 host adapters in a system.  Both
@@ -1067,7 +1069,9 @@ static struct scsi_cmnd *NCR5380_select(
 	udelay(3);
 
 	/* Check for lost arbitration */
-	if ((NCR5380_read(INITIATOR_COMMAND_REG) & ICR_ARBITRATION_LOST) || (NCR5380_read(CURRENT_SCSI_DATA_REG) & hostdata->id_higher_mask) || (NCR5380_read(INITIATOR_COMMAND_REG) & ICR_ARBITRATION_LOST)) {
+	if ((NCR5380_read(INITIATOR_COMMAND_REG) & ICR_ARBITRATION_LOST) ||
+	    (NCR5380_read(CURRENT_SCSI_DATA_REG) & hostdata->id_higher_mask) ||
+	    (NCR5380_read(INITIATOR_COMMAND_REG) & ICR_ARBITRATION_LOST)) {
 		NCR5380_write(MODE_REG, MR_BASE);
 		dsprintk(NDEBUG_ARBITRATION, instance, "lost arbitration, deasserting MR_ARBITRATE\n");
 		spin_lock_irq(&hostdata->lock);
@@ -1092,6 +1096,7 @@ static struct scsi_cmnd *NCR5380_select(
 		spin_lock_irq(&hostdata->lock);
 		goto out;
 	}
+
 	/*
 	 * Again, bus clear + bus settle time is 1.2us, however, this is
 	 * a minimum so we'll udelay ceil(1.2)
@@ -1144,7 +1149,7 @@ static struct scsi_cmnd *NCR5380_select(
 	 * The initiator shall then wait at least two deskew delays and release
 	 * the BSY signal.
 	 */
-	udelay(1);		/* wingel -- wait two bus deskew delay >2*45ns */
+	udelay(1);        /* wingel -- wait two bus deskew delay >2*45ns */
 
 	/* Reset BSY */
 	NCR5380_write(INITIATOR_COMMAND_REG, (ICR_BASE | ICR_ASSERT_DATA | ICR_ASSERT_ATN | ICR_ASSERT_SEL));
@@ -1281,7 +1286,7 @@ out:
  * bytes to transfer, **data - pointer to data pointer.
  *
  * Returns : -1 when different phase is entered without transferring
- * maximum number of bytes, 0 if all bytes or transferred or exit
+ * maximum number of bytes, 0 if all bytes are transferred or exit
  * is in same phase.
  *
  * Also, *phase, *count, *data are modified in place.
@@ -1295,7 +1300,10 @@ out:
  * counts, we will always do a pseudo DMA or DMA transfer.
  */
 
-static int NCR5380_transfer_pio(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data) {
+static int NCR5380_transfer_pio(struct Scsi_Host *instance,
+				unsigned char *phase, int *count,
+				unsigned char **data)
+{
 	unsigned char p = *phase, tmp;
 	int c = *count;
 	unsigned char *d = *data;
@@ -1306,7 +1314,7 @@ static int NCR5380_transfer_pio(struct S
 	 * REGISTER match the STATUS REGISTER
 	 */
 
-	 NCR5380_write(TARGET_COMMAND_REG, PHASE_SR_TO_TCR(p));
+	NCR5380_write(TARGET_COMMAND_REG, PHASE_SR_TO_TCR(p));
 
 	do {
 		/*
@@ -1325,6 +1333,7 @@ static int NCR5380_transfer_pio(struct S
 			NCR5380_dprint_phase(NDEBUG_PIO, instance);
 			break;
 		}
+
 		/* Do actual transfer from SCSI bus to / from memory */
 		if (!(p & SR_IO))
 			NCR5380_write(OUTPUT_DATA_REG, *d);
@@ -1462,12 +1471,14 @@ static int do_abort(struct Scsi_Host *in
 	NCR5380_write(TARGET_COMMAND_REG, PHASE_SR_TO_TCR(tmp));
 
 	if (tmp != PHASE_MSGOUT) {
-		NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN | ICR_ASSERT_ACK);
+		NCR5380_write(INITIATOR_COMMAND_REG,
+		              ICR_BASE | ICR_ASSERT_ATN | ICR_ASSERT_ACK);
 		rc = NCR5380_poll_politely(instance, STATUS_REG, SR_REQ, 0, 3 * HZ);
 		if (rc < 0)
 			goto timeout;
 		NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);
 	}
+
 	tmp = ABORT;
 	msgptr = &tmp;
 	len = 1;
@@ -1506,7 +1517,11 @@ timeout:
  */
 
 
-static int NCR5380_transfer_dma(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data) {
+static int NCR5380_transfer_dma(struct Scsi_Host *instance,
+				unsigned char *phase, int *count,
+				unsigned char **data)
+{
+	struct NCR5380_hostdata *hostdata = shost_priv(instance);
 	register int c = *count;
 	register unsigned char p = *phase;
 	register unsigned char *d = *data;
@@ -1517,8 +1532,6 @@ static int NCR5380_transfer_dma(struct S
 	unsigned char saved_data = 0, overrun = 0, residue;
 #endif
 
-	struct NCR5380_hostdata *hostdata = shost_priv(instance);
-
 	if ((tmp = (NCR5380_read(STATUS_REG) & PHASE_MASK)) != p) {
 		*phase = tmp;
 		return -1;
@@ -1748,7 +1761,8 @@ static int NCR5380_transfer_dma(struct S
  * to recover from an unexpected bus free condition.
  */
 
-static void NCR5380_information_transfer(struct Scsi_Host *instance) {
+static void NCR5380_information_transfer(struct Scsi_Host *instance)
+{
 	struct NCR5380_hostdata *hostdata = shost_priv(instance);
 	unsigned char msgout = NOP;
 	int sink = 0;
@@ -1775,11 +1789,13 @@ static void NCR5380_information_transfer
 				NCR5380_write(TARGET_COMMAND_REG, PHASE_SR_TO_TCR(tmp));
 
 				NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN | ICR_ASSERT_ACK);
-				while (NCR5380_read(STATUS_REG) & SR_REQ);
+				while (NCR5380_read(STATUS_REG) & SR_REQ)
+					;
 				NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);
 				sink = 0;
 				continue;
 			}
+
 			switch (phase) {
 			case PHASE_DATAOUT:
 #if (NDEBUG & NDEBUG_NO_DATAOUT)
@@ -1805,6 +1821,7 @@ static void NCR5380_information_transfer
 					         cmd->SCp.this_residual,
 					         cmd->SCp.buffers_residual);
 				}
+
 				/*
 				 * The preferred transfer method is going to be
 				 * PSEUDO-DMA for systems that are strictly PIO,
@@ -1823,13 +1840,15 @@ static void NCR5380_information_transfer
 
 				if (transfersize) {
 					len = transfersize;
-					if (NCR5380_transfer_dma(instance, &phase, &len, (unsigned char **) &cmd->SCp.ptr)) {
+					if (NCR5380_transfer_dma(instance, &phase,
+					    &len, (unsigned char **)&cmd->SCp.ptr)) {
 						/*
-						 * If the watchdog timer fires, all future accesses to this
-						 * device will use the polled-IO.
+						 * If the watchdog timer fires, all future
+						 * accesses to this device will use the
+						 * polled-IO.
 						 */
 						scmd_printk(KERN_INFO, cmd,
-							    "switching to slow handshake\n");
+							"switching to slow handshake\n");
 						cmd->device->borken = 1;
 						sink = 1;
 						do_abort(instance);
@@ -1905,25 +1924,24 @@ static void NCR5380_information_transfer
 						break;
 					}
 					break;
-				case DISCONNECT:{
-						/* Accept message by clearing ACK */
-						NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
-						hostdata->connected = NULL;
-						list_add(&ncmd->list, &hostdata->disconnected);
-						dsprintk(NDEBUG_INFORMATION | NDEBUG_QUEUES,
-						         instance, "connected command %p for target %d lun %llu moved to disconnected queue\n",
-						         cmd, scmd_id(cmd), cmd->device->lun);
+				case DISCONNECT:
+					/* Accept message by clearing ACK */
+					NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
+					hostdata->connected = NULL;
+					list_add(&ncmd->list, &hostdata->disconnected);
+					dsprintk(NDEBUG_INFORMATION | NDEBUG_QUEUES,
+					         instance, "connected command %p for target %d lun %llu moved to disconnected queue\n",
+					         cmd, scmd_id(cmd), cmd->device->lun);
 
-						/*
-						 * Restore phase bits to 0 so an interrupted selection,
-						 * arbitration can resume.
-						 */
-						NCR5380_write(TARGET_COMMAND_REG, 0);
+					/*
+					 * Restore phase bits to 0 so an interrupted selection,
+					 * arbitration can resume.
+					 */
+					NCR5380_write(TARGET_COMMAND_REG, 0);
 
-						/* Enable reselect interrupts */
-						NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
-						return;
-					}
+					/* Enable reselect interrupts */
+					NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
+					return;
 					/*
 					 * The SCSI data pointer is *IMPLICITLY* saved on a disconnect
 					 * operation, in violation of the SCSI spec so we can safely
@@ -2013,15 +2031,17 @@ static void NCR5380_information_transfer
 						printk("\n");
 					} else if (tmp != EXTENDED_MESSAGE)
 						scmd_printk(KERN_INFO, cmd,
-							"rejecting unknown message %02x\n",tmp);
+						            "rejecting unknown message %02x\n",
+						            tmp);
 					else
 						scmd_printk(KERN_INFO, cmd,
-							"rejecting unknown extended message code %02x, length %d\n", extended_msg[1], extended_msg[0]);
+						            "rejecting unknown extended message code %02x, length %d\n",
+						            extended_msg[1], extended_msg[0]);
 
 					msgout = MESSAGE_REJECT;
 					NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);
 					break;
-				}	/* switch (tmp) */
+				} /* switch (tmp) */
 				break;
 			case PHASE_MSGOUT:
 				len = 1;
@@ -2056,7 +2076,7 @@ static void NCR5380_information_transfer
 			default:
 				shost_printk(KERN_ERR, instance, "unknown phase\n");
 				NCR5380_dprint(NDEBUG_ANY, instance);
-			}	/* switch(phase) */
+			} /* switch(phase) */
 		} else {
 			spin_unlock_irq(&hostdata->lock);
 			NCR5380_poll_politely(instance, STATUS_REG, SR_REQ, SR_REQ, HZ);
@@ -2075,7 +2095,8 @@ static void NCR5380_information_transfer
  * Inputs : instance - this instance of the NCR5380.
  */
 
-static void NCR5380_reselect(struct Scsi_Host *instance) {
+static void NCR5380_reselect(struct Scsi_Host *instance)
+{
 	struct NCR5380_hostdata *hostdata = shost_priv(instance);
 	unsigned char target_mask;
 	unsigned char lun, phase;
@@ -2172,8 +2193,8 @@ static void NCR5380_reselect(struct Scsi
 		shost_printk(KERN_ERR, instance, "target bitmask 0x%02x lun %d not in disconnected queue.\n",
 		             target_mask, lun);
 		/*
-		 * Since we have an established nexus that we can't do anything with,
-		 * we must abort it.
+		 * Since we have an established nexus that we can't do anything
+		 * with, we must abort it.
 		 */
 		do_abort(instance);
 		return;

  parent reply	other threads:[~2015-11-18  8:36 UTC|newest]

Thread overview: 182+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-18  8:34 [PATCH 00/71] More fixes, cleanup and modernization for NCR5380 drivers Finn Thain
2015-11-18  8:34 ` [PATCH 01/71] atari_scsi: Fix SCSI host ID setting Finn Thain
2015-11-19  7:37   ` Hannes Reinecke
2015-11-18  8:34 ` [PATCH 02/71] ncr5380: Remove redundant static variable initializers Finn Thain
2015-11-19  7:37   ` Hannes Reinecke
2015-11-18  8:34 ` [PATCH 03/71] ncr5380: Eliminate PDEBUG*, TDEBUG* and DTCDEBUG* macros Finn Thain
2015-11-19  7:38   ` Hannes Reinecke
2015-11-18  8:34 ` [PATCH 04/71] ncr5380: Remove more pointless macros Finn Thain
2015-11-19  7:38   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 05/71] ncr5380: Remove NCR5380_local_declare and NCR5380_setup macros Finn Thain
2015-11-19  7:41   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 06/71] ncr5380: Remove NCR5380_instance_name macro Finn Thain
2015-11-19  7:41   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 07/71] ncr5380: Split NCR5380_init() into two functions Finn Thain
2015-11-19 13:30   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 08/71] ncr5380: Move NCR53C400-specific code Finn Thain
2015-11-19 13:31   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 09/71] atari_NCR5380: Reset bus on driver initialization if required Finn Thain
2015-11-19 13:38   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 10/71] atari_NCR5380: Remove RESET_BOOT, CONFIG_ATARI_SCSI_TOSHIBA_DELAY and CONFIG_ATARI_SCSI_RESET_BOOT Finn Thain
2015-11-19  3:05   ` Michael Schmitz
2015-11-19  4:05     ` Finn Thain
2015-11-19  4:43       ` Michael Schmitz
2015-11-19 13:41   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 11/71] ncr5380: Simplify bus reset handlers Finn Thain
2015-11-19 13:56   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 12/71] ncr5380: Remove unused hostdata->aborted flag Finn Thain
2015-11-19 14:13   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 13/71] ncr5380: Remove redundant register writes Finn Thain
2015-11-19 14:14   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 14/71] ncr5380: Use return instead of goto in NCR5380_select() Finn Thain
2015-11-19 14:14   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 15/71] ncr5380: Always escalate bad target time-out " Finn Thain
2015-11-19 14:15   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 16/71] ncr5380: Proceed with next command after NCR5380_select() calls scsi_done Finn Thain
2015-11-19 14:16   ` Hannes Reinecke
2015-11-18  8:35 ` [PATCH 17/71] ncr5380: Keep BSY asserted when entering SELECTION phase Finn Thain
2015-11-18  8:35 ` [PATCH 18/71] ncr5380: Eliminate USLEEP_WAITLONG delay Finn Thain
2015-11-18  8:35 ` [PATCH 19/71] ncr5380: Cleanup bogus {request,release}_region() calls Finn Thain
2015-11-18  8:35 ` [PATCH 20/71] ncr5380: Introduce unbound workqueue Finn Thain
2015-11-18  8:35 ` [PATCH 21/71] ncr5380: Sleep when polling, if possible Finn Thain
2015-11-18  8:35 ` [PATCH 22/71] ncr5380: Eliminate selecting state Finn Thain
2015-11-24 19:08   ` Ondrej Zary
2015-11-25  3:17     ` Finn Thain
2015-11-25 21:59       ` Ondrej Zary
2015-11-26 10:23         ` Finn Thain
2015-11-26 19:35           ` Ondrej Zary
2015-11-26 22:32             ` Finn Thain
2015-11-28 23:13               ` Ondrej Zary
2015-11-29  0:46                 ` Finn Thain
2015-11-29  9:09                   ` Ondrej Zary
2015-11-29  9:27               ` Geert Uytterhoeven
2015-11-29 10:25                 ` Finn Thain
2015-11-29 13:50                   ` Geert Uytterhoeven
2015-11-30  2:12                     ` Finn Thain
2015-11-18  8:35 ` [PATCH 23/71] ncr5380: Always retry arbitration and selection Finn Thain
2015-11-18  8:35 ` [PATCH 24/71] ncr5380: Implement NCR5380_dma_xfer_len and remove LIMIT_TRANSFERSIZE macro Finn Thain
2015-11-18  8:35 ` [PATCH 25/71] ncr5380: Rework disconnect versus poll logic Finn Thain
2015-11-18  8:35 ` [PATCH 26/71] ncr5380: Fix NCR5380_transfer_pio() result Finn Thain
2015-11-18  8:35 ` [PATCH 27/71] ncr5380: Add missing lock in eh_abort_handler Finn Thain
2015-11-18  8:35 ` [PATCH 28/71] ncr5380: Drop DEF_SCSI_QCMD macro Finn Thain
2015-11-18  8:35 ` [PATCH 29/71] ncr5380: Remove references to linked commands Finn Thain
2015-11-18  8:35 ` [PATCH 30/71] ncr5380: Add missing break after case MESSAGE_REJECT Finn Thain
2015-11-18  8:35 ` [PATCH 31/71] ncr5380: Fix !REQ timeout in do_abort() Finn Thain
2015-11-18  8:35 ` [PATCH 32/71] ncr5380: Fix bus phase " Finn Thain
2015-11-18  8:35 ` [PATCH 33/71] atari_NCR5380: Set do_abort() timeouts Finn Thain
2015-11-18  8:35 ` [PATCH 34/71] atari_NCR5380: Use arbitration timeout Finn Thain
2015-11-18  8:35 ` [PATCH 35/71] ncr5380: Dont wait for BUS FREE after disconnect Finn Thain
2015-11-18  8:35 ` [PATCH 36/71] ncr5380: Use work_struct instead of delayed_work Finn Thain
2015-11-18  8:35 ` [PATCH 37/71] ncr5380: Standardize work queueing algorithm Finn Thain
2015-11-18  8:35 ` [PATCH 38/71] ncr5380: Remove UNSAFE macro Finn Thain
2015-11-18  8:35 ` [PATCH 39/71] ncr5380: Standardize interrupt handling Finn Thain
2015-11-18  8:35 ` [PATCH 40/71] ncr5380: Introduce NCR5380_poll_politely2 Finn Thain
2015-11-18  8:35 ` [PATCH 41/71] ncr5380: Replace redundant flags with FLAG_NO_DMA_FIXUP Finn Thain
2015-11-18  8:35 ` [PATCH 42/71] ncr5380: Replace READ_OVERRUNS macro with FLAG_NO_DMA_FIXUPS Finn Thain
2015-11-18  8:35 ` [PATCH 43/71] ncr5380: Standardize reselection handling Finn Thain
2015-11-18  8:35 ` [PATCH 44/71] ncr5380: Fix off-by-one bug in extended_msg[] bounds check Finn Thain
2015-11-18  8:35 ` [PATCH 45/71] ncr5380: Cleanup #include directives Finn Thain
2015-11-18  8:35 ` [PATCH 46/71] ncr5380: Fix NDEBUG_NO_DATAOUT flag Finn Thain
2015-11-18  8:35 ` [PATCH 47/71] ncr5380: Fix and cleanup scsi_host_template initializers Finn Thain
2015-11-18  8:35 ` [PATCH 48/71] atari_NCR5380: Fix queue_size limit Finn Thain
2015-11-18  8:35 ` [PATCH 49/71] atari_NCR5380: Introduce FLAG_DTC3181E Finn Thain
2015-11-18  8:35 ` [PATCH 50/71] ncr5380: Change instance->host_lock to hostdata->lock Finn Thain
2015-11-18  8:35 ` [PATCH 51/71] ncr5380: Remove command list debug code Finn Thain
2015-11-18  8:35 ` [PATCH 52/71] ncr5380: Remove H_NO macro and introduce dsprintk Finn Thain
2015-11-18  8:35 ` [PATCH 53/71] ncr5380: Use shost_priv helper Finn Thain
2015-11-18  8:35 ` [PATCH 54/71] ncr5380: Use dsprintk() for queue debugging Finn Thain
2015-11-18  8:35 ` [PATCH 55/71] ncr5380: Remove LIST and REMOVE macros Finn Thain
2015-11-18  8:35 ` [PATCH 56/71] ncr5380: Remove redundant volatile qualifiers Finn Thain
2015-11-18  8:35 ` [PATCH 57/71] ncr5380: Use standard list data structure Finn Thain
2015-11-18  8:35 ` [PATCH 58/71] ncr5380: Refactor command completion Finn Thain
2015-11-18  8:35 ` [PATCH 59/71] ncr5380: Fix autosense bugs Finn Thain
2015-11-18  8:35 ` [PATCH 60/71] ncr5380: Implement new eh_abort_handler Finn Thain
2015-11-18  8:35 ` [PATCH 61/71] ncr5380: Fix EH during arbitration and selection Finn Thain
2015-11-18  8:35 ` [PATCH 62/71] ncr5380: Implement new eh_bus_reset_handler Finn Thain
2015-11-18  8:35 ` [PATCH 63/71] atari_NCR5380: Remove HOSTNO macro from printk() and seq_printf() calls Finn Thain
2015-11-18  8:35 ` [PATCH 64/71] atari_NCR5380: Eliminate HOSTNO macro Finn Thain
2015-11-18  8:36 ` [PATCH 65/71] atari_scsi, sun3_scsi: Remove global Scsi_Host pointer Finn Thain
2015-11-18  8:36 ` [PATCH 66/71] ncr5380: Fix soft lockups Finn Thain
2015-11-18  8:36 ` [PATCH 67/71] ncr5380: Cleanup comments Finn Thain
2015-11-18  8:36 ` [PATCH 68/71] ncr5380: Fix whitespace issues using regexp Finn Thain
2015-11-18  8:36 ` Finn Thain [this message]
2015-11-18  8:36 ` [PATCH 70/71] atari_NCR5380: Merge changes from NCR5380.c Finn Thain
2015-11-18  8:36 ` [PATCH 71/71] ncr5380: Cleanup whitespace and parentheses Finn Thain
2015-11-18 11:35 ` [PATCH 00/71] More fixes, cleanup and modernization for NCR5380 drivers Ondrej Zary
2015-11-19  2:24   ` Finn Thain
2015-11-19  2:52     ` Michael Schmitz
2015-11-19  7:48     ` Ondrej Zary
2015-11-19 22:50     ` Ondrej Zary
2015-11-20  1:41       ` Finn Thain
2015-11-20  7:21         ` Finn Thain
2015-11-20  7:33           ` Christoph Hellwig
2015-11-20  8:19             ` Finn Thain
2015-11-20  9:16               ` Ondrej Zary
2015-11-20 10:00               ` Christoph Hellwig
2015-11-20 10:53                 ` Finn Thain
2015-11-20 11:40                   ` Ondrej Zary
2015-11-20 11:45                     ` Christoph Hellwig
2015-11-20 12:23                     ` Geert Uytterhoeven
2015-11-20 12:46                       ` Ondrej Zary
2015-11-20  7:35         ` Ondrej Zary
2015-11-20 18:29         ` Ondrej Zary
2015-11-21  1:58           ` Finn Thain
2015-11-21 13:01             ` Ondrej Zary
2015-11-21 23:07               ` Ondrej Zary
2015-11-21 23:32               ` Finn Thain
2015-11-23 22:55                 ` Ondrej Zary
2015-11-24  1:21                   ` Finn Thain
2015-11-24  8:04                     ` Ondrej Zary
2015-11-24  9:13                       ` Finn Thain
2015-11-24 12:03                         ` Ondrej Zary
2015-11-24 18:04                           ` Ondrej Zary
2015-11-24 21:40                         ` Ondrej Zary
2015-11-25  2:10                           ` Finn Thain
2015-11-25  9:04                             ` Ondrej Zary
2015-11-25 11:50                               ` Finn Thain
2015-11-25 23:01                               ` Ondrej Zary
2015-11-25 21:34 ` [PATCH 72/71] ncr5380: Fix pseudo-DMA Ondrej Zary
2015-11-29  9:39 ` [RFC PATCH 73/71] ncr5380: Use runtime register mapping Ondrej Zary
2015-11-30 11:50   ` Finn Thain
2015-11-29  9:39 ` [RFC PATCH 74/71] ncr5380: Enable PDMA for NCR53C400A Ondrej Zary
2015-11-30 11:52   ` Finn Thain
2015-11-30 12:04   ` Finn Thain
2015-11-30 13:40     ` Ondrej Zary
2015-12-06  3:20       ` Finn Thain
2015-11-29 10:01 ` [RFC PATCH 75/71] ncr5380: Remove FLAG_DTC3181E Ondrej Zary
2015-11-30  4:56   ` Finn Thain
2015-12-03 23:03 ` [RFC PATCH 76/71] ncr5380: Enable PDMA for DTC chips Ondrej Zary
2015-12-04  0:12   ` Julian Calaby
2015-12-04  8:38     ` Finn Thain
2015-12-05  1:32       ` Julian Calaby
2015-12-05  2:12         ` Finn Thain
2015-12-05  2:38           ` Julian Calaby
2015-12-04  9:08   ` Finn Thain
2015-12-04  9:32     ` Ondrej Zary
2015-12-04  9:20   ` Finn Thain
2015-12-03 23:03 ` [RFC PATCH 77/71] ncr5380: Fix wait for 53C80 registers registers after PDMA Ondrej Zary
2015-12-04 21:00 ` [PATCH 73/71] ncr5380: Use runtime register mapping Ondrej Zary
2015-12-06  3:39   ` Finn Thain
2015-12-06  8:42     ` Geert Uytterhoeven
2015-12-04 21:02 ` [PATCH 74/71] ncr5380: Enable PDMA for NCR53C400A Ondrej Zary
2015-12-06  3:41   ` Finn Thain
2015-12-04 21:17 ` [PATCH 76/71] ncr5380: Enable PDMA for DTC chips Ondrej Zary
2015-12-06  3:40   ` Finn Thain
2015-12-06 22:47     ` Ondrej Zary
2015-12-05 21:18 ` [RFC PATCH 78/71] ncr5380: Add support for HP 53C400A-based cards (C2502) Ondrej Zary
2015-12-06  3:39   ` Finn Thain
2015-12-06 22:20 ` [PATCH v2 73/71] ncr5380: Use runtime register mapping Ondrej Zary
2015-12-06 22:21 ` [PATCH v2 74/71] ncr5380: Enable PDMA for NCR53C400A Ondrej Zary
2015-12-08  2:05   ` Finn Thain
2015-12-09 13:39     ` Ondrej Zary
2015-12-10 23:39       ` Finn Thain
2015-12-06 22:55 ` [PATCH v2 76/71] ncr5380: Enable PDMA for DTC chips Ondrej Zary
2015-12-06 23:17 ` [PATCH v2 77/71] ncr5380: Fix wait for 53C80 registers registers after PDMA Ondrej Zary
2015-12-07  3:16   ` Finn Thain
2015-12-07  8:08     ` Ondrej Zary
2015-12-06 23:20 ` [PATCH v3 76/71] ncr5380: Enable PDMA for DTC chips Ondrej Zary
2015-12-08  7:51 ` [PATCH v2 78/71] ncr5380: Add support for HP 53C400A-based cards (C2502) Ondrej Zary
2015-12-08 11:40   ` Finn Thain
2015-12-09 11:33     ` Ondrej Zary
2015-12-10 23:38       ` Finn Thain
2015-12-09 12:11 ` [PATCH v3 " Ondrej Zary

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=20151118083521.411167293@telegraphics.com.au \
    --to=fthain@telegraphics.com.au \
    --cc=JBottomley@odin.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --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