diff mbox series

gpio: mxc: add check to return defer probe if clock tree NOT ready

Message ID 1550891629-29004-1-git-send-email-Anson.Huang@nxp.com
State New
Headers show
Series gpio: mxc: add check to return defer probe if clock tree NOT ready | expand

Commit Message

Anson Huang Feb. 23, 2019, 3:18 a.m. UTC
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>
---
 drivers/gpio/gpio-mxc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Linus Walleij Feb. 25, 2019, 12:43 p.m. UTC | #1
On Sat, Feb 23, 2019 at 4:18 AM Anson Huang <anson.huang@nxp.com> wrote:

> 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>

Patch applied.

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index 2d1dfa1..e86e61d 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) {