clk: Bail out when calculating phase fails during clk registration
authorStephen Boyd <sboyd@kernel.org>
Wed, 5 Feb 2020 23:28:02 +0000 (15:28 -0800)
committerStephen Boyd <sboyd@kernel.org>
Wed, 12 Feb 2020 23:27:13 +0000 (15:27 -0800)
Bail out of clk registration if we fail to get the phase for a clk that
has a clk_ops::get_phase() callback. Print a warning too so that driver
authors can easily figure out that some clk is unable to read back phase
information at boot.

Cc: Douglas Anderson <dianders@chromium.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Suggested-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lkml.kernel.org/r/20200205232802.29184-5-sboyd@kernel.org
Acked-by: Jerome Brunet <jbrunet@baylibre.com>
drivers/clk/clk.c

index dc8bdfb..ed17978 100644 (file)
@@ -3457,7 +3457,12 @@ static int __clk_core_init(struct clk_core *core)
         * Since a phase is by definition relative to its parent, just
         * query the current clock phase, or just assume it's in phase.
         */
-       clk_core_get_phase(core);
+       ret = clk_core_get_phase(core);
+       if (ret < 0) {
+               pr_warn("%s: Failed to get phase for clk '%s'\n", __func__,
+                       core->name);
+               goto out;
+       }
 
        /*
         * Set clk's duty cycle.