Merge branch 'remotes/lorenzo/pci/misc'

- Propagate regulator_get_optional() errors so callers can distinguish
    real errors from optional regulators that are absent (Thierry Reding)

  - Propagate devm_of_phy_get() errors so callers can distinguish
    real errors from optional PHYs that are absent (Thierry Reding)

  - Add Andrew Murray as PCI native driver reviewer (Lorenzo Pieralisi)

* remotes/lorenzo/pci/misc:
  MAINTAINERS: Add PCI native host/endpoint controllers designated reviewer
  PCI: iproc: Propagate errors for optional PHYs
  PCI: histb: Propagate errors for optional regulators
  PCI: armada8x: Propagate errors for optional PHYs
  PCI: imx6: Propagate errors for optional regulators
  PCI: exynos: Propagate errors for optional PHYs
  PCI: rockchip: Propagate errors for optional regulators
This commit is contained in:
Bjorn Helgaas 2019-09-23 16:10:26 -05:00
commit e4faafbf5c
7 changed files with 20 additions and 23 deletions

View File

@ -12442,6 +12442,7 @@ F: arch/x86/kernel/early-quirks.c
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
R: Andrew Murray <andrew.murray@arm.com>
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
Q: http://patchwork.ozlabs.org/project/linux-pci/list/ Q: http://patchwork.ozlabs.org/project/linux-pci/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git/

View File

