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 v2 70/72] atari_NCR5380: Merge changes from NCR5380.c
Date: Sun, 06 Dec 2015 12:32:36 +1100 [thread overview]
Message-ID: <20151206013144.285523352@telegraphics.com.au> (raw)
In-Reply-To: 20151206013126.995379403@telegraphics.com.au
[-- Attachment #1: atari_NCR5380-merge-trivia-from-NCR5380 --]
[-- Type: text/plain, Size: 5998 bytes --]
In the past, atari_NCR5380.c was overlooked by those working on NCR5380.c
and this caused needless divergence. All of the changes in this patch were
taken from 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/atari_NCR5380.c | 108 +++++++++++++++++++++++++------------------
1 file changed, 64 insertions(+), 44 deletions(-)
Index: linux/drivers/scsi/atari_NCR5380.c
===================================================================
--- linux.orig/drivers/scsi/atari_NCR5380.c 2015-12-06 12:31:16.000000000 +1100
+++ linux/drivers/scsi/atari_NCR5380.c 2015-12-06 12:31:21.000000000 +1100
@@ -443,22 +443,39 @@ static struct {
unsigned char mask;
const char *name;
} signals[] = {
- { SR_DBP, "PARITY"}, { SR_RST, "RST" }, { SR_BSY, "BSY" },
- { SR_REQ, "REQ" }, { SR_MSG, "MSG" }, { SR_CD, "CD" }, { SR_IO, "IO" },
- { SR_SEL, "SEL" }, {0, NULL}
-}, basrs[] = {
- {BASR_ATN, "ATN"}, {BASR_ACK, "ACK"}, {0, NULL}
-}, icrs[] = {
- {ICR_ASSERT_RST, "ASSERT RST"},{ICR_ASSERT_ACK, "ASSERT ACK"},
- {ICR_ASSERT_BSY, "ASSERT BSY"}, {ICR_ASSERT_SEL, "ASSERT SEL"},
- {ICR_ASSERT_ATN, "ASSERT ATN"}, {ICR_ASSERT_DATA, "ASSERT DATA"},
+ {SR_DBP, "PARITY"},
+ {SR_RST, "RST"},
+ {SR_BSY, "BSY"},
+ {SR_REQ, "REQ"},
+ {SR_MSG, "MSG"},
+ {SR_CD, "CD"},
+ {SR_IO, "IO"},
+ {SR_SEL, "SEL"},
{0, NULL}
-}, mrs[] = {
- {MR_BLOCK_DMA_MODE, "MODE BLOCK DMA"}, {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"},
+},
+basrs[] = {
+ {BASR_ATN, "ATN"},
+ {BASR_ACK, "ACK"},
+ {0, NULL}
+},
+icrs[] = {
+ {ICR_ASSERT_RST, "ASSERT RST"},
+ {ICR_ASSERT_ACK, "ASSERT ACK"},
+ {ICR_ASSERT_BSY, "ASSERT BSY"},
+ {ICR_ASSERT_SEL, "ASSERT SEL"},
+ {ICR_ASSERT_ATN, "ASSERT ATN"},
+ {ICR_ASSERT_DATA, "ASSERT DATA"},
+ {0, NULL}
+},
+mrs[] = {
+ {MR_BLOCK_DMA_MODE, "MODE BLOCK DMA"},
+ {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"},
+ {MR_DMA_MODE, "MODE DMA"},
+ {MR_ARBITRATE, "MODE ARBITRATION"},
{0, NULL}
};
@@ -502,8 +519,12 @@ 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_DATAOUT, "DATAOUT"},
+ {PHASE_DATAIN, "DATAIN"},
+ {PHASE_CMDOUT, "CMDOUT"},
+ {PHASE_STATIN, "STATIN"},
+ {PHASE_MSGOUT, "MSGOUT"},
+ {PHASE_MSGIN, "MSGIN"},
{PHASE_UNKNOWN, "UNKNOWN"}
};
@@ -529,7 +550,6 @@ static void NCR5380_print_phase(struct S
shost_printk(KERN_DEBUG, instance, "phase %s\n", phases[i].name);
}
}
-
#endif
/**
@@ -1487,9 +1507,9 @@ static int NCR5380_transfer_pio(struct S
unsigned char *phase, int *count,
unsigned char **data)
{
- register unsigned char p = *phase, tmp;
- register int c = *count;
- register unsigned char *d = *data;
+ unsigned char p = *phase, tmp;
+ int c = *count;
+ unsigned char *d = *data;
/*
* The NCR5380 chip will only drive the SCSI bus when the
@@ -1556,17 +1576,17 @@ static int NCR5380_transfer_pio(struct S
dsprintk(NDEBUG_HANDSHAKE, instance, "REQ negated, handshake complete\n");
- /*
- * We have several special cases to consider during REQ/ACK handshaking :
- * 1. We were in MSGOUT phase, and we are on the last byte of the
- * message. ATN must be dropped as ACK is dropped.
- *
- * 2. We are in a MSGIN phase, and we are on the last byte of the
- * message. We must exit with ACK asserted, so that the calling
- * code may raise ATN before dropping ACK to reject the message.
- *
- * 3. ACK and ATN are clear and the target may proceed as normal.
- */
+/*
+ * We have several special cases to consider during REQ/ACK handshaking :
+ * 1. We were in MSGOUT phase, and we are on the last byte of the
+ * message. ATN must be dropped as ACK is dropped.
+ *
+ * 2. We are in a MSGIN phase, and we are on the last byte of the
+ * message. We must exit with ACK asserted, so that the calling
+ * code may raise ATN before dropping ACK to reject the message.
+ *
+ * 3. ACK and ATN are clear and the target may proceed as normal.
+ */
if (!(p == PHASE_MSGIN && c == 1)) {
if (p == PHASE_MSGOUT && c > 1)
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE | ICR_ASSERT_ATN);
@@ -1631,7 +1651,7 @@ static void do_reset(struct Scsi_Host *i
static int do_abort(struct Scsi_Host *instance)
{
- unsigned char tmp, *msgptr, phase;
+ unsigned char *msgptr, phase, tmp;
int len;
int rc;
@@ -2090,18 +2110,18 @@ static void NCR5380_information_transfer
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
break;
case EXTENDED_MESSAGE:
- /*
- * Extended messages are sent in the following format :
- * Byte
- * 0 EXTENDED_MESSAGE == 1
- * 1 length (includes one byte for code, doesn't
- * include first two bytes)
- * 2 code
- * 3..length+1 arguments
- *
- * Start the extended message buffer with the EXTENDED_MESSAGE
- * byte, since spi_print_msg() wants the whole thing.
- */
+/*
+ * Extended messages are sent in the following format :
+ * Byte
+ * 0 EXTENDED_MESSAGE == 1
+ * 1 length (includes one byte for code, doesn't
+ * include first two bytes)
+ * 2 code
+ * 3..length+1 arguments
+ *
+ * Start the extended message buffer with the EXTENDED_MESSAGE
+ * byte, since spi_print_msg() wants the whole thing.
+ */
extended_msg[0] = EXTENDED_MESSAGE;
/* Accept first byte by clearing ACK */
NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
next prev parent reply other threads:[~2015-12-06 3:46 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-06 1:31 [PATCH v2 00/72] More fixes, cleanup and modernization for NCR5380 drivers Finn Thain
2015-12-06 1:31 ` [PATCH v2 01/72] atari_scsi: Fix SCSI host ID setting Finn Thain
2015-12-06 1:31 ` [PATCH v2 02/72] ncr5380: Remove redundant static variable initializers Finn Thain
2015-12-06 1:31 ` [PATCH v2 03/72] ncr5380: Eliminate PDEBUG*, TDEBUG* and DTCDEBUG* macros Finn Thain
2015-12-06 1:31 ` [PATCH v2 04/72] ncr5380: Remove more pointless macros Finn Thain
2015-12-06 1:31 ` [PATCH v2 05/72] ncr5380: Remove NCR5380_local_declare and NCR5380_setup macros Finn Thain
2015-12-06 1:31 ` [PATCH v2 06/72] ncr5380: Remove NCR5380_instance_name macro Finn Thain
2015-12-06 1:31 ` [PATCH v2 07/72] ncr5380: Split NCR5380_init() into two functions Finn Thain
2015-12-06 1:31 ` [PATCH v2 08/72] ncr5380: Move NCR53C400-specific code Finn Thain
2015-12-06 1:31 ` [PATCH v2 09/72] atari_NCR5380: Reset bus on driver initialization if required Finn Thain
2015-12-06 1:31 ` [PATCH v2 10/72] atari_NCR5380: Remove RESET_BOOT, CONFIG_ATARI_SCSI_TOSHIBA_DELAY and CONFIG_ATARI_SCSI_RESET_BOOT Finn Thain
2015-12-06 1:31 ` [PATCH v2 11/72] ncr5380: Simplify bus reset handlers Finn Thain
2015-12-06 1:31 ` [PATCH v2 12/72] ncr5380: Remove unused hostdata->aborted flag Finn Thain
2015-12-06 1:31 ` [PATCH v2 13/72] ncr5380: Remove redundant register writes Finn Thain
2015-12-06 1:31 ` [PATCH v2 14/72] ncr5380: Use return instead of goto in NCR5380_select() Finn Thain
2015-12-06 1:31 ` [PATCH v2 15/72] ncr5380: Always escalate bad target time-out " Finn Thain
2015-12-06 1:31 ` [PATCH v2 16/72] ncr5380: Proceed with next command after NCR5380_select() calls scsi_done Finn Thain
2015-12-06 1:31 ` [PATCH v2 17/72] ncr5380: Keep BSY asserted when entering SELECTION phase Finn Thain
2015-12-06 1:31 ` [PATCH v2 18/72] ncr5380: Eliminate USLEEP_WAITLONG delay Finn Thain
2015-12-06 1:31 ` [PATCH v2 19/72] ncr5380: Cleanup bogus {request,release}_region() calls Finn Thain
2015-12-06 1:31 ` [PATCH v2 20/72] ncr5380: Introduce unbound workqueue Finn Thain
2015-12-06 1:31 ` [PATCH v2 21/72] ncr5380: Sleep when polling, if possible Finn Thain
2015-12-06 10:18 ` Geert Uytterhoeven
2015-12-06 22:07 ` Finn Thain
2015-12-06 1:31 ` [PATCH v2 22/72] ncr5380: Eliminate selecting state Finn Thain
2015-12-06 1:31 ` [PATCH v2 23/72] ncr5380: Always retry arbitration and selection Finn Thain
2015-12-06 1:31 ` [PATCH v2 24/72] ncr5380: Implement NCR5380_dma_xfer_len and remove LIMIT_TRANSFERSIZE macro Finn Thain
2015-12-06 1:31 ` [PATCH v2 25/72] ncr5380: Rework disconnect versus poll logic Finn Thain
2015-12-06 1:31 ` [PATCH v2 26/72] ncr5380: Fix NCR5380_transfer_pio() result Finn Thain
2015-12-06 1:31 ` [PATCH v2 27/72] ncr5380: Add missing lock in eh_abort_handler Finn Thain
2015-12-06 1:31 ` [PATCH v2 28/72] ncr5380: Drop DEF_SCSI_QCMD macro Finn Thain
2015-12-06 1:31 ` [PATCH v2 29/72] ncr5380: Remove references to linked commands Finn Thain
2015-12-06 1:31 ` [PATCH v2 30/72] ncr5380: Add missing break after case MESSAGE_REJECT Finn Thain
2015-12-06 1:31 ` [PATCH v2 31/72] ncr5380: Fix !REQ timeout in do_abort() Finn Thain
2015-12-06 1:31 ` [PATCH v2 32/72] ncr5380: Fix bus phase " Finn Thain
2015-12-06 1:31 ` [PATCH v2 33/72] atari_NCR5380: Set do_abort() timeouts Finn Thain
2015-12-06 1:32 ` [PATCH v2 34/72] atari_NCR5380: Use arbitration timeout Finn Thain
2015-12-06 1:32 ` [PATCH v2 35/72] ncr5380: Dont wait for BUS FREE after disconnect Finn Thain
2015-12-06 1:32 ` [PATCH v2 36/72] ncr5380: Use work_struct instead of delayed_work Finn Thain
2015-12-06 1:32 ` [PATCH v2 37/72] ncr5380: Standardize work queueing algorithm Finn Thain
2015-12-06 1:32 ` [PATCH v2 38/72] ncr5380: Remove UNSAFE macro Finn Thain
2015-12-06 1:32 ` [PATCH v2 39/72] ncr5380: Standardize interrupt handling Finn Thain
2015-12-06 1:32 ` [PATCH v2 40/72] ncr5380: Introduce NCR5380_poll_politely2 Finn Thain
2015-12-06 1:32 ` [PATCH v2 41/72] ncr5380: Replace redundant flags with FLAG_NO_DMA_FIXUP Finn Thain
2015-12-06 1:32 ` [PATCH v2 42/72] ncr5380: Replace READ_OVERRUNS macro with FLAG_NO_DMA_FIXUPS Finn Thain
2015-12-06 1:32 ` [PATCH v2 43/72] ncr5380: Standardize reselection handling Finn Thain
2015-12-06 1:32 ` [PATCH v2 44/72] ncr5380: Fix off-by-one bug in extended_msg[] bounds check Finn Thain
2015-12-06 1:32 ` [PATCH v2 45/72] ncr5380: Cleanup #include directives Finn Thain
2015-12-06 1:32 ` [PATCH v2 46/72] ncr5380: Fix NDEBUG_NO_DATAOUT flag Finn Thain
2015-12-06 1:32 ` [PATCH v2 47/72] ncr5380: Fix and cleanup scsi_host_template initializers Finn Thain
2015-12-06 1:32 ` [PATCH v2 48/72] atari_NCR5380: Fix queue_size limit Finn Thain
2015-12-06 1:32 ` [PATCH v2 49/72] ncr5380: Remove redundant ICR_ARBITRATION_LOST test and eliminate FLAG_DTC3181E Finn Thain
2015-12-06 1:32 ` [PATCH v2 50/72] ncr5380: Change instance->host_lock to hostdata->lock Finn Thain
2015-12-06 1:32 ` [PATCH v2 51/72] ncr5380: Remove command list debug code Finn Thain
2015-12-06 1:32 ` [PATCH v2 52/72] ncr5380: Remove H_NO macro and introduce dsprintk Finn Thain
2015-12-06 1:32 ` [PATCH v2 53/72] ncr5380: Use shost_priv helper Finn Thain
2015-12-06 1:32 ` [PATCH v2 54/72] ncr5380: Use dsprintk() for queue debugging Finn Thain
2015-12-06 1:32 ` [PATCH v2 55/72] ncr5380: Remove LIST and REMOVE macros Finn Thain
2015-12-06 1:32 ` [PATCH v2 56/72] ncr5380: Remove redundant volatile qualifiers Finn Thain
2015-12-06 1:32 ` [PATCH v2 57/72] ncr5380: Use standard list data structure Finn Thain
2015-12-06 1:32 ` [PATCH v2 58/72] ncr5380: Refactor command completion Finn Thain
2015-12-06 1:32 ` [PATCH v2 59/72] ncr5380: Fix autosense bugs Finn Thain
2015-12-06 1:32 ` [PATCH v2 60/72] ncr5380: Implement new eh_abort_handler Finn Thain
2015-12-06 1:32 ` [PATCH v2 61/72] ncr5380: Fix EH during arbitration and selection Finn Thain
2015-12-06 1:32 ` [PATCH v2 62/72] ncr5380: Implement new eh_bus_reset_handler Finn Thain
2015-12-06 1:32 ` [PATCH v2 63/72] atari_NCR5380: Remove HOSTNO macro from printk() and seq_printf() calls Finn Thain
2015-12-06 1:32 ` [PATCH v2 64/72] atari_NCR5380: Eliminate HOSTNO macro Finn Thain
2015-12-06 1:32 ` [PATCH v2 65/72] atari_scsi, sun3_scsi: Remove global Scsi_Host pointer Finn Thain
2015-12-06 1:32 ` [PATCH v2 66/72] ncr5380: Fix soft lockups Finn Thain
2015-12-06 1:32 ` [PATCH v2 67/72] ncr5380: Cleanup comments Finn Thain
2015-12-06 1:32 ` [PATCH v2 68/72] ncr5380: Fix whitespace issues using regexp Finn Thain
2015-12-06 1:32 ` [PATCH v2 69/72] ncr5380: Merge changes from atari_NCR5380.c Finn Thain
2015-12-06 1:32 ` Finn Thain [this message]
2015-12-06 1:32 ` [PATCH v2 71/72] ncr5380: Cleanup whitespace and parentheses Finn Thain
2015-12-06 1:32 ` [PATCH v2 72/72] ncr5380: Fix pseudo DMA transfers on 53C400 Finn Thain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151206013144.285523352@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