diff options
Diffstat (limited to 'arch/arm/mach-davinci/clock.c')
| -rw-r--r-- | arch/arm/mach-davinci/clock.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c index 868cb7693499..054c303caead 100644 --- a/arch/arm/mach-davinci/clock.c +++ b/arch/arm/mach-davinci/clock.c | |||
| @@ -302,7 +302,6 @@ static unsigned long clk_pllclk_recalc(struct clk *clk) | |||
| 302 | struct pll_data *pll = clk->pll_data; | 302 | struct pll_data *pll = clk->pll_data; |
| 303 | unsigned long rate = clk->rate; | 303 | unsigned long rate = clk->rate; |
| 304 | 304 | ||
| 305 | pll->base = IO_ADDRESS(pll->phys_base); | ||
| 306 | ctrl = __raw_readl(pll->base + PLLCTL); | 305 | ctrl = __raw_readl(pll->base + PLLCTL); |
| 307 | rate = pll->input_rate = clk->parent->rate; | 306 | rate = pll->input_rate = clk->parent->rate; |
| 308 | 307 | ||
| @@ -458,8 +457,17 @@ int __init davinci_clk_init(struct clk_lookup *clocks) | |||
| 458 | clk->recalc = clk_leafclk_recalc; | 457 | clk->recalc = clk_leafclk_recalc; |
| 459 | } | 458 | } |
| 460 | 459 | ||
| 461 | if (clk->pll_data && !clk->pll_data->div_ratio_mask) | 460 | if (clk->pll_data) { |
| 462 | clk->pll_data->div_ratio_mask = PLLDIV_RATIO_MASK; | 461 | struct pll_data *pll = clk->pll_data; |
| 462 | |||
| 463 | if (!pll->div_ratio_mask) | ||
| 464 | pll->div_ratio_mask = PLLDIV_RATIO_MASK; | ||
| 465 | |||
| 466 | if (pll->phys_base && !pll->base) { | ||
| 467 | pll->base = ioremap(pll->phys_base, SZ_4K); | ||
| 468 | WARN_ON(!pll->base); | ||
| 469 | } | ||
| 470 | } | ||
| 463 | 471 | ||
| 464 | if (clk->recalc) | 472 | if (clk->recalc) |
| 465 | clk->rate = clk->recalc(clk); | 473 | clk->rate = clk->recalc(clk); |
