Commit 7aba4f52 authored by Suman Anna's avatar Suman Anna Committed by Tero Kristo

clk: ti: dflt: fix enable_reg validity check

The default clock enabling functions for TI clocks -
omap2_dflt_clk_enable() and omap2_dflt_clk_disable() perform a
NULL check for the enable_reg field of the clk_hw_omap structure.
This enable_reg field however is merely a combination of the index
of the master IP module, and the offset from the master IP module's
base address. A value of 0 is perfectly valid, and the current error
checking will fail in these cases. The issue was found when trying
to enable the iva2_ck clock on OMAP3 platforms.

So, switch the check to use IS_ERR. This correction is similar to the
logic used in commit c807dbed ("clk: ti: fix ti_clk_get_reg_addr
error handling").

Fixes: 9f37e90e ("clk: ti: dflt: move support for default gate clock..")
Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
parent 19e79687
...@@ -222,7 +222,7 @@ int omap2_dflt_clk_enable(struct clk_hw *hw) ...@@ -222,7 +222,7 @@ int omap2_dflt_clk_enable(struct clk_hw *hw)
} }
} }
if (unlikely(!clk->enable_reg)) { if (unlikely(IS_ERR(clk->enable_reg))) {
pr_err("%s: %s missing enable_reg\n", __func__, pr_err("%s: %s missing enable_reg\n", __func__,
clk_hw_get_name(hw)); clk_hw_get_name(hw));
ret = -EINVAL; ret = -EINVAL;
...@@ -264,7 +264,7 @@ void omap2_dflt_clk_disable(struct clk_hw *hw) ...@@ -264,7 +264,7 @@ void omap2_dflt_clk_disable(struct clk_hw *hw)
u32 v; u32 v;
clk = to_clk_hw_omap(hw); clk = to_clk_hw_omap(hw);
if (!clk->enable_reg) { if (IS_ERR(clk->enable_reg)) {
/* /*
* 'independent' here refers to a clock which is not * 'independent' here refers to a clock which is not
* controlled by its parent. * controlled by its parent.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment