msm: acpuclock-8960: Don't always use HFPLL constraints
If the PLL we're switching to isn't using an HFPLL we still use
the HFPLL constraints to calculate the vdd_core and vdd_dig.
Ignore the PLL constraint if the PLL isn't an HFPLL so that
voltages can drop if possible.
Change-Id: Ieb9f356e294209adb85c642315a28db71a335390
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
diff --git a/arch/arm/mach-msm/acpuclock-8960.c b/arch/arm/mach-msm/acpuclock-8960.c
index 143fb86..be8c31c 100644
--- a/arch/arm/mach-msm/acpuclock-8960.c
+++ b/arch/arm/mach-msm/acpuclock-8960.c
@@ -764,7 +764,9 @@
{
unsigned int pll_vdd_dig;
- if (tgt->l2_level->speed.pll_l_val > HFPLL_LOW_VDD_PLL_L_MAX)
+ if (tgt->l2_level->speed.src != HFPLL)
+ pll_vdd_dig = 0;
+ else if (tgt->l2_level->speed.pll_l_val > HFPLL_LOW_VDD_PLL_L_MAX)
pll_vdd_dig = HFPLL_NOMINAL_VDD;
else
pll_vdd_dig = HFPLL_LOW_VDD;
@@ -776,7 +778,9 @@
{
unsigned int pll_vdd_core;
- if (tgt->speed.pll_l_val > HFPLL_LOW_VDD_PLL_L_MAX)
+ if (tgt->speed.src != HFPLL)
+ pll_vdd_core = 0;
+ else if (tgt->speed.pll_l_val > HFPLL_LOW_VDD_PLL_L_MAX)
pll_vdd_core = HFPLL_NOMINAL_VDD;
else
pll_vdd_core = HFPLL_LOW_VDD;