aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarry Fearnhamm <Harry.Fearnhamm@arm.com>2008-12-01 14:54:56 +0000
committerCatalin Marinas <catalin.marinas@arm.com>2008-12-01 14:54:56 +0000
commit8aa2da872a492a2196397603ed756a4c48677122 (patch)
tree247f803b2f677d48b6a696c158f3c925d9102f04
parente7c70825a758403cfb476903f3145e6a8c0dd3b5 (diff)
RealView: Use flush_cache_all() rather than MCR in cpu_enter_lowpower()
The MCR for flushing the whole D cache is undefined on ARMv7 CPUs. Signed-off-by: Harry Fearnhamm <Harry.Fearnhamm@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-rw-r--r--arch/arm/mach-realview/hotplug.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-realview/hotplug.c b/arch/arm/mach-realview/hotplug.c
index 09748cbcd10..be048e3e879 100644
--- a/arch/arm/mach-realview/hotplug.c
+++ b/arch/arm/mach-realview/hotplug.c
@@ -13,6 +13,8 @@
#include <linux/smp.h>
#include <linux/completion.h>
+#include <asm/cacheflush.h>
+
extern volatile int pen_release;
static DECLARE_COMPLETION(cpu_killed);
@@ -21,7 +23,8 @@ static inline void cpu_enter_lowpower(void)
{
unsigned int v;
- asm volatile( "mcr p15, 0, %1, c7, c14, 0\n"
+ flush_cache_all();
+ asm volatile(
" mcr p15, 0, %1, c7, c5, 0\n"
" mcr p15, 0, %1, c7, c10, 4\n"
/*