Merge branch 'remotes/lorenzo/pci/runtime-pm'
authorBjorn Helgaas <bhelgaas@google.com>
Wed, 5 Aug 2020 23:24:20 +0000 (18:24 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 5 Aug 2020 23:24:20 +0000 (18:24 -0500)
- Fix runtime power management imbalance for cadence, dra7xx, qcom, rcar
  (Dinghao Liu)

* remotes/lorenzo/pci/runtime-pm:
  PCI: rcar: Fix runtime PM imbalance on error
  PCI: qcom: Fix runtime PM imbalance on error
  PCI: cadence: Fix runtime PM imbalance on error
  PCI: dwc: pci-dra7xx: Fix runtime PM imbalance on error

drivers/pci/controller/cadence/pcie-cadence-plat.c
drivers/pci/controller/dwc/pci-dra7xx.c
drivers/pci/controller/dwc/pcie-qcom.c
drivers/pci/controller/pcie-rcar-host.c

index 6f5f07b..5fee0f8 100644 (file)
@@ -128,9 +128,8 @@ static int cdns_plat_pcie_probe(struct platform_device *pdev)
        }
 
  err_init:
-       pm_runtime_put_sync(dev);
-
  err_get_sync:
+       pm_runtime_put_sync(dev);
        pm_runtime_disable(dev);
        cdns_pcie_disable_phy(cdns_plat_pcie->pcie);
        phy_count = cdns_plat_pcie->pcie->phy_count;
index a896b9b..5fda5f4 100644 (file)
@@ -995,9 +995,8 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
        return 0;
 
 err_gpio:
-       pm_runtime_put(dev);
-
 err_get_sync:
+       pm_runtime_put(dev);
        pm_runtime_disable(dev);
        dra7xx_pcie_disable_phy(dra7xx);
 
index b79f787..3aac77a 100644 (file)
@@ -1382,10 +1382,8 @@ static int qcom_pcie_probe(struct platform_device *pdev)
 
        pm_runtime_enable(dev);
        ret = pm_runtime_get_sync(dev);
-       if (ret < 0) {
-               pm_runtime_disable(dev);
-               return ret;
-       }
+       if (ret < 0)
+               goto err_pm_runtime_put;
 
        pci->dev = dev;
        pci->ops = &dw_pcie_ops;
index d210a36..060c24f 100644 (file)
@@ -986,7 +986,7 @@ static int rcar_pcie_probe(struct platform_device *pdev)
        err = pm_runtime_get_sync(pcie->dev);
        if (err < 0) {
                dev_err(pcie->dev, "pm_runtime_get_sync failed\n");
-               goto err_pm_disable;
+               goto err_pm_put;
        }
 
        err = rcar_pcie_get_resources(host);
@@ -1057,8 +1057,6 @@ err_unmap_msi_irqs:
 
 err_pm_put:
        pm_runtime_put(dev);
-
-err_pm_disable:
        pm_runtime_disable(dev);
        pci_free_resource_list(&host->resources);