PCI: Set bridge map_irq and swizzle_irq to default functions
authorRob Herring <robh@kernel.org>
Wed, 22 Jul 2020 02:25:14 +0000 (20:25 -0600)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 4 Aug 2020 15:36:30 +0000 (16:36 +0100)
The majority of DT based host drivers use the default .map_irq() and
.swizzle_irq() functions, so let's initialize the function pointers to
the default and drop setting them in the host drivers.

Drivers like iProc which don't support legacy interrupts need to set
.map_irq() back to NULL.

Link: https://lore.kernel.org/r/20200722022514.1283916-20-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
21 files changed:
drivers/pci/controller/cadence/pcie-cadence-host.c
drivers/pci/controller/dwc/pcie-designware-host.c
drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
drivers/pci/controller/pci-aardvark.c
drivers/pci/controller/pci-ftpci100.c
drivers/pci/controller/pci-host-common.c
drivers/pci/controller/pci-mvebu.c
drivers/pci/controller/pci-tegra.c
drivers/pci/controller/pci-v3-semi.c
drivers/pci/controller/pci-versatile.c
drivers/pci/controller/pci-xgene.c
drivers/pci/controller/pcie-altera.c
drivers/pci/controller/pcie-brcmstb.c
drivers/pci/controller/pcie-iproc-platform.c
drivers/pci/controller/pcie-iproc.c
drivers/pci/controller/pcie-mediatek.c
drivers/pci/controller/pcie-rcar-host.c
drivers/pci/controller/pcie-rockchip-host.c
drivers/pci/controller/pcie-xilinx-nwl.c
drivers/pci/controller/pcie-xilinx.c
drivers/pci/of.c

index 436eb9f..e60f727 100644 (file)
@@ -231,8 +231,6 @@ int cdns_pcie_host_setup(struct cdns_pcie_rc *rc)
                goto err_init;
 
        bridge->ops = &cdns_pcie_host_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        ret = pci_host_probe(bridge);
        if (ret < 0)
index f9fa7b1..7461357 100644 (file)
@@ -470,8 +470,6 @@ int dw_pcie_host_init(struct pcie_port *pp)
 
        bridge->sysdata = pp;
        bridge->ops = &dw_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        ret = pci_scan_root_bus_bridge(bridge);
        if (ret)
index 2954d6a..33ab36d 100644 (file)
@@ -596,8 +596,6 @@ int mobiveil_pcie_host_probe(struct mobiveil_pcie *pcie)
        /* Initialize bridge */
        bridge->sysdata = pcie;
        bridge->ops = &mobiveil_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        ret = mobiveil_bringup_link(pcie);
        if (ret) {
index 7ee14cf..795e763 100644 (file)
@@ -1175,8 +1175,6 @@ static int advk_pcie_probe(struct platform_device *pdev)
 
        bridge->sysdata = pcie;
        bridge->ops = &advk_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        ret = pci_host_probe(bridge);
        if (ret < 0) {
index 94f6ab5..da3cd21 100644 (file)
@@ -437,8 +437,6 @@ static int faraday_pci_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        host->ops = &faraday_pci_ops;
-       host->map_irq = of_irq_parse_and_map_pci;
-       host->swizzle_irq = pci_common_swizzle;
        p = pci_host_bridge_priv(host);
        host->sysdata = p;
        p->dev = dev;
index 5096241..6ce34a1 100644 (file)
@@ -77,8 +77,6 @@ int pci_host_common_probe(struct platform_device *pdev)
 
        bridge->sysdata = cfg;
        bridge->ops = (struct pci_ops *)&ops->pci_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        platform_set_drvdata(pdev, bridge);
 
index db93823..12d30fb 100644 (file)
@@ -1118,8 +1118,6 @@ static int mvebu_pcie_probe(struct platform_device *pdev)
 
        bridge->sysdata = pcie;
        bridge->ops = &mvebu_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
        bridge->align_resource = mvebu_pcie_align_resource;
        bridge->msi = pcie->msi;
 
index c75ee4b..2789d55 100644 (file)
@@ -2707,7 +2707,6 @@ static int tegra_pcie_probe(struct platform_device *pdev)
 
        host->ops = &tegra_pcie_ops;
        host->map_irq = tegra_pcie_map_irq;
-       host->swizzle_irq = pci_common_swizzle;
 
        err = pci_host_probe(host);
        if (err < 0) {
index 1a2cbc5..a38a416 100644 (file)
@@ -722,8 +722,6 @@ static int v3_pci_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        host->ops = &v3_pci_ops;
-       host->map_irq = of_irq_parse_and_map_pci;
-       host->swizzle_irq = pci_common_swizzle;
        v3 = pci_host_bridge_priv(host);
        host->sysdata = v3;
        v3->dev = dev;
index fb45f8d..653d5d0 100644 (file)
@@ -149,8 +149,6 @@ static int versatile_pci_probe(struct platform_device *pdev)
        pci_add_flags(PCI_REASSIGN_ALL_BUS);
 
        bridge->ops = &pci_versatile_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        return pci_host_probe(bridge);
 }
index 190234b..8e0db84 100644 (file)
@@ -620,8 +620,6 @@ static int xgene_pcie_probe(struct platform_device *pdev)
 
        bridge->sysdata = port;
        bridge->ops = &xgene_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        return pci_host_probe(bridge);
 }
index d93489e..70c0482 100644 (file)
@@ -809,8 +809,6 @@ static int altera_pcie_probe(struct platform_device *pdev)
        bridge->sysdata = pcie;
        bridge->busnr = pcie->root_bus_nr;
        bridge->ops = &altera_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        return pci_host_probe(bridge);
 }
