net: wwan: iosm: switch from 'pci_' to 'dma_' API
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 21 Aug 2021 20:54:57 +0000 (22:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 23 Aug 2021 10:56:56 +0000 (11:56 +0100)
The wrappers in include/linux/pci-dma-compat.h should go away.

The patch has been generated with the coccinelle script below and has been
hand modified to replace GFP_ with a correct flag.
It has been compile tested.

'ipc_protocol_init()' can use GFP_KERNEL, because this flag is already used
by a 'kzalloc()' call a few lines above.

'ipc_protocol_msg_prepipe_open()' must use GFP_ATOMIC, because this flag is
already used by a 'kcalloc()' call a few lines above.

@@ @@
-    PCI_DMA_BIDIRECTIONAL
+    DMA_BIDIRECTIONAL

@@ @@
-    PCI_DMA_TODEVICE
+    DMA_TO_DEVICE

@@ @@
-    PCI_DMA_FROMDEVICE
+    DMA_FROM_DEVICE

@@ @@
-    PCI_DMA_NONE
+    DMA_NONE

@@
expression e1, e2, e3;
@@
-    pci_alloc_consistent(e1, e2, e3)
+    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)

@@
expression e1, e2, e3;
@@
-    pci_zalloc_consistent(e1, e2, e3)
+    dma_alloc_coherent(&e1->dev, e2, e3, GFP_)

@@
expression e1, e2, e3, e4;
@@
-    pci_free_consistent(e1, e2, e3, e4)
+    dma_free_coherent(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_map_single(e1, e2, e3, e4)
+    dma_map_single(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_unmap_single(e1, e2, e3, e4)
+    dma_unmap_single(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4, e5;
@@
-    pci_map_page(e1, e2, e3, e4, e5)
+    dma_map_page(&e1->dev, e2, e3, e4, e5)

@@
expression e1, e2, e3, e4;
@@
-    pci_unmap_page(e1, e2, e3, e4)
+    dma_unmap_page(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_map_sg(e1, e2, e3, e4)
+    dma_map_sg(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_unmap_sg(e1, e2, e3, e4)
+    dma_unmap_sg(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_dma_sync_single_for_cpu(e1, e2, e3, e4)
+    dma_sync_single_for_cpu(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_dma_sync_single_for_device(e1, e2, e3, e4)
+    dma_sync_single_for_device(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_dma_sync_sg_for_cpu(e1, e2, e3, e4)
+    dma_sync_sg_for_cpu(&e1->dev, e2, e3, e4)

@@
expression e1, e2, e3, e4;
@@
-    pci_dma_sync_sg_for_device(e1, e2, e3, e4)
+    dma_sync_sg_for_device(&e1->dev, e2, e3, e4)

@@
expression e1, e2;
@@
-    pci_dma_mapping_error(e1, e2)
+    dma_mapping_error(&e1->dev, e2)

@@
expression e1, e2;
@@
-    pci_set_dma_mask(e1, e2)
+    dma_set_mask(&e1->dev, e2)

@@
expression e1, e2;
@@
-    pci_set_consistent_dma_mask(e1, e2)
+    dma_set_coherent_mask(&e1->dev, e2)

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wwan/iosm/iosm_ipc_protocol.c
drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c

index 834d8b1..63fc701 100644 (file)
@@ -239,9 +239,9 @@ struct iosm_protocol *ipc_protocol_init(struct iosm_imem *ipc_imem)
        ipc_protocol->old_msg_tail = 0;
 
        ipc_protocol->p_ap_shm =
-               pci_alloc_consistent(ipc_protocol->pcie->pci,
-                                    sizeof(*ipc_protocol->p_ap_shm),
-                                    &ipc_protocol->phy_ap_shm);
+               dma_alloc_coherent(&ipc_protocol->pcie->pci->dev,
+                                  sizeof(*ipc_protocol->p_ap_shm),
+                                  &ipc_protocol->phy_ap_shm, GFP_KERNEL);
 
        if (!ipc_protocol->p_ap_shm) {
                dev_err(ipc_protocol->dev, "pci shm alloc error");
@@ -275,8 +275,8 @@ struct iosm_protocol *ipc_protocol_init(struct iosm_imem *ipc_imem)
 
 void ipc_protocol_deinit(struct iosm_protocol *proto)
 {
-       pci_free_consistent(proto->pcie->pci, sizeof(*proto->p_ap_shm),
-                           proto->p_ap_shm, proto->phy_ap_shm);
+       dma_free_coherent(&proto->pcie->pci->dev, sizeof(*proto->p_ap_shm),
+                         proto->p_ap_shm, proto->phy_ap_shm);
 
        ipc_pm_deinit(proto);
        kfree(proto);
index 35d5907..c6b032f 100644 (file)
@@ -74,9 +74,9 @@ static int ipc_protocol_msg_prepipe_open(struct iosm_protocol *ipc_protocol,
                return -ENOMEM;
 
        /* Allocate the transfer descriptors for the pipe. */
-       tdr = pci_alloc_consistent(ipc_protocol->pcie->pci,
-                                  pipe->nr_of_entries * sizeof(*tdr),
-                                  &pipe->phy_tdr_start);
+       tdr = dma_alloc_coherent(&ipc_protocol->pcie->pci->dev,
+                                pipe->nr_of_entries * sizeof(*tdr),
+                                &pipe->phy_tdr_start, GFP_ATOMIC);
        if (!tdr) {
                kfree(skbr);
                dev_err(ipc_protocol->dev, "tdr alloc error");
@@ -492,10 +492,9 @@ void ipc_protocol_pipe_cleanup(struct iosm_protocol *ipc_protocol,
 
        /* Free and reset the td and skbuf circular buffers. kfree is save! */
        if (pipe->tdr_start) {
-               pci_free_consistent(ipc_protocol->pcie->pci,
-                                   sizeof(*pipe->tdr_start) *
-                                           pipe->nr_of_entries,
-                                   pipe->tdr_start, pipe->phy_tdr_start);
+               dma_free_coherent(&ipc_protocol->pcie->pci->dev,
+                                 sizeof(*pipe->tdr_start) * pipe->nr_of_entries,
+                                 pipe->tdr_start, pipe->phy_tdr_start);
 
                pipe->tdr_start = NULL;
        }