char: xillybus: Remove usage of 'pci_unmap_single()'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Fri, 27 Aug 2021 17:17:39 +0000 (19:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Sep 2021 09:12:56 +0000 (11:12 +0200)
'struct xilly_mapping' includes a 'void *device' field which holds,
depending of the context, a 'struct device *' or a 'struct pci_dev *'.

This field is then used with 'pci_umap_single()' in 'xillybus_pcie.c' and
with 'dma_umap_single()' in 'xillybus_of.c'.

In order to remove usage of the deprecated 'pci_unmap_single()' API, turn
the 'void *device' field from 'struct xilly_mapping', into an explicit
'struct device *device' and use 'dma_umap_single()' everywhere.

In order to update 'xillybus_pcie.c', use the 'dev' field instead of the
'pdev' field from the 'struct xilly_endpoint'.
Both fields are initialized by 'xillybus_init_endpoint()' and in
'xillybus_pcie.c', we have:
xillybus_init_endpoint(pdev, &pdev->dev, &pci_hw);
                                 ^       ^
        xilly_endpoint.pdev = ___|       |___ = xilly_endpoint.dev
So the modification from pci_ to dma_ function is straightforward.

While at it, remove a comment that is wrong, because in the case above,
both 'dev' and 'pdev' are not NULL.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/baa3f6c7f009d9c231ae320bf1d568268bfef089.1630083668.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/xillybus/xillybus.h
drivers/char/xillybus/xillybus_pcie.c

index c63ffc56637c33798496f5d80c9ad2edbf0e1a8b..7c71bdef7ccbed530edd67f7c51ea9c8e25eaf29 100644 (file)
@@ -87,10 +87,6 @@ struct xilly_channel {
 };
 
 struct xilly_endpoint {
-       /*
-        * One of pdev and dev is always NULL, and the other is a valid
-        * pointer, depending on the type of device
-        */
        struct pci_dev *pdev;
        struct device *dev;
        struct xilly_endpoint_hardware *ephw;
@@ -131,7 +127,7 @@ struct xilly_endpoint_hardware {
 };
 
 struct xilly_mapping {
-       void *device;
+       struct device *device;
        dma_addr_t dma_addr;
        size_t size;
        int direction;
index be25bfdb0d9a4f5d3e7f68990f42f538d1fc13ff..8360427e42263f868ca68da9be0955672d149c8e 100644 (file)
@@ -69,8 +69,8 @@ static void xilly_pci_unmap(void *ptr)
 {
        struct xilly_mapping *data = ptr;
 
-       pci_unmap_single(data->device, data->dma_addr,
-                        data->size, data->direction);
+       dma_unmap_single(data->device, data->dma_addr, data->size,
+                        data->direction);
 
        kfree(ptr);
 }
@@ -105,7 +105,7 @@ static int xilly_map_single_pci(struct xilly_endpoint *ep,
                return -ENODEV;
        }
 
-       this->device = ep->pdev;
+       this->device = ep->dev;
        this->dma_addr = addr;
        this->size = size;
        this->direction = pci_direction;