]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
PCI: dwc: Call devm_pci_alloc_host_bridge() early in dw_pcie_host_init()
authorFrank Li <Frank.Li@nxp.com>
Sat, 15 Mar 2025 20:15:38 +0000 (15:15 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 17 Mar 2025 19:18:53 +0000 (14:18 -0500)
Move devm_pci_alloc_host_bridge() to the beginning of dw_pcie_host_init().

devm_pci_alloc_host_bridge() is generic code that doesn't depend on any DWC
resource, so moving it earlier keeps all the subsequent devicetree-related
code together.

[bhelgaas: reorder earlier in series]

Link: https://lore.kernel.org/r/20250315201548.858189-4-helgaas@kernel.org
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/controller/dwc/pcie-designware-host.c

index 1206b26bff3f22925a4969ed3749479b3bfde8f0..5636243fb90e1b9c587f1bf975e2ad3a76679e37 100644 (file)
@@ -431,6 +431,12 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp)
 
        raw_spin_lock_init(&pp->lock);
 
+       bridge = devm_pci_alloc_host_bridge(dev, 0);
+       if (!bridge)
+               return -ENOMEM;
+
+       pp->bridge = bridge;
+
        ret = dw_pcie_get_resources(pci);
        if (ret)
                return ret;
@@ -448,12 +454,6 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp)
        if (IS_ERR(pp->va_cfg0_base))
                return PTR_ERR(pp->va_cfg0_base);
 
-       bridge = devm_pci_alloc_host_bridge(dev, 0);
-       if (!bridge)
-               return -ENOMEM;
-
-       pp->bridge = bridge;
-
        /* Get the I/O range from DT */
        win = resource_list_first_type(&bridge->windows, IORESOURCE_IO);
        if (win) {