diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-05-13 20:28:15 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-05-13 20:28:15 +0900 |
commit | cc96eace48fdf0f8925a74c6c1f7ffa512e458d2 (patch) | |
tree | 7a922b498e387495b3665c5428a932d7d328810e /arch/sh/kernel/cpu/clock.c | |
parent | a77b5ac0ea8e47c77008d3a9a9976dcfbc01c42a (diff) | |
download | blackbird-op-linux-cc96eace48fdf0f8925a74c6c1f7ffa512e458d2.tar.gz blackbird-op-linux-cc96eace48fdf0f8925a74c6c1f7ffa512e458d2.zip |
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) list_for_each_entry(clkp, &tclk->children, sibling) { if (clkp->ops && clkp->ops->recalc) clkp->rate = clkp->ops->recalc(clkp); + if (clkp->ops && clkp->ops->build_rate_table) + clkp->ops->build_rate_table(clkp); + propagate_rate(clkp); } } |