i2c: davinci: Preserve return value of devm_clk_get
authorFranklin S Cooper Jr <fcooper@ti.com>
Wed, 16 Aug 2017 22:17:13 +0000 (17:17 -0500)
committerWolfram Sang <wsa@the-dreams.de>
Sun, 27 Aug 2017 13:34:09 +0000 (15:34 +0200)
The i2c driver can run into driver dependency issues if its loaded
before a clock driver it depends on. Therefore, EPROBE_DEFER may be
returned by devm_clk_get and should be returned in probe to allow the
kernel to reprobe the driver at a later time. This patch allows the error
value returned by devm_clk_get to be passed through and not overwritten.

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-davinci.c

index 33ca9a3361829c693c2faca00871a37053a119fa..b8c43535f16cf29b8f8b517fe2e7ecaba1c80156 100644 (file)
@@ -801,7 +801,7 @@ static int davinci_i2c_probe(struct platform_device *pdev)
 
        dev->clk = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(dev->clk))
-               return -ENODEV;
+               return PTR_ERR(dev->clk);
        clk_prepare_enable(dev->clk);
 
        mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);