git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Linux 3.2-rc2
[pandora-kernel.git]
/
arch
/
arm
/
mach-omap2
/
dpll3xxx.c
diff --git
a/arch/arm/mach-omap2/dpll3xxx.c
b/arch/arm/mach-omap2/dpll3xxx.c
index
f77022b
..
fc56745
100644
(file)
--- a/
arch/arm/mach-omap2/dpll3xxx.c
+++ b/
arch/arm/mach-omap2/dpll3xxx.c
@@
-390,7
+390,8
@@
int omap3_noncore_dpll_enable(struct clk *clk)
* propagating?
*/
if (!r)
* propagating?
*/
if (!r)
- clk->rate = omap2_get_dpll_rate(clk);
+ clk->rate = (clk->recalc) ? clk->recalc(clk) :
+ omap2_get_dpll_rate(clk);
return r;
}
return r;
}
@@
-424,6
+425,7
@@
void omap3_noncore_dpll_disable(struct clk *clk)
int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
{
struct clk *new_parent = NULL;
int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
{
struct clk *new_parent = NULL;
+ unsigned long hw_rate;
u16 freqsel = 0;
struct dpll_data *dd;
int ret;
u16 freqsel = 0;
struct dpll_data *dd;
int ret;
@@
-435,7
+437,8
@@
int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
if (!dd)
return -EINVAL;
if (!dd)
return -EINVAL;
- if (rate == omap2_get_dpll_rate(clk))
+ hw_rate = (clk->recalc) ? clk->recalc(clk) : omap2_get_dpll_rate(clk);
+ if (rate == hw_rate)
return 0;
/*
return 0;
/*
@@
-455,7
+458,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)
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;
if (dd->last_rounded_rate == 0)
return -EINVAL;