summaryrefslogtreecommitdiffstats
path: root/drivers/gpio
diff options
context:
space:
mode:
authorAnson Huang <anson.huang@nxp.com>2019-02-23 03:18:25 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-05-08 07:21:53 +0200
commit53ffa56456fb3e8189e152e0d44dcb9911e6b871 (patch)
treebcd3f0889848e57b5388eaf6b4e025bc005e00d1 /drivers/gpio
parenta10c88bf365a6017a839346317e242c67a1d8a94 (diff)
downloadlinux-stable-53ffa56456fb3e8189e152e0d44dcb9911e6b871.tar.gz
linux-stable-53ffa56456fb3e8189e152e0d44dcb9911e6b871.tar.bz2
linux-stable-53ffa56456fb3e8189e152e0d44dcb9911e6b871.zip
gpio: mxc: add check to return defer probe if clock tree NOT ready
commit a329bbe707cee2cf8c660890ef2ad0d00ec7e8a3 upstream. On i.MX8MQ platform, clock driver uses platform driver model and it is probed after GPIO driver, so when GPIO driver fails to get clock, it should check the error type to decide whether to return defer probe or just ignore the clock operation. Fixes: 2808801aab8a ("gpio: mxc: add clock operation") Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpio')
-rw-r--r--drivers/gpio/gpio-mxc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index 2d1dfa1e0745..e86e61dda4b7 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -438,8 +438,11 @@ static int mxc_gpio_probe(struct platform_device *pdev)
/* the controller clock is optional */
port->clk = devm_clk_get(&pdev->dev, NULL);
- if (IS_ERR(port->clk))
+ if (IS_ERR(port->clk)) {
+ if (PTR_ERR(port->clk) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
port->clk = NULL;
+ }
err = clk_prepare_enable(port->clk);
if (err) {