1
0
Fork 0

clk: ti: check clock type before doing autoidle ops

Code might use autoidle api with clocks not being omap2 clocks,
so check if clock type is really omap2.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Acked-by: Tony Lindgren <tony@atomide.com>
Tested-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
hifive-unleashed-5.1
Andreas Kemnade 2019-01-16 23:04:28 +01:00 committed by Tero Kristo
parent d277ce2d3a
commit fddf4e29a6
1 changed files with 16 additions and 4 deletions

View File

@ -82,9 +82,15 @@ static int _omap2_clk_allow_idle(struct clk_hw_omap *clk)
*/
int omap2_clk_deny_idle(struct clk *clk)
{
struct clk_hw_omap *c = to_clk_hw_omap(__clk_get_hw(clk));
struct clk_hw *hw = __clk_get_hw(clk);
return _omap2_clk_deny_idle(c);
if (omap2_clk_is_hw_omap(hw)) {
struct clk_hw_omap *c = to_clk_hw_omap(hw);
return _omap2_clk_deny_idle(c);
}
return -EINVAL;
}
/**
@ -95,9 +101,15 @@ int omap2_clk_deny_idle(struct clk *clk)
*/
int omap2_clk_allow_idle(struct clk *clk)
{
struct clk_hw_omap *c = to_clk_hw_omap(__clk_get_hw(clk));
struct clk_hw *hw = __clk_get_hw(clk);
return _omap2_clk_allow_idle(c);
if (omap2_clk_is_hw_omap(hw)) {
struct clk_hw_omap *c = to_clk_hw_omap(hw);
return _omap2_clk_allow_idle(c);
}
return -EINVAL;
}
static void _allow_autoidle(struct clk_ti_autoidle *clk)