forked from Minki/linux
sh: call clock framework init() callback once
Make sure that clk->ops->init() only gets called once in the case of CLK_ALWAYS_ENABLED. Without this patch the init() callback may be called multiple times. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
5dafc91fca
commit
b3cacf3181
@ -99,15 +99,18 @@ static int __clk_enable(struct clk *clk)
|
||||
* changes and the clock needs to hunt for the proper set of
|
||||
* divisors to use before it can effectively recalc.
|
||||
*/
|
||||
|
||||
if (clk->flags & CLK_ALWAYS_ENABLED) {
|
||||
kref_get(&clk->kref);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (unlikely(atomic_read(&clk->kref.refcount) == 1))
|
||||
if (clk->ops && clk->ops->init)
|
||||
clk->ops->init(clk);
|
||||
|
||||
kref_get(&clk->kref);
|
||||
|
||||
if (clk->flags & CLK_ALWAYS_ENABLED)
|
||||
return 0;
|
||||
|
||||
if (likely(clk->ops && clk->ops->enable))
|
||||
clk->ops->enable(clk);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user