sh: Convert SH-2 to new cacheflush interface.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
||||||
void __flush_wback_region(void *start, int size)
|
static void sh2__flush_wback_region(void *start, int size)
|
||||||
{
|
{
|
||||||
unsigned long v;
|
unsigned long v;
|
||||||
unsigned long begin, end;
|
unsigned long begin, end;
|
||||||
@@ -37,7 +37,7 @@ void __flush_wback_region(void *start, int size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void __flush_purge_region(void *start, int size)
|
static void sh2__flush_purge_region(void *start, int size)
|
||||||
{
|
{
|
||||||
unsigned long v;
|
unsigned long v;
|
||||||
unsigned long begin, end;
|
unsigned long begin, end;
|
||||||
@@ -51,7 +51,7 @@ void __flush_purge_region(void *start, int size)
|
|||||||
CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
|
CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __flush_invalidate_region(void *start, int size)
|
static void sh2__flush_invalidate_region(void *start, int size)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_CACHE_WRITEBACK
|
#ifdef CONFIG_CACHE_WRITEBACK
|
||||||
/*
|
/*
|
||||||
@@ -82,3 +82,10 @@ void __flush_invalidate_region(void *start, int size)
|
|||||||
CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
|
CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __init sh2_cache_init(void)
|
||||||
|
{
|
||||||
|
__flush_wback_region = sh2__flush_wback_region;
|
||||||
|
__flush_purge_region = sh2__flush_purge_region;
|
||||||
|
__flush_invalidate_region = sh2__flush_invalidate_region;
|
||||||
|
}
|
||||||
|
@@ -244,6 +244,12 @@ void __init cpu_cache_init(void)
|
|||||||
__flush_purge_region = noop__flush_region;
|
__flush_purge_region = noop__flush_region;
|
||||||
__flush_invalidate_region = noop__flush_region;
|
__flush_invalidate_region = noop__flush_region;
|
||||||
|
|
||||||
|
if (boot_cpu_data.family == CPU_FAMILY_SH2) {
|
||||||
|
extern void __weak sh2_cache_init(void);
|
||||||
|
|
||||||
|
sh2_cache_init();
|
||||||
|
}
|
||||||
|
|
||||||
if ((boot_cpu_data.family == CPU_FAMILY_SH4) ||
|
if ((boot_cpu_data.family == CPU_FAMILY_SH4) ||
|
||||||
(boot_cpu_data.family == CPU_FAMILY_SH4A) ||
|
(boot_cpu_data.family == CPU_FAMILY_SH4A) ||
|
||||||
(boot_cpu_data.family == CPU_FAMILY_SH4AL_DSP)) {
|
(boot_cpu_data.family == CPU_FAMILY_SH4AL_DSP)) {
|
||||||
|
Reference in New Issue
Block a user