staging: comedi: drivers: gsc_hpdi: Remove use of deprecated pci API
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>
Sun, 6 Mar 2016 00:21:52 +0000 (05:51 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Mar 2016 03:34:22 +0000 (19:34 -0800)
Replace pci_[alloc|free]_consistent occurences with
dma_[alloc|free]_coherent.

The Coccinelle semantic patch that was used to make some of these
changes is as follows:
@deprecated@
idexpression id;
position p;
@@

(
  pci_dma_supported@p ( id, ...)
|
  pci_alloc_consistent@p ( id, ...)
)

@bad1@
idexpression id;
position deprecated.p;
@@
...when != &id->dev
   when != pci_get_drvdata ( id )
   when != pci_enable_device ( id )
(
  pci_dma_supported@p ( id, ...)
|
  pci_alloc_consistent@p ( id, ...)
)

@depends on !bad1@
idexpression id;
expression direction;
position deprecated.p;
@@

(
- pci_dma_supported@p ( id,
+ dma_supported ( &id->dev,
...
+ , GFP_KERNEL
  )
|
- pci_alloc_consistent@p ( id,
+ dma_alloc_coherent ( &id->dev,
...
+ , GFP_KERNEL
  )
)

gsc_hpdi_auto_attach does not affect interrupt status but contains a
call to comedi_alloc_devpriv() which calls kzalloc with GFP_KERNEL flag.
Thus, there seems to be no danger that dma_alloc_coherent can be called
with interrupts turned off, and GFP_KERNEL can be used.

Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/gsc_hpdi.c

index 46ca5d9..63b5cbc 100644 (file)
@@ -499,18 +499,18 @@ static void gsc_hpdi_free_dma(struct comedi_device *dev)
        /* free pci dma buffers */
        for (i = 0; i < NUM_DMA_BUFFERS; i++) {
                if (devpriv->dio_buffer[i])
-                       pci_free_consistent(pcidev,
-                                           DMA_BUFFER_SIZE,
-                                           devpriv->dio_buffer[i],
-                                           devpriv->dio_buffer_phys_addr[i]);
+                       dma_free_coherent(&pcidev->dev,
+                                         DMA_BUFFER_SIZE,
+                                         devpriv->dio_buffer[i],
+                                         devpriv->dio_buffer_phys_addr[i]);
        }
        /* free dma descriptors */
        if (devpriv->dma_desc)
-               pci_free_consistent(pcidev,
-                                   sizeof(struct plx_dma_desc) *
-                                   NUM_DMA_DESCRIPTORS,
-                                   devpriv->dma_desc,
-                                   devpriv->dma_desc_phys_addr);
+               dma_free_coherent(&pcidev->dev,
+                                 sizeof(struct plx_dma_desc) *
+                                 NUM_DMA_DESCRIPTORS,
+                                 devpriv->dma_desc,
+                                 devpriv->dma_desc_phys_addr);
 }
 
 static int gsc_hpdi_init(struct comedi_device *dev)
@@ -630,14 +630,16 @@ static int gsc_hpdi_auto_attach(struct comedi_device *dev,
        /* allocate pci dma buffers */
        for (i = 0; i < NUM_DMA_BUFFERS; i++) {
                devpriv->dio_buffer[i] =
-                   pci_alloc_consistent(pcidev, DMA_BUFFER_SIZE,
-                                        &devpriv->dio_buffer_phys_addr[i]);
+                   dma_alloc_coherent(&pcidev->dev, DMA_BUFFER_SIZE,
+                                      &devpriv->dio_buffer_phys_addr[i],
+                                      GFP_KERNEL);
        }
        /* allocate dma descriptors */
-       devpriv->dma_desc = pci_alloc_consistent(pcidev,
-                                                sizeof(struct plx_dma_desc) *
-                                                NUM_DMA_DESCRIPTORS,
-                                                &devpriv->dma_desc_phys_addr);
+       devpriv->dma_desc = dma_alloc_coherent(&pcidev->dev,
+                                              sizeof(struct plx_dma_desc) *
+                                              NUM_DMA_DESCRIPTORS,
+                                              &devpriv->dma_desc_phys_addr,
+                                              GFP_KERNEL);
        if (devpriv->dma_desc_phys_addr & 0xf) {
                dev_warn(dev->class_dev,
                         " dma descriptors not quad-word aligned (bug)\n");