diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-10-16 02:14:50 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-10-16 02:14:50 -0400 |
commit | abeaf33a4101764291ec79cf286e08c0966eb26e (patch) | |
tree | bb3f8ae60d1ff0d99a907bcc223886f9d71fafea /arch/sh/mm/cache.c | |
parent | 731ba3301de41d2ffae9dd3e0f85f7361d8ad8f4 (diff) | |
parent | 52a94909f00e0ffceeac202e517a126d57c1c523 (diff) |
Merge branch 'sh/stable-updates'
Conflicts:
arch/sh/mm/cache-sh4.c
Diffstat (limited to 'arch/sh/mm/cache.c')
-rw-r--r-- | arch/sh/mm/cache.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c index e8810f7fc7ea..fc372a1d3132 100644 --- a/arch/sh/mm/cache.c +++ b/arch/sh/mm/cache.c | |||
@@ -271,6 +271,8 @@ static void __init emit_cache_params(void) | |||
271 | 271 | ||
272 | void __init cpu_cache_init(void) | 272 | void __init cpu_cache_init(void) |
273 | { | 273 | { |
274 | unsigned int cache_disabled = !(__raw_readl(CCR) & CCR_CACHE_ENABLE); | ||
275 | |||
274 | compute_alias(&boot_cpu_data.icache); | 276 | compute_alias(&boot_cpu_data.icache); |
275 | compute_alias(&boot_cpu_data.dcache); | 277 | compute_alias(&boot_cpu_data.dcache); |
276 | compute_alias(&boot_cpu_data.scache); | 278 | compute_alias(&boot_cpu_data.scache); |
@@ -279,6 +281,13 @@ void __init cpu_cache_init(void) | |||
279 | __flush_purge_region = noop__flush_region; | 281 | __flush_purge_region = noop__flush_region; |
280 | __flush_invalidate_region = noop__flush_region; | 282 | __flush_invalidate_region = noop__flush_region; |
281 | 283 | ||
284 | /* | ||
285 | * No flushing is necessary in the disabled cache case so we can | ||
286 | * just keep the noop functions in local_flush_..() and __flush_..() | ||
287 | */ | ||
288 | if (unlikely(cache_disabled)) | ||
289 | goto skip; | ||
290 | |||
282 | if (boot_cpu_data.family == CPU_FAMILY_SH2) { | 291 | if (boot_cpu_data.family == CPU_FAMILY_SH2) { |
283 | extern void __weak sh2_cache_init(void); | 292 | extern void __weak sh2_cache_init(void); |
284 | 293 | ||
@@ -318,5 +327,6 @@ void __init cpu_cache_init(void) | |||
318 | sh5_cache_init(); | 327 | sh5_cache_init(); |
319 | } | 328 | } |
320 | 329 | ||
330 | skip: | ||
321 | emit_cache_params(); | 331 | emit_cache_params(); |
322 | } | 332 | } |