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 commitc807dbedb5
("clk: ti: fix ti_clk_get_reg_addr error handling"). Fixes:9f37e90efa
("clk: ti: dflt: move support for default gate clock..") Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Tero Kristo <t-kristo@ti.com>
This commit is contained in:
parent
19e79687de
commit
7aba4f5201
|
@ -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)
|
||||||
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.
|
||||||
|
|
Loading…
Reference in New Issue