aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-m68k/cacheflush.h
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2006-06-25 08:46:56 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 13:00:56 -0400
commit3921ee21e01ac5faecda640daa6071dc8f0e29c9 (patch)
treeb0bec2533d6d488dcfea88ff5075ce64a8b1bb7f /include/asm-m68k/cacheflush.h
parenta7b1a1a3089aaf1168e3b68a40e98532063d7811 (diff)
[PATCH] m68k: small flush_icache() cleanup
Make flush_icache() an inline function and clean it up a litte. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-m68k/cacheflush.h')
-rw-r--r--include/asm-m68k/cacheflush.h40
1 files changed, 20 insertions, 20 deletions
diff --git a/include/asm-m68k/cacheflush.h b/include/asm-m68k/cacheflush.h
index 8aba971b1368..24d3ff449135 100644
--- a/include/asm-m68k/cacheflush.h
+++ b/include/asm-m68k/cacheflush.h
@@ -3,26 +3,30 @@
3 3
4#include <linux/mm.h> 4#include <linux/mm.h>
5 5
6/* cache code */
7#define FLUSH_I_AND_D (0x00000808)
8#define FLUSH_I (0x00000008)
9
6/* 10/*
7 * Cache handling functions 11 * Cache handling functions
8 */ 12 */
9 13
10#define flush_icache() \ 14static inline void flush_icache(void)
11({ \ 15{
12 if (CPU_IS_040_OR_060) \ 16 if (CPU_IS_040_OR_060)
13 __asm__ __volatile__("nop\n\t" \ 17 asm volatile ( "nop\n"
14 ".chip 68040\n\t" \ 18 " .chip 68040\n"
15 "cinva %%ic\n\t" \ 19 " cpusha %bc\n"
16 ".chip 68k" : ); \ 20 " .chip 68k");
17 else { \ 21 else {
18 unsigned long _tmp; \ 22 unsigned long tmp;
19 __asm__ __volatile__("movec %%cacr,%0\n\t" \ 23 asm volatile ( "movec %%cacr,%0\n"
20 "orw %1,%0\n\t" \ 24 " or.w %1,%0\n"
21 "movec %0,%%cacr" \ 25 " movec %0,%%cacr"
22 : "=&d" (_tmp) \ 26 : "=&d" (tmp)
23 : "id" (FLUSH_I)); \ 27 : "id" (FLUSH_I));
24 } \ 28 }
25}) 29}
26 30
27/* 31/*
28 * invalidate the cache for the specified memory range. 32 * invalidate the cache for the specified memory range.
@@ -43,10 +47,6 @@ extern void cache_push(unsigned long paddr, int len);
43 */ 47 */
44extern void cache_push_v(unsigned long vaddr, int len); 48extern void cache_push_v(unsigned long vaddr, int len);
45 49
46/* cache code */
47#define FLUSH_I_AND_D (0x00000808)
48#define FLUSH_I (0x00000008)
49
50/* This is needed whenever the virtual mapping of the current 50/* This is needed whenever the virtual mapping of the current
51 process changes. */ 51 process changes. */
52#define __flush_cache_all() \ 52#define __flush_cache_all() \