diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c index 5185d55e0c0c..1fe65d6bc980 100644 --- a/drivers/pci/controller/pci-msm.c +++ b/drivers/pci/controller/pci-msm.c @@ -4404,6 +4404,10 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev, PCIE_DBG(dev, "PCIe: RC%d: entry\n", dev->rc_idx); + ret = msm_pcie_get_reg(dev); + if (ret) + return ret; + dev->icc_path = of_icc_get(&pdev->dev, "icc_path"); if (IS_ERR_OR_NULL(dev->icc_path)) { ret = dev->icc_path ? PTR_ERR(dev->icc_path) : -EINVAL; @@ -4411,7 +4415,8 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev, PCIE_ERR(dev, "PCIe: RC%d: failed to get ICC path: %d\n", dev->rc_idx, ret); - return ret; + if (!dev->rumi) + return ret; } for (i = 0; i < MSM_PCIE_MAX_IRQ; i++) { @@ -4461,10 +4466,6 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev, if (ret) return ret; - ret = msm_pcie_get_reg(dev); - if (ret) - return ret; - ret = msm_pcie_get_parf_status_reg(dev); if (ret) return ret;