PCI: mvebu: Replace pci_ioremap_io() usage by devm_pci_remap_iospace()
authorPali Rohár <pali@kernel.org>
Wed, 24 Nov 2021 15:41:13 +0000 (16:41 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 30 Nov 2021 11:10:11 +0000 (11:10 +0000)
Now when ARM architecture code also provides standard PCI core function
pci_remap_iospace(), use its devm_pci_remap_iospace() variant in
pci-mvebu.c driver instead of old ARM-specific pci_ioremap_io() function.

Call devm_pci_remap_iospace() before adding IO resource to host bridge
structure, at the place where it should be.

Link: https://lore.kernel.org/r/20211124154116.916-3-pali@kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-mvebu.c

index ed13e81cd691d461708f2d7b798037fee15f8449..a55b8bd5eb62947cbca26abb43e10104a66c68d0 100644 (file)
@@ -992,6 +992,10 @@ static int mvebu_pcie_parse_request_resources(struct mvebu_pcie *pcie)
                                         resource_size(&pcie->io) - 1);
                pcie->realio.name = "PCI I/O";
 
+               ret = devm_pci_remap_iospace(dev, &pcie->realio, pcie->io.start);
+               if (ret)
+                       return ret;
+
                pci_add_resource(&bridge->windows, &pcie->realio);
                ret = devm_request_resource(dev, &ioport_resource, &pcie->realio);
                if (ret)
@@ -1010,7 +1014,6 @@ static int mvebu_pcie_parse_request_resources(struct mvebu_pcie *pcie)
  */
 static int mvebu_pci_host_probe(struct pci_host_bridge *bridge)
 {
-       struct mvebu_pcie *pcie;
        struct pci_bus *bus, *child;
        int ret;
 
@@ -1020,14 +1023,6 @@ static int mvebu_pci_host_probe(struct pci_host_bridge *bridge)
                return ret;
        }
 
-       pcie = pci_host_bridge_priv(bridge);
-       if (resource_size(&pcie->io) != 0) {
-               unsigned int i;
-
-               for (i = 0; i < resource_size(&pcie->realio); i += SZ_64K)
-                       pci_ioremap_io(i, pcie->io.start + i);
-       }
-
        bus = bridge->bus;
 
        /*