@ -465,7 +465,7 @@ static int __init exynos_pcie_probe(struct platform_device *pdev)
ep->phy = devm_of_phy_get(dev, np, NULL); ep->phy = devm_of_phy_get(dev, np, NULL);
if (IS_ERR(ep->phy)) { if (IS_ERR(ep->phy)) {
if (PTR_ERR(ep->phy) == -EPROBE_DEFER) if (PTR_ERR(ep->phy) != -ENODEV)
return PTR_ERR(ep->phy); return PTR_ERR(ep->phy);
ep->phy = NULL; ep->phy = NULL;

View File

@ -1174,8 +1174,8 @@ static int imx6_pcie_probe(struct platform_device *pdev)
imx6_pcie->vpcie = devm_regulator_get_optional(&pdev->dev, "vpcie"); imx6_pcie->vpcie = devm_regulator_get_optional(&pdev->dev, "vpcie");
if (IS_ERR(imx6_pcie->vpcie)) { if (IS_ERR(imx6_pcie->vpcie)) {
if (PTR_ERR(imx6_pcie->vpcie) == -EPROBE_DEFER) if (PTR_ERR(imx6_pcie->vpcie) != -ENODEV)
return -EPROBE_DEFER; return PTR_ERR(imx6_pcie->vpcie);
imx6_pcie->vpcie = NULL; imx6_pcie->vpcie = NULL;
} }

View File

@ -118,11 +118,10 @@ static int armada8k_pcie_setup_phys(struct armada8k_pcie *pcie)
for (i = 0; i < ARMADA8K_PCIE_MAX_LANES; i++) { for (i = 0; i < ARMADA8K_PCIE_MAX_LANES; i++) {
pcie->phy[i] = devm_of_phy_get_by_index(dev, node, i); pcie->phy[i] = devm_of_phy_get_by_index(dev, node, i);
if (IS_ERR(pcie->phy[i]) &&
(PTR_ERR(pcie->phy[i]) == -EPROBE_DEFER))
return PTR_ERR(pcie->phy[i]);
if (IS_ERR(pcie->phy[i])) { if (IS_ERR(pcie->phy[i])) {
if (PTR_ERR(pcie->phy[i]) != -ENODEV)
return PTR_ERR(pcie->phy[i]);
pcie->phy[i] = NULL; pcie->phy[i] = NULL;
continue; continue;
} }

View File

@ -340,8 +340,8 @@ static int histb_pcie_probe(struct platform_device *pdev)
hipcie->vpcie = devm_regulator_get_optional(dev, "vpcie"); hipcie->vpcie = devm_regulator_get_optional(dev, "vpcie");
if (IS_ERR(hipcie->vpcie)) { if (IS_ERR(hipcie->vpcie)) {
if (PTR_ERR(hipcie->vpcie) == -EPROBE_DEFER) if (PTR_ERR(hipcie->vpcie) != -ENODEV)
return -EPROBE_DEFER; return PTR_ERR(hipcie->vpcie);
hipcie->vpcie = NULL; hipcie->vpcie = NULL;
} }

View File

@ -93,12 +93,9 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev)
pcie->need_ib_cfg = of_property_read_bool(np, "dma-ranges"); pcie->need_ib_cfg = of_property_read_bool(np, "dma-ranges");
/* PHY use is optional */ /* PHY use is optional */
pcie->phy = devm_phy_get(dev, "pcie-phy"); pcie->phy = devm_phy_optional_get(dev, "pcie-phy");
if (IS_ERR(pcie->phy)) { if (IS_ERR(pcie->phy))
if (PTR_ERR(pcie->phy) == -EPROBE_DEFER) return PTR_ERR(pcie->phy);
return -EPROBE_DEFER;
pcie->phy = NULL;
}
ret = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, &resources, ret = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, &resources,
&iobase); &iobase);

View File

@ -608,29 +608,29 @@ static int rockchip_pcie_parse_host_dt(struct rockchip_pcie *rockchip)
rockchip->vpcie12v = devm_regulator_get_optional(dev, "vpcie12v"); rockchip->vpcie12v = devm_regulator_get_optional(dev, "vpcie12v");
if (IS_ERR(rockchip->vpcie12v)) { if (IS_ERR(rockchip->vpcie12v)) {
if (PTR_ERR(rockchip->vpcie12v) == -EPROBE_DEFER) if (PTR_ERR(rockchip->vpcie12v) != -ENODEV)
return -EPROBE_DEFER; return PTR_ERR(rockchip->vpcie12v);
dev_info(dev, "no vpcie12v regulator found\n"); dev_info(dev, "no vpcie12v regulator found\n");
} }
rockchip->vpcie3v3 = devm_regulator_get_optional(dev, "vpcie3v3"); rockchip->vpcie3v3 = devm_regulator_get_optional(dev, "vpcie3v3");
if (IS_ERR(rockchip->vpcie3v3)) { if (IS_ERR(rockchip->vpcie3v3)) {
if (PTR_ERR(rockchip->vpcie3v3) == -EPROBE_DEFER) if (PTR_ERR(rockchip->vpcie3v3) != -ENODEV)
return -EPROBE_DEFER; return PTR_ERR(rockchip->vpcie3v3);
dev_info(dev, "no vpcie3v3 regulator found\n"); dev_info(dev, "no vpcie3v3 regulator found\n");
} }
rockchip->vpcie1v8 = devm_regulator_get_optional(dev, "vpcie1v8"); rockchip->vpcie1v8 = devm_regulator_get_optional(dev, "vpcie1v8");
if (IS_ERR(rockchip->vpcie1v8)) { if (IS_ERR(rockchip->vpcie1v8)) {
if (PTR_ERR(rockchip->vpcie1v8) == -EPROBE_DEFER) if (PTR_ERR(rockchip->vpcie1v8) != -ENODEV)
return -EPROBE_DEFER; return PTR_ERR(rockchip->vpcie1v8);
dev_info(dev, "no vpcie1v8 regulator found\n"); dev_info(dev, "no vpcie1v8 regulator found\n");
} }
rockchip->vpcie0v9 = devm_regulator_get_optional(dev, "vpcie0v9"); rockchip->vpcie0v9 = devm_regulator_get_optional(dev, "vpcie0v9");
if (IS_ERR(rockchip->vpcie0v9)) { if (IS_ERR(rockchip->vpcie0v9)) {
if (PTR_ERR(rockchip->vpcie0v9) == -EPROBE_DEFER) if (PTR_ERR(rockchip->vpcie0v9) != -ENODEV)
return -EPROBE_DEFER; return PTR_ERR(rockchip->vpcie0v9);
dev_info(dev, "no vpcie0v9 regulator found\n"); dev_info(dev, "no vpcie0v9 regulator found\n");
} }