msm: platsmp: Update Krait release sequence for 8960AB.
The Krait CPU in the MSM8960AB target requires a slightly
modified sequence to bring the secondary cores out of
reset.
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
(cherry picked from commit 121f75f4ec8a1cd05688e66d959e55d1c5c2f327)
Change-Id: I5b909ba7980263a9fa2d01846814f9c1ce114400
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c
index b2d3dfa..c8980a1 100644
--- a/arch/arm/mach-msm/platsmp.c
+++ b/arch/arm/mach-msm/platsmp.c
@@ -102,17 +102,23 @@
msm_spm_turn_on_cpu_rail(cpu);
- writel_relaxed(0x109, base_ptr+0x04);
- writel_relaxed(0x101, base_ptr+0x04);
- ndelay(300);
-
- writel_relaxed(0x121, base_ptr+0x04);
+ if (cpu_is_krait_v1() || cpu_is_krait_v2()) {
+ writel_relaxed(0x109, base_ptr+0x04);
+ writel_relaxed(0x101, base_ptr+0x04);
+ mb();
+ ndelay(300);
+ writel_relaxed(0x121, base_ptr+0x04);
+ } else
+ writel_relaxed(0x021, base_ptr+0x04);
+ mb();
udelay(2);
writel_relaxed(0x020, base_ptr+0x04);
+ mb();
udelay(2);
writel_relaxed(0x000, base_ptr+0x04);
+ mb();
udelay(100);
writel_relaxed(0x080, base_ptr+0x04);