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);