Re: [PATCH 1/2] parport: gsc: remove DMA leftover code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/26/23 17:09, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@xxxxxxxx>

This driver does not actually work with DMA mode, but still tries
to call ISA DMA interface functions that are stubbed out on
parisc, resulting in a W=1 build warning:

drivers/parport/parport_gsc.c: In function 'parport_remove_chip':
drivers/parport/parport_gsc.c:389:20: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
   389 |    free_dma(p->dma);

Remove the corresponding code as a prerequisite for turning on -Wempty-body
by default in all kernels.

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Thanks Arnd!

I've added it to the parisc for-next git tree.

Helge

---
  drivers/parport/parport_gsc.c | 28 ++++------------------------
  drivers/parport/parport_gsc.h |  7 -------
  2 files changed, 4 insertions(+), 31 deletions(-)

diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index 0dcc497b0449a..5e4475254bd0a 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -28,7 +28,6 @@
  #include <linux/sysctl.h>

  #include <asm/io.h>
-#include <asm/dma.h>
  #include <linux/uaccess.h>
  #include <asm/superio.h>

@@ -226,9 +225,9 @@ static int parport_PS2_supported(struct parport *pb)

  /* --- Initialisation code -------------------------------- */

-struct parport *parport_gsc_probe_port(unsigned long base,
+static struct parport *parport_gsc_probe_port(unsigned long base,
  				       unsigned long base_hi, int irq,
-				       int dma, struct parisc_device *padev)
+				       struct parisc_device *padev)
  {
  	struct parport_gsc_private *priv;
  	struct parport_operations *ops;
@@ -250,12 +249,9 @@ struct parport *parport_gsc_probe_port(unsigned long base,
  	}
  	priv->ctr = 0xc;
  	priv->ctr_writable = 0xff;
-	priv->dma_buf = NULL;
-	priv->dma_handle = 0;
  	p->base = base;
  	p->base_hi = base_hi;
  	p->irq = irq;
-	p->dma = dma;
  	p->modes = PARPORT_MODE_PCSPP | PARPORT_MODE_SAFEININT;
  	p->ops = ops;
  	p->private_data = priv;
@@ -286,17 +282,9 @@ struct parport *parport_gsc_probe_port(unsigned long base,
  	if (p->irq == PARPORT_IRQ_AUTO) {
  		p->irq = PARPORT_IRQ_NONE;
  	}
-	if (p->irq != PARPORT_IRQ_NONE) {
+	if (p->irq != PARPORT_IRQ_NONE)
  		pr_cont(", irq %d", p->irq);

-		if (p->dma == PARPORT_DMA_AUTO) {
-			p->dma = PARPORT_DMA_NONE;
-		}
-	}
-	if (p->dma == PARPORT_DMA_AUTO) /* To use DMA, giving the irq
-                                           is mandatory (see above) */
-		p->dma = PARPORT_DMA_NONE;
-
  	pr_cont(" [");
  #define printmode(x)							\
  do {									\
@@ -321,7 +309,6 @@ do {									\
  			pr_warn("%s: irq %d in use, resorting to polled operation\n",
  				p->name, p->irq);
  			p->irq = PARPORT_IRQ_NONE;
-			p->dma = PARPORT_DMA_NONE;
  		}
  	}

@@ -369,8 +356,7 @@ static int __init parport_init_chip(struct parisc_device *dev)
  		pr_info("%s: enhanced parport-modes not supported\n", __func__);
  	}

-	p = parport_gsc_probe_port(port, 0, dev->irq,
-			/* PARPORT_IRQ_NONE */ PARPORT_DMA_NONE, dev);
+	p = parport_gsc_probe_port(port, 0, dev->irq, dev);
  	if (p)
  		parport_count++;
  	dev_set_drvdata(&dev->dev, p);
@@ -382,16 +368,10 @@ static void __exit parport_remove_chip(struct parisc_device *dev)
  {
  	struct parport *p = dev_get_drvdata(&dev->dev);
  	if (p) {
-		struct parport_gsc_private *priv = p->private_data;
  		struct parport_operations *ops = p->ops;
  		parport_remove_port(p);
-		if (p->dma != PARPORT_DMA_NONE)
-			free_dma(p->dma);
  		if (p->irq != PARPORT_IRQ_NONE)
  			free_irq(p->irq, p);
-		if (priv->dma_buf)
-			dma_free_coherent(&priv->dev->dev, PAGE_SIZE,
-					  priv->dma_buf, priv->dma_handle);
  		kfree (p->private_data);
  		parport_put_port(p);
  		kfree (ops); /* hope no-one cached it */
diff --git a/drivers/parport/parport_gsc.h b/drivers/parport/parport_gsc.h
index 9301217edf12c..d447a568c2570 100644
--- a/drivers/parport/parport_gsc.h
+++ b/drivers/parport/parport_gsc.h
@@ -63,8 +63,6 @@ struct parport_gsc_private {
  	int writeIntrThreshold;

  	/* buffer suitable for DMA, if DMA enabled */
-	char *dma_buf;
-	dma_addr_t dma_handle;
  	struct pci_dev *dev;
  };

@@ -199,9 +197,4 @@ extern void parport_gsc_inc_use_count(void);

  extern void parport_gsc_dec_use_count(void);

-extern struct parport *parport_gsc_probe_port(unsigned long base,
-						unsigned long base_hi,
-						int irq, int dma,
-						struct parisc_device *padev);
-
  #endif	/* __DRIVERS_PARPORT_PARPORT_GSC_H */





[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux