From: Finn Thain <fthain@telegraphics.com.au> To: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, "Martin K. Petersen" <martin.petersen@oracle.com>, Michael Schmitz <schmitzmic@gmail.com>, <linux-m68k@vger.kernel.org>, <linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org> Cc: Ondrej Zary <linux@rainbow-software.org>, Sam Creasey <sammy@sammy.net> Subject: [PATCH 02/22] ncr5380: Remove FLAG_NO_PSEUDO_DMA where possible Date: Mon, 14 Mar 2016 15:27:02 +1100 [thread overview] Message-ID: <20160314042701.115991238@telegraphics.com.au> (raw) In-Reply-To: 20160314042700.596192247@telegraphics.com.au [-- Attachment #1: ncr5380-FLAG_NO_PSEUDO_DMA --] [-- Type: text/plain, Size: 4073 bytes --] Drivers that define PSEUDO_DMA also define NCR5380_dma_xfer_len. The core driver must call NCR5380_dma_xfer_len which means FLAG_NO_PSEUDO_DMA can be eradicated from the core driver. dmx3191d doesn't define PSEUDO_DMA and has no use for FLAG_NO_PSEUDO_DMA, so remove it there also. Signed-off-by: Finn Thain <fthain@telegraphics.com.au> --- drivers/scsi/NCR5380.c | 3 +-- drivers/scsi/dmx3191d.c | 2 +- drivers/scsi/g_NCR5380.c | 7 ++++++- drivers/scsi/g_NCR5380.h | 2 +- drivers/scsi/mac_scsi.c | 15 ++++++++++++++- 5 files changed, 23 insertions(+), 6 deletions(-) Index: linux/drivers/scsi/dmx3191d.c =================================================================== --- linux.orig/drivers/scsi/dmx3191d.c 2016-03-14 15:17:25.000000000 +1100 +++ linux/drivers/scsi/dmx3191d.c 2016-03-14 15:26:22.000000000 +1100 @@ -93,7 +93,7 @@ static int dmx3191d_probe_one(struct pci */ shost->irq = NO_IRQ; - error = NCR5380_init(shost, FLAG_NO_PSEUDO_DMA); + error = NCR5380_init(shost, 0); if (error) goto out_host_put; Index: linux/drivers/scsi/mac_scsi.c =================================================================== --- linux.orig/drivers/scsi/mac_scsi.c 2016-03-14 15:17:25.000000000 +1100 +++ linux/drivers/scsi/mac_scsi.c 2016-03-14 15:26:22.000000000 +1100 @@ -37,7 +37,9 @@ #define NCR5380_pread macscsi_pread #define NCR5380_pwrite macscsi_pwrite -#define NCR5380_dma_xfer_len(instance, cmd, phase) (cmd->transfersize) + +#define NCR5380_dma_xfer_len(instance, cmd, phase) \ + macscsi_dma_xfer_len(instance, cmd) #define NCR5380_intr macscsi_intr #define NCR5380_queue_command macscsi_queue_command @@ -303,6 +305,17 @@ static int macscsi_pwrite(struct Scsi_Ho } #endif +static int macscsi_dma_xfer_len(struct Scsi_Host *instance, + struct scsi_cmnd *cmd) +{ + struct NCR5380_hostdata *hostdata = shost_priv(instance); + + if (hostdata->flags & FLAG_NO_PSEUDO_DMA) + return 0; + + return cmd->transfersize; +} + #include "NCR5380.c" #define DRV_MODULE_NAME "mac_scsi" Index: linux/drivers/scsi/g_NCR5380.c =================================================================== --- linux.orig/drivers/scsi/g_NCR5380.c 2016-03-14 15:26:20.000000000 +1100 +++ linux/drivers/scsi/g_NCR5380.c 2016-03-14 15:26:22.000000000 +1100 @@ -712,10 +712,15 @@ static inline int NCR5380_pwrite(struct return 0; } -static int generic_NCR5380_dma_xfer_len(struct scsi_cmnd *cmd) +static int generic_NCR5380_dma_xfer_len(struct Scsi_Host *instance, + struct scsi_cmnd *cmd) { + struct NCR5380_hostdata *hostdata = shost_priv(instance); int transfersize = cmd->transfersize; + if (hostdata->flags & FLAG_NO_PSEUDO_DMA) + return 0; + /* Limit transfers to 32K, for xx400 & xx406 * pseudoDMA that transfers in 128 bytes blocks. */ Index: linux/drivers/scsi/NCR5380.c =================================================================== --- linux.orig/drivers/scsi/NCR5380.c 2016-03-14 15:26:20.000000000 +1100 +++ linux/drivers/scsi/NCR5380.c 2016-03-14 15:26:22.000000000 +1100 @@ -1833,8 +1833,7 @@ static void NCR5380_information_transfer #if defined(PSEUDO_DMA) || defined(REAL_DMA_POLL) transfersize = 0; - if (!cmd->device->borken && - !(hostdata->flags & FLAG_NO_PSEUDO_DMA)) + if (!cmd->device->borken) transfersize = NCR5380_dma_xfer_len(instance, cmd, phase); if (transfersize) { Index: linux/drivers/scsi/g_NCR5380.h =================================================================== --- linux.orig/drivers/scsi/g_NCR5380.h 2016-03-14 15:26:20.000000000 +1100 +++ linux/drivers/scsi/g_NCR5380.h 2016-03-14 15:26:22.000000000 +1100 @@ -61,7 +61,7 @@ #endif #define NCR5380_dma_xfer_len(instance, cmd, phase) \ - generic_NCR5380_dma_xfer_len(cmd) + generic_NCR5380_dma_xfer_len(instance, cmd) #define NCR5380_intr generic_NCR5380_intr #define NCR5380_queue_command generic_NCR5380_queue_command
WARNING: multiple messages have this Message-ID (diff)
From: Finn Thain <fthain@telegraphics.com.au> To: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>, "Martin K. Petersen" <martin.petersen@oracle.com>, Michael Schmitz <schmitzmic@gmail.com>, linux-m68k@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ondrej Zary <linux@rainbow-software.org>, Sam Creasey <sammy@sammy.net> Subject: [PATCH 02/22] ncr5380: Remove FLAG_NO_PSEUDO_DMA where possible Date: Mon, 14 Mar 2016 15:27:02 +1100 [thread overview] Message-ID: <20160314042701.115991238@telegraphics.com.au> (raw) In-Reply-To: 20160314042700.596192247@telegraphics.com.au [-- Attachment #1: ncr5380-FLAG_NO_PSEUDO_DMA --] [-- Type: text/plain, Size: 4073 bytes --] Drivers that define PSEUDO_DMA also define NCR5380_dma_xfer_len. The core driver must call NCR5380_dma_xfer_len which means FLAG_NO_PSEUDO_DMA can be eradicated from the core driver. dmx3191d doesn't define PSEUDO_DMA and has no use for FLAG_NO_PSEUDO_DMA, so remove it there also. Signed-off-by: Finn Thain <fthain@telegraphics.com.au> --- drivers/scsi/NCR5380.c | 3 +-- drivers/scsi/dmx3191d.c | 2 +- drivers/scsi/g_NCR5380.c | 7 ++++++- drivers/scsi/g_NCR5380.h | 2 +- drivers/scsi/mac_scsi.c | 15 ++++++++++++++- 5 files changed, 23 insertions(+), 6 deletions(-) Index: linux/drivers/scsi/dmx3191d.c =================================================================== --- linux.orig/drivers/scsi/dmx3191d.c 2016-03-14 15:17:25.000000000 +1100 +++ linux/drivers/scsi/dmx3191d.c 2016-03-14 15:26:22.000000000 +1100 @@ -93,7 +93,7 @@ static int dmx3191d_probe_one(struct pci */ shost->irq = NO_IRQ; - error = NCR5380_init(shost, FLAG_NO_PSEUDO_DMA); + error = NCR5380_init(shost, 0); if (error) goto out_host_put; Index: linux/drivers/scsi/mac_scsi.c =================================================================== --- linux.orig/drivers/scsi/mac_scsi.c 2016-03-14 15:17:25.000000000 +1100 +++ linux/drivers/scsi/mac_scsi.c 2016-03-14 15:26:22.000000000 +1100 @@ -37,7 +37,9 @@ #define NCR5380_pread macscsi_pread #define NCR5380_pwrite macscsi_pwrite -#define NCR5380_dma_xfer_len(instance, cmd, phase) (cmd->transfersize) + +#define NCR5380_dma_xfer_len(instance, cmd, phase) \ + macscsi_dma_xfer_len(instance, cmd) #define NCR5380_intr macscsi_intr #define NCR5380_queue_command macscsi_queue_command @@ -303,6 +305,17 @@ static int macscsi_pwrite(struct Scsi_Ho } #endif +static int macscsi_dma_xfer_len(struct Scsi_Host *instance, + struct scsi_cmnd *cmd) +{ + struct NCR5380_hostdata *hostdata = shost_priv(instance); + + if (hostdata->flags & FLAG_NO_PSEUDO_DMA) + return 0; + + return cmd->transfersize; +} + #include "NCR5380.c" #define DRV_MODULE_NAME "mac_scsi" Index: linux/drivers/scsi/g_NCR5380.c =================================================================== --- linux.orig/drivers/scsi/g_NCR5380.c 2016-03-14 15:26:20.000000000 +1100 +++ linux/drivers/scsi/g_NCR5380.c 2016-03-14 15:26:22.000000000 +1100 @@ -712,10 +712,15 @@ static inline int NCR5380_pwrite(struct return 0; } -static int generic_NCR5380_dma_xfer_len(struct scsi_cmnd *cmd) +static int generic_NCR5380_dma_xfer_len(struct Scsi_Host *instance, + struct scsi_cmnd *cmd) { + struct NCR5380_hostdata *hostdata = shost_priv(instance); int transfersize = cmd->transfersize; + if (hostdata->flags & FLAG_NO_PSEUDO_DMA) + return 0; + /* Limit transfers to 32K, for xx400 & xx406 * pseudoDMA that transfers in 128 bytes blocks. */ Index: linux/drivers/scsi/NCR5380.c =================================================================== --- linux.orig/drivers/scsi/NCR5380.c 2016-03-14 15:26:20.000000000 +1100 +++ linux/drivers/scsi/NCR5380.c 2016-03-14 15:26:22.000000000 +1100 @@ -1833,8 +1833,7 @@ static void NCR5380_information_transfer #if defined(PSEUDO_DMA) || defined(REAL_DMA_POLL) transfersize = 0; - if (!cmd->device->borken && - !(hostdata->flags & FLAG_NO_PSEUDO_DMA)) + if (!cmd->device->borken) transfersize = NCR5380_dma_xfer_len(instance, cmd, phase); if (transfersize) { Index: linux/drivers/scsi/g_NCR5380.h =================================================================== --- linux.orig/drivers/scsi/g_NCR5380.h 2016-03-14 15:26:20.000000000 +1100 +++ linux/drivers/scsi/g_NCR5380.h 2016-03-14 15:26:22.000000000 +1100 @@ -61,7 +61,7 @@ #endif #define NCR5380_dma_xfer_len(instance, cmd, phase) \ - generic_NCR5380_dma_xfer_len(cmd) + generic_NCR5380_dma_xfer_len(instance, cmd) #define NCR5380_intr generic_NCR5380_intr #define NCR5380_queue_command generic_NCR5380_queue_command
next prev parent reply other threads:[~2016-03-14 4:42 UTC|newest] Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-14 4:27 [PATCH 00/22] ncr5380: Eliminate macros, reduce code duplication, fix bugs etc Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 4:27 ` [PATCH 01/22] g_ncr5380: Remove CONFIG_SCSI_GENERIC_NCR53C400 Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:21 ` Hannes Reinecke 2016-03-14 4:27 ` Finn Thain [this message] 2016-03-14 4:27 ` [PATCH 02/22] ncr5380: Remove FLAG_NO_PSEUDO_DMA where possible Finn Thain 2016-03-14 7:21 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 03/22] ncr5380: Remove REAL_DMA and REAL_DMA_POLL macros Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:23 ` Hannes Reinecke 2016-03-14 7:23 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 04/22] atari_NCR5380: Remove DMA_MIN_SIZE macro Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:25 ` Hannes Reinecke 2016-03-14 7:25 ` Hannes Reinecke 2016-03-15 3:18 ` Finn Thain 2016-03-14 4:27 ` [PATCH 05/22] ncr5380: Disable the DMA errata workaround flag by default Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:26 ` Hannes Reinecke 2016-03-14 7:26 ` Hannes Reinecke 2016-03-14 7:26 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 06/22] ncr5380: Remove PSEUDO_DMA macro Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:28 ` Hannes Reinecke 2016-03-14 7:28 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 07/22] ncr5380: Remove BOARD_REQUIRES_NO_DELAY macro Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:33 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 08/22] ncr5380: Use DMA hooks for PDMA Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:34 ` Hannes Reinecke 2016-03-14 7:34 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 09/22] ncr5380: Adopt uniform DMA setup convention Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:36 ` Hannes Reinecke 2016-03-14 7:36 ` Hannes Reinecke 2016-03-15 3:19 ` Finn Thain 2016-03-15 3:19 ` Finn Thain 2016-03-15 6:49 ` Hannes Reinecke 2016-03-15 6:49 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 10/22] ncr5380: Merge DMA implementation from atari_NCR5380 core driver Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:38 ` Hannes Reinecke 2016-03-14 7:38 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 11/22] atari_scsi: Adopt NCR5380.c " Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:39 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 12/22] sun3_scsi: " Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:40 ` Hannes Reinecke 2016-03-14 7:40 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 13/22] ncr5380: Remove disused atari_NCR5380.c " Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:42 ` Hannes Reinecke 2016-03-14 7:42 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 14/22] ncr5380: Add MAX_LUN limit Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:43 ` Hannes Reinecke 2016-03-14 7:51 ` Christoph Hellwig 2016-03-15 3:20 ` Finn Thain 2016-03-15 8:26 ` Christoph Hellwig 2016-03-14 4:27 ` [PATCH 15/22] dmx3191d: Drop max_sectors limit Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:43 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 16/22] ncr5380: Fix register decoding for debugging Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:46 ` Hannes Reinecke 2016-03-15 3:21 ` Finn Thain 2016-03-14 4:27 ` [PATCH 17/22] ncr5380: Remove remaining register storage qualifiers Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:46 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 18/22] ncr5380: Remove DONT_USE_INTR and AUTOPROBE_IRQ macros Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:47 ` Hannes Reinecke 2016-03-14 7:47 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 19/22] ncr5380: Update usage documentation Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:47 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 20/22] atari_scsi: Set a reasonable default for cmd_per_lun Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:49 ` Hannes Reinecke 2016-03-15 3:27 ` Finn Thain 2016-03-15 6:53 ` Hannes Reinecke 2016-03-15 8:27 ` Finn Thain 2016-03-15 14:34 ` James Bottomley 2016-03-14 4:27 ` [PATCH 21/22] atari_scsi: Allow can_queue to be increased for Falcon Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:58 ` Hannes Reinecke 2016-03-14 7:58 ` Hannes Reinecke 2016-03-14 4:27 ` [PATCH 22/22] mac_scsi: Fix pseudo DMA implementation Finn Thain 2016-03-14 4:27 ` Finn Thain 2016-03-14 7:59 ` Hannes Reinecke 2016-03-18 7:03 ` [PATCH 00/22] ncr5380: Eliminate macros, reduce code duplication, fix bugs etc Michael Schmitz
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=20160314042701.115991238@telegraphics.com.au \ --to=fthain@telegraphics.com.au \ --cc=James.Bottomley@HansenPartnership.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-m68k@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=linux@rainbow-software.org \ --cc=martin.petersen@oracle.com \ --cc=sammy@sammy.net \ --cc=schmitzmic@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.