OSDN Git Service

usb: chipidea: msm: get optional clock by devm_clk_get_optional()
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Wed, 17 Apr 2019 08:28:20 +0000 (16:28 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Apr 2019 12:24:26 +0000 (14:24 +0200)
When the driver tries to get optional clock, it ignores all errors except
-EPROBE_DEFER, but if only ignores -ENOENT, it will cover some real errors,
such as -ENOMEM, so use devm_clk_get_optional() to get optional clock.

Cc: Peter Chen <Peter.Chen@nxp.com>
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Acked-by: Peter Chen <Peter.Chen@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/ci_hdrc_msm.c

index 8800099..b8b3caa 100644 (file)
@@ -205,12 +205,9 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev)
        if (IS_ERR(clk))
                return PTR_ERR(clk);
 
-       ci->fs_clk = clk = devm_clk_get(&pdev->dev, "fs");
-       if (IS_ERR(clk)) {
-               if (PTR_ERR(clk) == -EPROBE_DEFER)
-                       return -EPROBE_DEFER;
-               ci->fs_clk = NULL;
-       }
+       ci->fs_clk = clk = devm_clk_get_optional(&pdev->dev, "fs");
+       if (IS_ERR(clk))
+               return PTR_ERR(clk);
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
        ci->base = devm_ioremap_resource(&pdev->dev, res);