aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/dpll3xxx.c
diff options
context:
space:
mode:
authorMike Turquette <mturquette@ti.com>2011-07-08 19:26:25 -0700
committerNishanth Menon <nm@ti.com>2011-07-10 23:20:26 -0700
commitaf9070caf38f05e65364d1e7a9829e153464432d (patch)
tree8caef77542bffb9de22715774ac7cece53e149b5 /arch/arm/mach-omap2/dpll3xxx.c
parent0539136a4b3bf4a84d61adab0bed9d19b76bce42 (diff)
downloadkernel_samsung_tuna-af9070caf38f05e65364d1e7a9829e153464432d.zip
kernel_samsung_tuna-af9070caf38f05e65364d1e7a9829e153464432d.tar.gz
kernel_samsung_tuna-af9070caf38f05e65364d1e7a9829e153464432d.tar.bz2
OMAP3+: use DPLL's round_rate when setting rate
omap3_noncore_dpll_set_rate uses omap2_dpll_round_rate explicitly. Instead use the struct clk pointer's round_rate function to allow for DPLL's with special needs. Also the rounded rate can differ from target rate, so to better reflect reality set clk->rate equal to the rounded rate when setting DPLL frequency. This avoids issues where the DPLL frequency is slightly different than what debugfs clock tree reports using the old target rate. An example of both of these needs is DPLL_ABE on OMAP4 which can have a 4x multiplier on top of the usual MN dividers depending on register settings. This requires a special round_rate function that might yield a rate different from the initial target. [rnayak@ti.com: resolved failing hunks] Signed-off-by: Rajendra Nayak <rnayak@ti.com> Signed-off-by: Mike Turquette <mturquette@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/dpll3xxx.c')
-rw-r--r--arch/arm/mach-omap2/dpll3xxx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c
index f77022b..73a1595 100644
--- a/arch/arm/mach-omap2/dpll3xxx.c
+++ b/arch/arm/mach-omap2/dpll3xxx.c
@@ -455,7 +455,7 @@ int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
new_parent = dd->clk_bypass;
} else {
if (dd->last_rounded_rate != rate)
- omap2_dpll_round_rate(clk, rate);
+ rate = clk->round_rate(clk, rate);
if (dd->last_rounded_rate == 0)
return -EINVAL;