ARM: tegra11x: Eliminate redundant cache flush
Bo Yan [Wed, 28 Nov 2012 21:44:29 +0000 (13:44 -0800)]
Tegra specific code flushes L1 cache when entering suspend, there
is no need to do the same thing in __cpu_suspend_save.

The L1 cache flush has to be done in Tegra specific code because:

1. we have to clear SCTLR.C bit before flushing cache and we can
   not write anything to external memory between clearing SCTLR.C
   and flushing cache.
2. we want to reduce entry latency by disabling cache at very late
   stage of suspend entry sequence.

Change-Id: I56ef4713bcd638ce6af88f0367c462f216b1bbf4
Signed-off-by: Bo Yan <byan@nvidia.com>
Reviewed-on: http://git-master/r/167060
Reviewed-by: Automatic_Commit_Validation_User

arch/arm/kernel/suspend.c

index c59c97e..7cf10e4 100644 (file)
@@ -28,7 +28,9 @@ void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr)
 
        cpu_do_suspend(ptr);
 
+#ifndef CONFIG_ARCH_TEGRA_11x_SOC
        flush_cache_louis();
+#endif
 
        /*
         * flush_cache_louis does not guarantee that