diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/dpll3xxx.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index 73a1595c5f2..fc56745676f 100644 --- 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) | |||
390 | * propagating? | 390 | * propagating? |
391 | */ | 391 | */ |
392 | if (!r) | 392 | if (!r) |
393 | clk->rate = omap2_get_dpll_rate(clk); | 393 | clk->rate = (clk->recalc) ? clk->recalc(clk) : |
394 | omap2_get_dpll_rate(clk); | ||
394 | 395 | ||
395 | return r; | 396 | return r; |
396 | } | 397 | } |
@@ -424,6 +425,7 @@ void omap3_noncore_dpll_disable(struct clk *clk) | |||
424 | int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate) | 425 | int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate) |
425 | { | 426 | { |
426 | struct clk *new_parent = NULL; | 427 | struct clk *new_parent = NULL; |
428 | unsigned long hw_rate; | ||
427 | u16 freqsel = 0; | 429 | u16 freqsel = 0; |
428 | struct dpll_data *dd; | 430 | struct dpll_data *dd; |
429 | int ret; | 431 | int ret; |
@@ -435,7 +437,8 @@ int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate) | |||
435 | if (!dd) | 437 | if (!dd) |
436 | return -EINVAL; | 438 | return -EINVAL; |
437 | 439 | ||
438 | if (rate == omap2_get_dpll_rate(clk)) | 440 | hw_rate = (clk->recalc) ? clk->recalc(clk) : omap2_get_dpll_rate(clk); |
441 | if (rate == hw_rate) | ||
439 | return 0; | 442 | return 0; |
440 | 443 | ||
441 | /* | 444 | /* |