Merge tag 'for-v4.6-rc/omap-fixes-a' of git://git.kernel.org/pub/scm/linux/kernel...
[deliverable/linux.git] / drivers / rtc / rtc-s3c.c
index ffb860d18701753bfaea2308fea9deb2a6ed6a9d..d01ad7e8078ed6e44c61fbaa8e4875a96d8cce25 100644 (file)
@@ -501,18 +501,27 @@ static int s3c_rtc_probe(struct platform_device *pdev)
 
        info->rtc_clk = devm_clk_get(&pdev->dev, "rtc");
        if (IS_ERR(info->rtc_clk)) {
-               dev_err(&pdev->dev, "failed to find rtc clock\n");
-               return PTR_ERR(info->rtc_clk);
+               ret = PTR_ERR(info->rtc_clk);
+               if (ret != -EPROBE_DEFER)
+                       dev_err(&pdev->dev, "failed to find rtc clock\n");
+               else
+                       dev_dbg(&pdev->dev, "probe deferred due to missing rtc clk\n");
+               return ret;
        }
        clk_prepare_enable(info->rtc_clk);
 
        if (info->data->needs_src_clk) {
                info->rtc_src_clk = devm_clk_get(&pdev->dev, "rtc_src");
                if (IS_ERR(info->rtc_src_clk)) {
-                       dev_err(&pdev->dev,
-                               "failed to find rtc source clock\n");
+                       ret = PTR_ERR(info->rtc_src_clk);
+                       if (ret != -EPROBE_DEFER)
+                               dev_err(&pdev->dev,
+                                       "failed to find rtc source clock\n");
+                       else
+                               dev_dbg(&pdev->dev,
+                                       "probe deferred due to missing rtc src clk\n");
                        clk_disable_unprepare(info->rtc_clk);
-                       return PTR_ERR(info->rtc_src_clk);
+                       return ret;
                }
                clk_prepare_enable(info->rtc_src_clk);
        }
This page took 0.027935 seconds and 5 git commands to generate.