Revert "ARM: tegra: update the cache maintenance order for CPU shutdown"
Dan Willemsen [Mon, 29 Jul 2013 20:38:25 +0000 (13:38 -0700)]
This reverts commit 57886616ca7bff844a6427436d0c8faf74653f73.

Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>

arch/arm/mach-tegra/hotplug.c
arch/arm/mach-tegra/sleep-tegra20.S
arch/arm/mach-tegra/sleep-tegra30.S
arch/arm/mach-tegra/sleep.S
arch/arm/mach-tegra/sleep.h

index 13f170b..6fc3cd2 100644 (file)
@@ -28,8 +28,8 @@ void __ref tegra_cpu_die(unsigned int cpu)
 {
        cpu = cpu_logical_map(cpu);
 
-       /* Clean L1 data cache */
-       tegra_disable_clean_inv_dcache();
+       /* Flush the L1 data cache. */
+       flush_cache_all();
 
        /* Shut down the current CPU. */
        tegra_hotplug_shutdown();
index ad2ca07..72ce709 100644 (file)
@@ -33,6 +33,9 @@
  * should never return
  */
 ENTRY(tegra20_hotplug_shutdown)
+       /* Turn off SMP coherency */
+       exit_smp r4, r5
+
        /* Put this CPU down */
        cpu_id  r0
        bl      tegra20_cpu_shutdown
index 63a15bd..562a8e7 100644 (file)
@@ -32,6 +32,9 @@
  * Should never return.
  */
 ENTRY(tegra30_hotplug_shutdown)
+       /* Turn off SMP coherency */
+       exit_smp r4, r5
+
        /* Powergate this CPU */
        mov     r0, #TEGRA30_POWER_HOTPLUG_SHUTDOWN
        bl      tegra30_cpu_shutdown
index addae35..26afa7c 100644 (file)
@@ -34,7 +34,7 @@
 #include "flowctrl.h"
 #include "sleep.h"
 
-#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_PM_SLEEP)
+#ifdef CONFIG_PM_SLEEP
 /*
  * tegra_disable_clean_inv_dcache
  *
@@ -60,9 +60,7 @@ ENTRY(tegra_disable_clean_inv_dcache)
 
        ldmfd   sp!, {r0, r4-r5, r7, r9-r11, pc}
 ENDPROC(tegra_disable_clean_inv_dcache)
-#endif
 
-#ifdef CONFIG_PM_SLEEP
 /*
  * tegra_sleep_cpu_finish(unsigned long v2p)
  *
index 56505c3..9821ee7 100644 (file)
@@ -106,7 +106,6 @@ exit_l2_resume:
 #else
 void tegra_resume(void);
 int tegra_sleep_cpu_finish(unsigned long);
-void tegra_disable_clean_inv_dcache(void);
 
 #ifdef CONFIG_HOTPLUG_CPU
 void tegra20_hotplug_init(void);