MLK-16485 PCI: imx6: Defer probing if .of_get_named_gpio() returns -EPROBE_DEFER
authorFugang Duan <fugang.duan@nxp.com>
Fri, 11 Jan 2019 11:28:54 +0000 (16:58 +0530)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
Driver should do defer probing if .of_get_named_gpio() returns
-EPROBE_DEFER. And moving epdev_on regulator to be common for all
platforms.

(BuildInfo: SCFW 3e70523d, IMX-MKIMAGE 0, ATF 0)

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
rebase on v4.19
Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
drivers/pci/controller/dwc/pci-imx6.c

index e35e9b3..7e507f4 100644 (file)
@@ -1834,6 +1834,8 @@ static int __init imx6_pcie_probe(struct platform_device *pdev)
                        dev_err(&pdev->dev, "unable to get disable gpio\n");
                        return ret;
                }
+       } else if (imx6_pcie->dis_gpio == -EPROBE_DEFER) {
+               return imx6_pcie->dis_gpio;
        }
 
        imx6_pcie->power_on_gpio = of_get_named_gpio(node, "power-on-gpio", 0);
@@ -1846,6 +1848,8 @@ static int __init imx6_pcie_probe(struct platform_device *pdev)
                        dev_err(&pdev->dev, "unable to get power-on gpio\n");
                        return ret;
                }
+       } else if (imx6_pcie->power_on_gpio == -EPROBE_DEFER) {
+               return imx6_pcie->power_on_gpio;
        }
 
        imx6_pcie->reset_gpio = of_get_named_gpio(node, "reset-gpio", 0);