diff options
author | Harry Fearnhamm <Harry.Fearnhamm@arm.com> | 2008-12-01 17:54:56 +0300 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2008-12-01 17:54:56 +0300 |
commit | 8aa2da872a492a2196397603ed756a4c48677122 (patch) | |
tree | 247f803b2f677d48b6a696c158f3c925d9102f04 /arch/arm/mach-realview/hotplug.c | |
parent | e7c70825a758403cfb476903f3145e6a8c0dd3b5 (diff) | |
download | linux-8aa2da872a492a2196397603ed756a4c48677122.tar.xz |
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>
Diffstat (limited to 'arch/arm/mach-realview/hotplug.c')
-rw-r--r-- | arch/arm/mach-realview/hotplug.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-realview/hotplug.c b/arch/arm/mach-realview/hotplug.c index 09748cbcd10e..be048e3e8799 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" /* |