index f0f283e..85fa7d5 100644 (file)
@@ -991,8 +991,6 @@ static int brcm_pcie_probe(struct platform_device *pdev)
 
        bridge->ops = &brcm_pcie_ops;
        bridge->sysdata = pcie;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        platform_set_drvdata(pdev, pcie);
 
index 7c10c1c..a956b0c 100644 (file)
@@ -99,9 +99,10 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev)
        switch (pcie->type) {
        case IPROC_PCIE_PAXC:
        case IPROC_PCIE_PAXC_V2:
+               pcie->map_irq = 0;
                break;
        default:
-               pcie->map_irq = of_irq_parse_and_map_pci;
+               break;
        }
 
        ret = iproc_pcie_setup(pcie, &bridge->windows);
index e98dafd..905e938 100644 (file)
@@ -1526,7 +1526,6 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res)
        host->ops = &iproc_pcie_ops;
        host->sysdata = pcie;
        host->map_irq = pcie->map_irq;
-       host->swizzle_irq = pci_common_swizzle;
 
        ret = pci_host_probe(host);
        if (ret < 0) {
index a745f35..cf4c18f 100644 (file)
@@ -1083,8 +1083,6 @@ static int mtk_pcie_probe(struct platform_device *pdev)
                return err;
 
        host->ops = pcie->soc->ops;
-       host->map_irq = of_irq_parse_and_map_pci;
-       host->swizzle_irq = pci_common_swizzle;
        host->sysdata = pcie;
 
        err = pci_host_probe(host);
index 67f2a9d..f6f41db 100644 (file)
@@ -294,8 +294,6 @@ static int rcar_pcie_enable(struct rcar_pcie_host *host)
 
        bridge->sysdata = host;
        bridge->ops = &rcar_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
        if (IS_ENABLED(CONFIG_PCI_MSI))
                bridge->msi = &host->msi.chip;
 
index fed4f6c..153bc95 100644 (file)
@@ -1001,8 +1001,6 @@ static int rockchip_pcie_probe(struct platform_device *pdev)
 
        bridge->sysdata = rockchip;
        bridge->ops = &rockchip_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        err = pci_host_probe(bridge);
        if (err < 0)
index 7e7c23c..97305bf 100644 (file)
@@ -846,8 +846,6 @@ static int nwl_pcie_probe(struct platform_device *pdev)
 
        bridge->sysdata = pcie;
        bridge->ops = &nwl_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
        if (IS_ENABLED(CONFIG_PCI_MSI)) {
                err = nwl_pcie_enable_msi(pcie);
index f8b8cce..8523be6 100644 (file)
@@ -643,8 +643,6 @@ static int xilinx_pcie_probe(struct platform_device *pdev)
 
        bridge->sysdata = port;
        bridge->ops = &xilinx_pcie_ops;
-       bridge->map_irq = of_irq_parse_and_map_pci;
-       bridge->swizzle_irq = pci_common_swizzle;
 
 #ifdef CONFIG_PCI_MSI
        xilinx_pcie_msi_chip.dev = dev;
index 5e06aae..8f478d9 100644 (file)
@@ -569,6 +569,9 @@ int devm_of_pci_bridge_init(struct device *dev, struct pci_host_bridge *bridge)
        if (!dev->of_node)
                return 0;
 
+       bridge->swizzle_irq = pci_common_swizzle;
+       bridge->map_irq = of_irq_parse_and_map_pci;
+
        return pci_parse_request_of_pci_ranges(dev, bridge);
 }