diff options
author | Stephen Boyd <sboyd@kernel.org> | 2020-02-06 00:28:02 +0100 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2020-02-13 00:27:13 +0100 |
commit | 2760878662a290ac57cff8a5a8d8bda8f4dddc37 (patch) | |
tree | 8b50aeb5276a79f9872b9c620d814ede7612758b /drivers/clk/clk.c | |
parent | clk: Move rate and accuracy recalc to mostly consumer APIs (diff) | |
download | linux-2760878662a290ac57cff8a5a8d8bda8f4dddc37.tar.xz linux-2760878662a290ac57cff8a5a8d8bda8f4dddc37.zip |
clk: Bail out when calculating phase fails during clk registration
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>
Diffstat (limited to 'drivers/clk/clk.c')
-rw-r--r-- | drivers/clk/clk.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index dc8bdfbd6a0c..ed1797857bae 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -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. |