[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>
This commit is contained in:
Родитель
a7b1a1a308
Коммит
3921ee21e0
|
@ -3,26 +3,30 @@
|
|||
|
||||
#include <linux/mm.h>
|
||||
|
||||
/* cache code */
|
||||
#define FLUSH_I_AND_D (0x00000808)
|
||||
#define FLUSH_I (0x00000008)
|
||||
|
||||
/*
|
||||
* Cache handling functions
|
||||
*/
|
||||
|
||||
#define flush_icache() \
|
||||
({ \
|
||||
if (CPU_IS_040_OR_060) \
|
||||
__asm__ __volatile__("nop\n\t" \
|
||||
".chip 68040\n\t" \
|
||||
"cinva %%ic\n\t" \
|
||||
".chip 68k" : ); \
|
||||
else { \
|
||||
unsigned long _tmp; \
|
||||
__asm__ __volatile__("movec %%cacr,%0\n\t" \
|
||||
"orw %1,%0\n\t" \
|
||||
"movec %0,%%cacr" \
|
||||
: "=&d" (_tmp) \
|
||||
: "id" (FLUSH_I)); \
|
||||
} \
|
||||
})
|
||||
static inline void flush_icache(void)
|
||||
{
|
||||
if (CPU_IS_040_OR_060)
|
||||
asm volatile ( "nop\n"
|
||||
" .chip 68040\n"
|
||||
" cpusha %bc\n"
|
||||
" .chip 68k");
|
||||
else {
|
||||
unsigned long tmp;
|
||||
asm volatile ( "movec %%cacr,%0\n"
|
||||
" or.w %1,%0\n"
|
||||
" movec %0,%%cacr"
|
||||
: "=&d" (tmp)
|
||||
: "id" (FLUSH_I));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* invalidate the cache for the specified memory range.
|
||||
|
@ -43,10 +47,6 @@ extern void cache_push(unsigned long paddr, int len);
|
|||
*/
|
||||
extern void cache_push_v(unsigned long vaddr, int len);
|
||||
|
||||
/* cache code */
|
||||
#define FLUSH_I_AND_D (0x00000808)
|
||||
#define FLUSH_I (0x00000008)
|
||||
|
||||
/* This is needed whenever the virtual mapping of the current
|
||||
process changes. */
|
||||
#define __flush_cache_all() \
|
||||
|
|
Загрузка…
Ссылка в новой задаче