diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.com> | 2014-09-17 11:34:17 +0200 |
---|---|---|
committer | Peter De Schrijver <pdeschrijver@nvidia.com> | 2014-09-18 13:56:53 +0200 |
commit | b9e742c3164344fece3615aca42ec51b41753908 (patch) | |
tree | c6d2ec101d61bb69fa6eee437f67e2bed1cee8ab | |
parent | clk: tegra124: Add PLL_M_UD and PLL_C_UD clocks (diff) | |
download | linux-b9e742c3164344fece3615aca42ec51b41753908.tar.xz linux-b9e742c3164344fece3615aca42ec51b41753908.zip |
clk: tegra: Make clock initialization more robust
Don't abort clock initialization if we cannot match an entry in
tegra_clk_init_table to a valid entry in the clk array.
Also log a corresponding error message.
This was discovered when testing a patch that removed the EMC clock from
tegra124_clks but left a mention in tegra_clk_init_table.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
-rw-r--r-- | drivers/clk/tegra/clk.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c index f87c609e8f72..97dc8595c3cd 100644 --- a/drivers/clk/tegra/clk.c +++ b/drivers/clk/tegra/clk.c @@ -207,8 +207,13 @@ void __init tegra_init_from_table(struct tegra_clk_init_table *tbl, for (; tbl->clk_id < clk_max; tbl++) { clk = clks[tbl->clk_id]; - if (IS_ERR_OR_NULL(clk)) - return; + if (IS_ERR_OR_NULL(clk)) { + pr_err("%s: invalid entry %ld in clks array for id %d\n", + __func__, PTR_ERR(clk), tbl->clk_id); + WARN_ON(1); + + continue; + } if (tbl->parent_id < clk_max) { struct clk *parent = clks[tbl->parent_id]; |