sh: Convert SH-3 to new cacheflush interface.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Paul Mundt 2009-08-15 12:42:55 +09:00
parent a58e1a2ab4
commit 79f1c9da5e
2 changed files with 21 additions and 10 deletions

View File

@ -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;
}

View File

@ -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)) {