msm: acpuclock-8960: Select QSB clock source during 8064 hotplug-remove
8064v1.0 hardware is subject to the requirement that the QSB clock
source must be selected prior to power-collapse to prevent a potential
clock source switching issue that may result in a CPU lockup. This is
similar to Kraitv1, so apply the Kraitv1 workaround to 8064.
Change-Id: I046f1a141fb6f033c616cb2c506d0838df1f5b13
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
diff --git a/arch/arm/mach-msm/acpuclock-8960.c b/arch/arm/mach-msm/acpuclock-8960.c
index e49cd3a..470e836 100644
--- a/arch/arm/mach-msm/acpuclock-8960.c
+++ b/arch/arm/mach-msm/acpuclock-8960.c
@@ -1298,10 +1298,10 @@
case CPU_DYING:
case CPU_DYING_FROZEN:
/*
- * On Krait v1, the primary and secondary muxes must be set
- * to QSB before L2 power collapse and restored after.
+ * On Krait v1 and 8064v1, the primary and secondary muxes must
+ * be set to QSB before L2 power collapse and restored after.
*/
- if (cpu_is_krait_v1()) {
+ if (cpu_is_krait_v1() || cpu_is_apq8064()) {
prev_sec_src[cpu] = get_sec_clk_src(&scalable[cpu]);
prev_pri_src[cpu] = get_pri_clk_src(&scalable[cpu]);
set_sec_clk_src(&scalable[cpu], SEC_SRC_SEL_QSB);
@@ -1324,7 +1324,7 @@
break;
case CPU_STARTING:
case CPU_STARTING_FROZEN:
- if (cpu_is_krait_v1()) {
+ if (cpu_is_krait_v1() || cpu_is_apq8064()) {
set_sec_clk_src(&scalable[cpu], prev_sec_src[cpu]);
set_pri_clk_src(&scalable[cpu], prev_pri_src[cpu]);
}