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

diff --git a/a/1.txt b/N1/1.txt
index 32719cf..f58b77c 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,206 +1,3 @@
-Static variables from dtc.c and pas16.c should not appear in the core
-NCR5380.c driver. Aside from being a layering issue this worsens the
-divergence between the three core driver variants (atari_NCR5380.c and
-sun3_NCR5380.c don't support PSEUDO_DMA) and it can mean multiple hosts
-share the same counters.
-
-Fix this by making the pseudo DMA spin counters in the core more generic.
-This also avoids the abuse of the {DTC,PAS16}_PUBLIC_RELEASE macros, so
-they can be removed.
-
-oak.c doesn't use PDMA and hence it doesn't use the counters and hence it
-needs no write_info() method. Remove it.
-
-Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
-
----
- drivers/scsi/NCR5380.c |   22 ++++++++++------------
- drivers/scsi/NCR5380.h |    4 ++++
- drivers/scsi/arm/oak.c |    2 --
- drivers/scsi/dtc.c     |   13 ++++++-------
- drivers/scsi/pas16.c   |   12 ++++++------
- 5 files changed, 26 insertions(+), 27 deletions(-)
-
-Index: linux/drivers/scsi/NCR5380.c
-===================================================================
---- linux.orig/drivers/scsi/NCR5380.c	2014-10-02 16:56:05.000000000 +1000
-+++ linux/drivers/scsi/NCR5380.c	2014-10-02 16:56:09.000000000 +1000
-@@ -693,6 +693,7 @@ static void NCR5380_print_status(struct
- 	NCR5380_dprint_phase(NDEBUG_ANY, instance);
- }
- 
-+#ifdef PSEUDO_DMA
- /******************************************/
- /*
-  * /proc/scsi/[dtc pas16 t128 generic]/[0-ASC_NUM_BOARD_SUPPORTED]
-@@ -710,14 +711,13 @@ static void NCR5380_print_status(struct
- static int __maybe_unused NCR5380_write_info(struct Scsi_Host *instance,
- 	char *buffer, int length)
- {
--#ifdef DTC_PUBLIC_RELEASE
--	dtc_wmaxi = dtc_maxi = 0;
--#endif
--#ifdef PAS16_PUBLIC_RELEASE
--	pas_wmaxi = pas_maxi = 0;
--#endif
--	return (-ENOSYS);	/* Currently this is a no-op */
-+	struct NCR5380_hostdata *hostdata = shost_priv(instance);
-+
-+	hostdata->spin_max_r = 0;
-+	hostdata->spin_max_w = 0;
-+	return 0;
- }
-+#endif
- 
- #undef SPRINTF
- #define SPRINTF(args...) seq_printf(m, ## args)
-@@ -752,11 +752,9 @@ static int __maybe_unused NCR5380_show_i
- 	SPRINTF("PAS16 release=%d", PAS16_PUBLIC_RELEASE);
- #endif
- 
--#ifdef DTC_PUBLIC_RELEASE
--	SPRINTF("Highwater I/O busy_spin_counts -- write: %d  read: %d\n", dtc_wmaxi, dtc_maxi);
--#endif
--#ifdef PAS16_PUBLIC_RELEASE
--	SPRINTF("Highwater I/O busy_spin_counts -- write: %d  read: %d\n", pas_wmaxi, pas_maxi);
-+#ifdef PSEUDO_DMA
-+	SPRINTF("Highwater I/O busy spin counts: write %d, read %d\n",
-+	        hostdata->spin_max_w, hostdata->spin_max_r);
- #endif
- 	spin_lock_irq(instance->host_lock);
- 	if (!hostdata->connected)
-Index: linux/drivers/scsi/NCR5380.h
-===================================================================
---- linux.orig/drivers/scsi/NCR5380.h	2014-10-02 16:56:05.000000000 +1000
-+++ linux/drivers/scsi/NCR5380.h	2014-10-02 16:56:09.000000000 +1000
-@@ -270,6 +270,10 @@ struct NCR5380_hostdata {
- 	struct delayed_work coroutine;		/* our co-routine */
- 	struct scsi_eh_save ses;
- 	char info[256];
-+#ifdef PSEUDO_DMA
-+	unsigned spin_max_r;
-+	unsigned spin_max_w;
-+#endif
- };
- 
- #ifdef __KERNEL__
-Index: linux/drivers/scsi/dtc.c
-===================================================================
---- linux.orig/drivers/scsi/dtc.c	2014-10-02 16:56:05.000000000 +1000
-+++ linux/drivers/scsi/dtc.c	2014-10-02 16:56:09.000000000 +1000
-@@ -332,13 +332,11 @@ static int dtc_biosparam(struct scsi_dev
-  * 	timeout.
- */
- 
--static int dtc_maxi = 0;
--static int dtc_wmaxi = 0;
--
- static inline int NCR5380_pread(struct Scsi_Host *instance, unsigned char *dst, int len)
- {
- 	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);
- 
-@@ -369,8 +367,8 @@ static inline int NCR5380_pread(struct S
- 	NCR5380_write(MODE_REG, 0);	/* Clear the operating mode */
- 	rtrc(0);
- 	NCR5380_read(RESET_PARITY_INTERRUPT_REG);
--	if (i > dtc_maxi)
--		dtc_maxi = i;
-+	if (i > hostdata->spin_max_r)
-+		hostdata->spin_max_r = i;
- 	return (0);
- }
- 
-@@ -390,6 +388,7 @@ static inline int NCR5380_pread(struct S
- static inline int NCR5380_pwrite(struct Scsi_Host *instance, unsigned char *src, int len)
- {
- 	int i;
-+	struct NCR5380_hostdata *hostdata = shost_priv(instance);
- 	NCR5380_local_declare();
- 	NCR5380_setup(instance);
- 
-@@ -422,8 +421,8 @@ static inline int NCR5380_pwrite(struct
- 	/* Check for parity error here. fixme. */
- 	NCR5380_write(MODE_REG, 0);	/* Clear the operating mode */
- 	rtrc(0);
--	if (i > dtc_wmaxi)
--		dtc_wmaxi = i;
-+	if (i > hostdata->spin_max_w)
-+		hostdata->spin_max_w = i;
- 	return (0);
- }
- 
-Index: linux/drivers/scsi/pas16.c
-===================================================================
---- linux.orig/drivers/scsi/pas16.c	2014-10-02 16:56:05.000000000 +1000
-+++ linux/drivers/scsi/pas16.c	2014-10-02 16:56:09.000000000 +1000
-@@ -88,8 +88,6 @@
- #include "NCR5380.h"
- 
- 
--static int pas_maxi = 0;
--static int pas_wmaxi = 0;
- static unsigned short pas16_addr = 0;
- static int pas16_irq = 0;
-  
-@@ -502,6 +500,7 @@ static inline int NCR5380_pread (struct
- 	P_DATA_REG_OFFSET);
-     register int i = len;
-     int ii = 0;
-+    struct NCR5380_hostdata *hostdata = shost_priv(instance);
- 
-     while ( !(inb(instance->io_port + P_STATUS_REG_OFFSET) & P_ST_RDY) )
- 	 ++ii;
-@@ -514,8 +513,8 @@ static inline int NCR5380_pread (struct
- 	    instance->host_no);
- 	return -1;
-     }
--   if (ii > pas_maxi)
--      pas_maxi = ii;
-+    if (ii > hostdata->spin_max_r)
-+        hostdata->spin_max_r = ii;
-     return 0;
- }
- 
-@@ -538,6 +537,7 @@ static inline int NCR5380_pwrite (struct
-     register unsigned short reg = (instance->io_port + P_DATA_REG_OFFSET);
-     register int i = len;
-     int ii = 0;
-+    struct NCR5380_hostdata *hostdata = shost_priv(instance);
- 
-     while ( !((inb(instance->io_port + P_STATUS_REG_OFFSET)) & P_ST_RDY) )
- 	 ++ii;
-@@ -550,8 +550,8 @@ static inline int NCR5380_pwrite (struct
- 	    instance->host_no);
- 	return -1;
-     }
--    if (ii > pas_maxi)
--	 pas_wmaxi = ii;
-+    if (ii > hostdata->spin_max_w)
-+        hostdata->spin_max_w = ii;
-     return 0;
- }
- 
-Index: linux/drivers/scsi/arm/oak.c
-===================================================================
---- linux.orig/drivers/scsi/arm/oak.c	2014-10-02 16:56:05.000000000 +1000
-+++ linux/drivers/scsi/arm/oak.c	2014-10-02 16:56:09.000000000 +1000
-@@ -31,7 +31,6 @@
- #define NCR5380_queue_command		oakscsi_queue_command
- #define NCR5380_info			oakscsi_info
- #define NCR5380_show_info		oakscsi_show_info
--#define NCR5380_write_info		oakscsi_write_info
- 
- #define NCR5380_implementation_fields	\
- 	void __iomem *base
-@@ -108,7 +107,6 @@ printk("reading %p len %d\n", addr, len)
- static struct scsi_host_template oakscsi_template = {
- 	.module			= THIS_MODULE,
- 	.show_info		= oakscsi_show_info,
--	.write_info		= oakscsi_write_info,
- 	.name			= "Oak 16-bit SCSI",
- 	.info			= oakscsi_info,
- 	.queuecommand		= oakscsi_queue_command,
+An embedded and charset-unspecified text was scrubbed...
+Name: ncr5380-move-pdma-spin-counters
+URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141002/b6a4c33e/attachment.ksh>
diff --git a/a/content_digest b/N1/content_digest
index 9175c5d..779a24c 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,222 +1,12 @@
  "ref\020141002065628.256592712@telegraphics.com.au\0"
- "From\0Finn Thain <fthain@telegraphics.com.au>\0"
+ "From\0fthain@telegraphics.com.au (Finn Thain)\0"
  "Subject\0[PATCH 13/29] ncr5380: Move static PDMA spin counters to host data\0"
  "Date\0Thu, 02 Oct 2014 16:56:41 +1000\0"
- "To\0James E.J. Bottomley <JBottomley@parallels.com>\0"
- "Cc\0Michael Schmitz <schmitzmic@gmail.com>"
-  Sam Creasey <sammy@sammy.net>
-  linux-scsi@vger.kernel.org
-  linux-m68k@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-move-pdma-spin-counters\0"
  "b\0"
- "Static variables from dtc.c and pas16.c should not appear in the core\n"
- "NCR5380.c driver. Aside from being a layering issue this worsens the\n"
- "divergence between the three core driver variants (atari_NCR5380.c and\n"
- "sun3_NCR5380.c don't support PSEUDO_DMA) and it can mean multiple hosts\n"
- "share the same counters.\n"
- "\n"
- "Fix this by making the pseudo DMA spin counters in the core more generic.\n"
- "This also avoids the abuse of the {DTC,PAS16}_PUBLIC_RELEASE macros, so\n"
- "they can be removed.\n"
- "\n"
- "oak.c doesn't use PDMA and hence it doesn't use the counters and hence it\n"
- "needs no write_info() method. Remove it.\n"
- "\n"
- "Signed-off-by: Finn Thain <fthain@telegraphics.com.au>\n"
- "\n"
- "---\n"
- " drivers/scsi/NCR5380.c |   22 ++++++++++------------\n"
- " drivers/scsi/NCR5380.h |    4 ++++\n"
- " drivers/scsi/arm/oak.c |    2 --\n"
- " drivers/scsi/dtc.c     |   13 ++++++-------\n"
- " drivers/scsi/pas16.c   |   12 ++++++------\n"
- " 5 files changed, 26 insertions(+), 27 deletions(-)\n"
- "\n"
- "Index: linux/drivers/scsi/NCR5380.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/NCR5380.c\t2014-10-02 16:56:05.000000000 +1000\n"
- "+++ linux/drivers/scsi/NCR5380.c\t2014-10-02 16:56:09.000000000 +1000\n"
- "@@ -693,6 +693,7 @@ static void NCR5380_print_status(struct\n"
- " \tNCR5380_dprint_phase(NDEBUG_ANY, instance);\n"
- " }\n"
- " \n"
- "+#ifdef PSEUDO_DMA\n"
- " /******************************************/\n"
- " /*\n"
- "  * /proc/scsi/[dtc pas16 t128 generic]/[0-ASC_NUM_BOARD_SUPPORTED]\n"
- "@@ -710,14 +711,13 @@ static void NCR5380_print_status(struct\n"
- " static int __maybe_unused NCR5380_write_info(struct Scsi_Host *instance,\n"
- " \tchar *buffer, int length)\n"
- " {\n"
- "-#ifdef DTC_PUBLIC_RELEASE\n"
- "-\tdtc_wmaxi = dtc_maxi = 0;\n"
- "-#endif\n"
- "-#ifdef PAS16_PUBLIC_RELEASE\n"
- "-\tpas_wmaxi = pas_maxi = 0;\n"
- "-#endif\n"
- "-\treturn (-ENOSYS);\t/* Currently this is a no-op */\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- "+\n"
- "+\thostdata->spin_max_r = 0;\n"
- "+\thostdata->spin_max_w = 0;\n"
- "+\treturn 0;\n"
- " }\n"
- "+#endif\n"
- " \n"
- " #undef SPRINTF\n"
- " #define SPRINTF(args...) seq_printf(m, ## args)\n"
- "@@ -752,11 +752,9 @@ static int __maybe_unused NCR5380_show_i\n"
- " \tSPRINTF(\"PAS16 release=%d\", PAS16_PUBLIC_RELEASE);\n"
- " #endif\n"
- " \n"
- "-#ifdef DTC_PUBLIC_RELEASE\n"
- "-\tSPRINTF(\"Highwater I/O busy_spin_counts -- write: %d  read: %d\\n\", dtc_wmaxi, dtc_maxi);\n"
- "-#endif\n"
- "-#ifdef PAS16_PUBLIC_RELEASE\n"
- "-\tSPRINTF(\"Highwater I/O busy_spin_counts -- write: %d  read: %d\\n\", pas_wmaxi, pas_maxi);\n"
- "+#ifdef PSEUDO_DMA\n"
- "+\tSPRINTF(\"Highwater I/O busy spin counts: write %d, read %d\\n\",\n"
- "+\t        hostdata->spin_max_w, hostdata->spin_max_r);\n"
- " #endif\n"
- " \tspin_lock_irq(instance->host_lock);\n"
- " \tif (!hostdata->connected)\n"
- "Index: linux/drivers/scsi/NCR5380.h\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/NCR5380.h\t2014-10-02 16:56:05.000000000 +1000\n"
- "+++ linux/drivers/scsi/NCR5380.h\t2014-10-02 16:56:09.000000000 +1000\n"
- "@@ -270,6 +270,10 @@ struct NCR5380_hostdata {\n"
- " \tstruct delayed_work coroutine;\t\t/* our co-routine */\n"
- " \tstruct scsi_eh_save ses;\n"
- " \tchar info[256];\n"
- "+#ifdef PSEUDO_DMA\n"
- "+\tunsigned spin_max_r;\n"
- "+\tunsigned spin_max_w;\n"
- "+#endif\n"
- " };\n"
- " \n"
- " #ifdef __KERNEL__\n"
- "Index: linux/drivers/scsi/dtc.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/dtc.c\t2014-10-02 16:56:05.000000000 +1000\n"
- "+++ linux/drivers/scsi/dtc.c\t2014-10-02 16:56:09.000000000 +1000\n"
- "@@ -332,13 +332,11 @@ static int dtc_biosparam(struct scsi_dev\n"
- "  * \ttimeout.\n"
- " */\n"
- " \n"
- "-static int dtc_maxi = 0;\n"
- "-static int dtc_wmaxi = 0;\n"
- "-\n"
- " static inline int NCR5380_pread(struct Scsi_Host *instance, unsigned char *dst, int len)\n"
- " {\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"
- "@@ -369,8 +367,8 @@ static inline int NCR5380_pread(struct S\n"
- " \tNCR5380_write(MODE_REG, 0);\t/* Clear the operating mode */\n"
- " \trtrc(0);\n"
- " \tNCR5380_read(RESET_PARITY_INTERRUPT_REG);\n"
- "-\tif (i > dtc_maxi)\n"
- "-\t\tdtc_maxi = i;\n"
- "+\tif (i > hostdata->spin_max_r)\n"
- "+\t\thostdata->spin_max_r = i;\n"
- " \treturn (0);\n"
- " }\n"
- " \n"
- "@@ -390,6 +388,7 @@ static inline int NCR5380_pread(struct S\n"
- " static inline int NCR5380_pwrite(struct Scsi_Host *instance, unsigned char *src, int len)\n"
- " {\n"
- " \tint i;\n"
- "+\tstruct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- " \tNCR5380_local_declare();\n"
- " \tNCR5380_setup(instance);\n"
- " \n"
- "@@ -422,8 +421,8 @@ static inline int NCR5380_pwrite(struct\n"
- " \t/* Check for parity error here. fixme. */\n"
- " \tNCR5380_write(MODE_REG, 0);\t/* Clear the operating mode */\n"
- " \trtrc(0);\n"
- "-\tif (i > dtc_wmaxi)\n"
- "-\t\tdtc_wmaxi = i;\n"
- "+\tif (i > hostdata->spin_max_w)\n"
- "+\t\thostdata->spin_max_w = i;\n"
- " \treturn (0);\n"
- " }\n"
- " \n"
- "Index: linux/drivers/scsi/pas16.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/pas16.c\t2014-10-02 16:56:05.000000000 +1000\n"
- "+++ linux/drivers/scsi/pas16.c\t2014-10-02 16:56:09.000000000 +1000\n"
- "@@ -88,8 +88,6 @@\n"
- " #include \"NCR5380.h\"\n"
- " \n"
- " \n"
- "-static int pas_maxi = 0;\n"
- "-static int pas_wmaxi = 0;\n"
- " static unsigned short pas16_addr = 0;\n"
- " static int pas16_irq = 0;\n"
- "  \n"
- "@@ -502,6 +500,7 @@ static inline int NCR5380_pread (struct\n"
- " \tP_DATA_REG_OFFSET);\n"
- "     register int i = len;\n"
- "     int ii = 0;\n"
- "+    struct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- " \n"
- "     while ( !(inb(instance->io_port + P_STATUS_REG_OFFSET) & P_ST_RDY) )\n"
- " \t ++ii;\n"
- "@@ -514,8 +513,8 @@ static inline int NCR5380_pread (struct\n"
- " \t    instance->host_no);\n"
- " \treturn -1;\n"
- "     }\n"
- "-   if (ii > pas_maxi)\n"
- "-      pas_maxi = ii;\n"
- "+    if (ii > hostdata->spin_max_r)\n"
- "+        hostdata->spin_max_r = ii;\n"
- "     return 0;\n"
- " }\n"
- " \n"
- "@@ -538,6 +537,7 @@ static inline int NCR5380_pwrite (struct\n"
- "     register unsigned short reg = (instance->io_port + P_DATA_REG_OFFSET);\n"
- "     register int i = len;\n"
- "     int ii = 0;\n"
- "+    struct NCR5380_hostdata *hostdata = shost_priv(instance);\n"
- " \n"
- "     while ( !((inb(instance->io_port + P_STATUS_REG_OFFSET)) & P_ST_RDY) )\n"
- " \t ++ii;\n"
- "@@ -550,8 +550,8 @@ static inline int NCR5380_pwrite (struct\n"
- " \t    instance->host_no);\n"
- " \treturn -1;\n"
- "     }\n"
- "-    if (ii > pas_maxi)\n"
- "-\t pas_wmaxi = ii;\n"
- "+    if (ii > hostdata->spin_max_w)\n"
- "+        hostdata->spin_max_w = ii;\n"
- "     return 0;\n"
- " }\n"
- " \n"
- "Index: linux/drivers/scsi/arm/oak.c\n"
- "===================================================================\n"
- "--- linux.orig/drivers/scsi/arm/oak.c\t2014-10-02 16:56:05.000000000 +1000\n"
- "+++ linux/drivers/scsi/arm/oak.c\t2014-10-02 16:56:09.000000000 +1000\n"
- "@@ -31,7 +31,6 @@\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"
- "-#define NCR5380_write_info\t\toakscsi_write_info\n"
- " \n"
- " #define NCR5380_implementation_fields\t\\\n"
- " \tvoid __iomem *base\n"
- "@@ -108,7 +107,6 @@ printk(\"reading %p len %d\\n\", addr, len)\n"
- " static struct scsi_host_template oakscsi_template = {\n"
- " \t.module\t\t\t= THIS_MODULE,\n"
- " \t.show_info\t\t= oakscsi_show_info,\n"
- "-\t.write_info\t\t= oakscsi_write_info,\n"
- " \t.name\t\t\t= \"Oak 16-bit SCSI\",\n"
- " \t.info\t\t\t= oakscsi_info,\n"
- " \t.queuecommand\t\t= oakscsi_queue_command,"
+ "An embedded and charset-unspecified text was scrubbed...\n"
+ "Name: ncr5380-move-pdma-spin-counters\n"
+ URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141002/b6a4c33e/attachment.ksh>
 
-a3a85ca11405a2f70ff2d4a06600f00cea4fb93574a4c94b05000f8f138544fa
+28337879bbaf41baa87e31bbe8b945235c2d9d179866428d5e33f799395c3cca

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.