From: Anson Huang Date: Sat, 23 Feb 2019 03:18:25 +0000 (+0000) Subject: gpio: mxc: add check to return defer probe if clock tree NOT ready X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a329bbe707cee2cf8c660890ef2ad0d00ec7e8a3;p=linux.git gpio: mxc: add check to return defer probe if clock tree NOT ready 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 Signed-off-by: Linus Walleij --- diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c index 2d1dfa1e07456..e86e61dda4b75 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) {