Просмотр исходного кода

ARM: iMX5: Don't enable DPLL if it already enabled

If the DPLL is already enabled, don't try to enable it again.
Since write to the DPLL control register will make the DPLL
reset and which will cause some issues when some child module
are sourced from this DPLL.

Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Jason Liu 14 лет назад
Родитель
Сommit
e1b96ada65
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      arch/arm/mach-mx5/clock-mx51-mx53.c

+ 5 - 1
arch/arm/mach-mx5/clock-mx51-mx53.c

@@ -271,7 +271,11 @@ static int _clk_pll_enable(struct clk *clk)
 	int i = 0;
 	int i = 0;
 
 
 	pllbase = _get_pll_base(clk);
 	pllbase = _get_pll_base(clk);
-	reg = __raw_readl(pllbase + MXC_PLL_DP_CTL) | MXC_PLL_DP_CTL_UPEN;
+	reg = __raw_readl(pllbase + MXC_PLL_DP_CTL);
+	if (reg & MXC_PLL_DP_CTL_UPEN)
+		return 0;
+
+	reg |= MXC_PLL_DP_CTL_UPEN;
 	__raw_writel(reg, pllbase + MXC_PLL_DP_CTL);
 	__raw_writel(reg, pllbase + MXC_PLL_DP_CTL);
 
 
 	/* Wait for lock */
 	/* Wait for lock */