]> Pileus Git - ~andy/linux/commitdiff
ARM: OMAP3+: dpll: assign clk rate from rounded rate during rate set
authorMike Turquette <mturquette@ti.com>
Fri, 7 Oct 2011 06:53:00 +0000 (00:53 -0600)
committerPaul Walmsley <paul@pwsan.com>
Fri, 7 Oct 2011 06:53:00 +0000 (00:53 -0600)
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 a clock that requires this 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.

Signed-off-by: Mike Turquette <mturquette@ti.com>
Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/dpll3xxx.c

index 6b0fa3786022ec0da7b84a4c9c346cf9d53e2f70..73a1595c5f213bb9f9a50d828aa3edf0dd9734bb 100644 (file)
@@ -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)
-                       clk->round_rate(clk, rate);
+                       rate = clk->round_rate(clk, rate);
 
                if (dd->last_rounded_rate == 0)
                        return -EINVAL;