Merge branch 'remotes/lorenzo/pci/tegra'

- Fix error message for failure to get reset GPIO from DT (Pali Rohár)

  - Fix runtime PM imbalance on error path (both tegra and tegra194)
    (Dinghao Liu)

* remotes/lorenzo/pci/tegra:
  PCI: tegra: Fix runtime PM imbalance on error
  PCI: tegra194: Fix runtime PM imbalance on error
  PCI: tegra: Fix reporting GPIO error value
This commit is contained in:
Bjorn Helgaas 2020-06-04 12:59:19 -05:00
commit 62e8a5ad47
2 changed files with 5 additions and 7 deletions

View File

@ -1623,7 +1623,7 @@ static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie)
ret = pinctrl_pm_select_default_state(dev); ret = pinctrl_pm_select_default_state(dev);
if (ret < 0) { if (ret < 0) {
dev_err(dev, "Failed to configure sideband pins: %d\n", ret); dev_err(dev, "Failed to configure sideband pins: %d\n", ret);
goto fail_pinctrl; goto fail_pm_get_sync;
} }
tegra_pcie_init_controller(pcie); tegra_pcie_init_controller(pcie);
@ -1650,9 +1650,8 @@ static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie)
fail_host_init: fail_host_init:
tegra_pcie_deinit_controller(pcie); tegra_pcie_deinit_controller(pcie);
fail_pinctrl:
pm_runtime_put_sync(dev);
fail_pm_get_sync: fail_pm_get_sync:
pm_runtime_put_sync(dev);
pm_runtime_disable(dev); pm_runtime_disable(dev);
return ret; return ret;
} }

View File

@ -2219,8 +2219,8 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie)
if (PTR_ERR(rp->reset_gpio) == -ENOENT) { if (PTR_ERR(rp->reset_gpio) == -ENOENT) {
rp->reset_gpio = NULL; rp->reset_gpio = NULL;
} else { } else {
dev_err(dev, "failed to get reset GPIO: %d\n", dev_err(dev, "failed to get reset GPIO: %ld\n",
err); PTR_ERR(rp->reset_gpio));
return PTR_ERR(rp->reset_gpio); return PTR_ERR(rp->reset_gpio);
} }
} }
@ -2712,7 +2712,7 @@ static int tegra_pcie_probe(struct platform_device *pdev)
err = pm_runtime_get_sync(pcie->dev); err = pm_runtime_get_sync(pcie->dev);
if (err < 0) { if (err < 0) {
dev_err(dev, "fail to enable pcie controller: %d\n", err); dev_err(dev, "fail to enable pcie controller: %d\n", err);
goto teardown_msi; goto pm_runtime_put;
} }
host->busnr = bus->start; host->busnr = bus->start;
@ -2746,7 +2746,6 @@ static int tegra_pcie_probe(struct platform_device *pdev)
pm_runtime_put: pm_runtime_put:
pm_runtime_put_sync(pcie->dev); pm_runtime_put_sync(pcie->dev);
pm_runtime_disable(pcie->dev); pm_runtime_disable(pcie->dev);
teardown_msi:
tegra_pcie_msi_teardown(pcie); tegra_pcie_msi_teardown(pcie);
put_resources: put_resources:
tegra_pcie_put_resources(pcie); tegra_pcie_put_resources(pcie);