diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-05-13 07:28:15 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-05-13 07:28:15 -0400 |
commit | cc96eace48fdf0f8925a74c6c1f7ffa512e458d2 (patch) | |
tree | 7a922b498e387495b3665c5428a932d7d328810e /arch/sh/kernel/cpu/clock.c | |
parent | a77b5ac0ea8e47c77008d3a9a9976dcfbc01c42a (diff) |
sh: clkfwk: rate table construction and rounding for SH7785.
This adds support for constructing a rate table by looking at potential
divisors for a specified clock. Each FQRMR clock is given its own table.
Presently each table is rebuilt when the parent propagates down a new
rate, so some more logic needs to be added to do this more intelligently.
Additionally, a fairly generic round_rate() implementation is then
layered on top of it, which subsequently provides us with cpufreq support.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu/clock.c')
-rw-r--r-- | arch/sh/kernel/cpu/clock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/clock.c b/arch/sh/kernel/cpu/clock.c index 033f4662b59d..56c6e11fa83b 100644 --- a/arch/sh/kernel/cpu/clock.c +++ b/arch/sh/kernel/cpu/clock.c | |||
@@ -63,6 +63,9 @@ void propagate_rate(struct clk *tclk) | |||
63 | list_for_each_entry(clkp, &tclk->children, sibling) { | 63 | list_for_each_entry(clkp, &tclk->children, sibling) { |
64 | if (clkp->ops && clkp->ops->recalc) | 64 | if (clkp->ops && clkp->ops->recalc) |
65 | clkp->rate = clkp->ops->recalc(clkp); | 65 | clkp->rate = clkp->ops->recalc(clkp); |
66 | if (clkp->ops && clkp->ops->build_rate_table) | ||
67 | clkp->ops->build_rate_table(clkp); | ||
68 | |||
66 | propagate_rate(clkp); | 69 | propagate_rate(clkp); |
67 | } | 70 | } |
68 | } | 71 | } |