summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorStuart Menefy <stuart.menefy@st.com>2007-09-28 04:51:52 +0200
committerPaul Mundt <lethal@linux-sh.org>2007-09-28 04:51:52 +0200
commit24eb17e0813490497f4d5b2fad218bdba402cece (patch)
treefecb09cb522f03f47d90b790490e4d7bd6ed5543 /arch
parentsh: Fix URAM start address on SH7785. (diff)
downloadlinux-24eb17e0813490497f4d5b2fad218bdba402cece.tar.xz
linux-24eb17e0813490497f4d5b2fad218bdba402cece.zip
sh: clkfwk: Support multi-level clock propagation.
Currently clock propagation only works for one level, but we have some clocks which need to propagate multiple levels, so make this recursive. Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/sh/kernel/cpu/clock.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/clock.c b/arch/sh/kernel/cpu/clock.c
index 92807ffa8e20..b5f1e23ed57c 100644
--- a/arch/sh/kernel/cpu/clock.c
+++ b/arch/sh/kernel/cpu/clock.c
@@ -83,6 +83,8 @@ static void propagate_rate(struct clk *clk)
continue;
if (likely(clkp->ops && clkp->ops->recalc))
clkp->ops->recalc(clkp);
+ if (unlikely(clkp->flags & CLK_RATE_PROPAGATES))
+ propagate_rate(clkp);
}
}