diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-03-30 10:40:54 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-03-30 10:40:54 +0100 |
commit | 5c64e2abb3333684fc662eec776ca61ac009f825 (patch) | |
tree | ecb6450be092f0d11b0adfb2369de7edb59675e3 | |
parent | 8f6aef924d6d83f67e74ca5edc98957867c50ce9 (diff) | |
parent | f000328ac10f23f4841b83ddc60eceb3ba0ac176 (diff) |
Merge branch 'for-rmk' of git://git.marvell.com/orion
-rw-r--r-- | arch/arm/mm/cache-feroceon-l2.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm/mm/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c index d6dd83826f8..6e77c042d8e 100644 --- a/arch/arm/mm/cache-feroceon-l2.c +++ b/arch/arm/mm/cache-feroceon-l2.c @@ -115,6 +115,10 @@ static inline void l2_inv_pa_range(unsigned long start, unsigned long end) raw_local_irq_restore(flags); } +static inline void l2_inv_all(void) +{ + __asm__("mcr p15, 1, %0, c15, c11, 0" : : "r" (0)); +} /* * Linux primitives. @@ -254,9 +258,7 @@ static void __init enable_dcache(void) static void __init __invalidate_icache(void) { - int dummy; - - __asm__ __volatile__("mcr p15, 0, %0, c7, c5, 0" : "=r" (dummy)); + __asm__("mcr p15, 0, %0, c7, c5, 0" : : "r" (0)); } static int __init invalidate_and_disable_icache(void) @@ -321,6 +323,7 @@ static void __init enable_l2(void) d = flush_and_disable_dcache(); i = invalidate_and_disable_icache(); + l2_inv_all(); write_extra_features(u | 0x00400000); if (i) enable_icache(); |