summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/cpu/armv7/tegra-common/ap20.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/arch/arm/cpu/armv7/tegra-common/ap20.c b/arch/arm/cpu/armv7/tegra-common/ap20.c
index 913d8aaa778..5d1f6045f8a 100644
--- a/arch/arm/cpu/armv7/tegra-common/ap20.c
+++ b/arch/arm/cpu/armv7/tegra-common/ap20.c
@@ -178,10 +178,11 @@ static int pllx_set_rate(struct clk_pll *pll , u32 divn, u32 divm, u32 divp,
u32 reg;
reg = readl(&pll->pll_base);
- /* Set m, n and p to PLLX_BASE */
+ /* Set m, n and p to PLLX_BASE and clear bypass */
bf_update(PLL_DIVM, reg, divm);
bf_update(PLL_DIVN, reg, divn);
bf_update(PLL_DIVP, reg, divp);
+ bf_update(PLL_BYPASS, reg, 0);
writel(reg, &pll->pll_base);
/* Set cpcon to PLLX_MISC */
@@ -192,15 +193,7 @@ static int pllx_set_rate(struct clk_pll *pll , u32 divn, u32 divm, u32 divp,
/* Enable PLLX if not enabled */
if (!bf_unpack(PLL_ENABLE, reg)) {
bf_update(PLL_ENABLE, reg, 1);
- bf_update(PLL_BYPASS, reg, 0);
writel(reg, &pll->pll_base);
- /*
- * Wait for 200uS, this is done based on what is done in the
- * Linux kernel PLL code for Tegra2, this is being kept here
- * for now pending on going stability testing on removing
- * or lowering it.
- */
- udelay(200);
}
return 0;