diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-08-15 12:42:55 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-08-15 12:42:55 +0900 |
commit | 79f1c9da5e5fc5f4705836d8c1cee2213fc80640 (patch) | |
tree | 78c03e959f7bf6940b4c05937861b4793e6b5cec /arch/sh/mm | |
parent | a58e1a2ab4f6334c50dfbda83d3a5c6e0b2b4bee (diff) | |
download | linux-79f1c9da5e5fc5f4705836d8c1cee2213fc80640.tar.gz linux-79f1c9da5e5fc5f4705836d8c1cee2213fc80640.tar.bz2 linux-79f1c9da5e5fc5f4705836d8c1cee2213fc80640.zip |
sh: Convert SH-3 to new cacheflush interface.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm')
-rw-r--r-- | arch/sh/mm/cache-sh3.c | 25 | ||||
-rw-r--r-- | arch/sh/mm/cache.c | 6 |
2 files changed, 21 insertions, 10 deletions
diff --git a/arch/sh/mm/cache-sh3.c b/arch/sh/mm/cache-sh3.c index 6d1dbec08ad4..faef80c98134 100644 --- a/arch/sh/mm/cache-sh3.c +++ b/arch/sh/mm/cache-sh3.c @@ -32,7 +32,7 @@ * SIZE: Size of the region. */ -void __flush_wback_region(void *start, int size) +static void sh3__flush_wback_region(void *start, int size) { unsigned long v, j; unsigned long begin, end; @@ -71,7 +71,7 @@ void __flush_wback_region(void *start, int size) * START: Virtual Address (U0, P1, or P3) * SIZE: Size of the region. */ -void __flush_purge_region(void *start, int size) +static void sh3__flush_purge_region(void *start, int size) { unsigned long v; unsigned long begin, end; @@ -90,11 +90,16 @@ void __flush_purge_region(void *start, int size) } } -/* - * No write back please - * - * Except I don't think there's any way to avoid the writeback. So we - * just alias it to __flush_purge_region(). dwmw2. - */ -void __flush_invalidate_region(void *start, int size) - __attribute__((alias("__flush_purge_region"))); +void __init sh3_cache_init(void) +{ + __flush_wback_region = sh3__flush_wback_region; + __flush_purge_region = sh3__flush_purge_region; + + /* + * No write back please + * + * Except I don't think there's any way to avoid the writeback. + * So we just alias it to sh3__flush_purge_region(). dwmw2. + */ + __flush_invalidate_region = sh3__flush_purge_region; +} diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c index b56cce408912..c9480b48c746 100644 --- a/arch/sh/mm/cache.c +++ b/arch/sh/mm/cache.c @@ -256,6 +256,12 @@ void __init cpu_cache_init(void) sh2a_cache_init(); } + if (boot_cpu_data.family == CPU_FAMILY_SH3) { + extern void __weak sh3_cache_init(void); + + sh3_cache_init(); + } + if ((boot_cpu_data.family == CPU_FAMILY_SH4) || (boot_cpu_data.family == CPU_FAMILY_SH4A) || (boot_cpu_data.family == CPU_FAMILY_SH4AL_DSP)) { |