@@ -418,22 +418,12 @@ static void dw_pcie_host_request_msg_tlp_res(struct dw_pcie_rp *pp)
}
}
-int dw_pcie_host_init(struct dw_pcie_rp *pp)
+static int dw_pcie_cfg0_setup(struct dw_pcie_rp *pp)
{
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct device *dev = pci->dev;
- struct device_node *np = dev->of_node;
struct platform_device *pdev = to_platform_device(dev);
- struct resource_entry *win;
- struct pci_host_bridge *bridge;
struct resource *res;
- int ret;
-
- raw_spin_lock_init(&pp->lock);
-
- ret = dw_pcie_get_resources(pci);
- if (ret)
- return ret;
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "config");
if (!res) {
@@ -448,6 +438,28 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp)
if (IS_ERR(pp->va_cfg0_base))
return PTR_ERR(pp->va_cfg0_base);
+ return 0;
+}
+
+int dw_pcie_host_init(struct dw_pcie_rp *pp)
+{
+ struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
+ struct device *dev = pci->dev;
+ struct device_node *np = dev->of_node;
+ struct resource_entry *win;
+ struct pci_host_bridge *bridge;
+ int ret;
+
+ raw_spin_lock_init(&pp->lock);
+
+ ret = dw_pcie_get_resources(pci);
+ if (ret)
+ return ret;
+
+ ret = dw_pcie_cfg0_setup(pp);
+ if (ret)
+ return ret;
+
bridge = devm_pci_alloc_host_bridge(dev, 0);
if (!bridge)
return -ENOMEM;
From: Bjorn Helgaas <bhelgaas@google.com> Move pp->cfg0 setup to dw_pcie_cfg0_setup(). No functional change intended. --- .../pci/controller/dwc/pcie-designware-host.c | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-)