sh: enable and disable clocks recursively

Recurse and make sure parent clocks get enabled/disabled.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Magnus Damm 2008-10-31 20:13:32 +09:00 committed by Paul Mundt
parent 4a4a9be3eb
commit d12cfac146
1 changed files with 10 additions and 0 deletions

View File

@ -117,6 +117,11 @@ int clk_enable(struct clk *clk)
unsigned long flags;
int ret;
if (!clk)
return -EINVAL;
clk_enable(clk->parent);
spin_lock_irqsave(&clock_lock, flags);
ret = __clk_enable(clk);
spin_unlock_irqrestore(&clock_lock, flags);
@ -147,9 +152,14 @@ void clk_disable(struct clk *clk)
{
unsigned long flags;
if (!clk)
return -EINVAL;
spin_lock_irqsave(&clock_lock, flags);
__clk_disable(clk);
spin_unlock_irqrestore(&clock_lock, flags);
clk_disable(clk->parent);
}
EXPORT_SYMBOL_GPL(clk_disable);