Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5fb80ae8 authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt
Browse files

sh: disabled cache handling fix.



Add code to handle the cache disabled case. Fixes breakage introduced by
37443ef3 ("sh: Migrate SH-4 cacheflush
ops to function pointers."). Without this patch configuring caches off
with CONFIG_CACHE_OFF=y makes kfr2r09 and migo-r lock up in fbdev
deferred io or early user space.

Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent a7a7c0e1
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -265,6 +265,8 @@ static void __init emit_cache_params(void)

void __init cpu_cache_init(void)
{
	unsigned int cache_disabled = !(__raw_readl(CCR) & CCR_CACHE_ENABLE);

	compute_alias(&boot_cpu_data.icache);
	compute_alias(&boot_cpu_data.dcache);
	compute_alias(&boot_cpu_data.scache);
@@ -273,6 +275,13 @@ void __init cpu_cache_init(void)
	__flush_purge_region		= noop__flush_region;
	__flush_invalidate_region	= noop__flush_region;

	/*
	 * No flushing is necessary in the disabled cache case so we can
	 * just keep the noop functions in local_flush_..() and __flush_..()
	 */
	if (unlikely(cache_disabled))
		goto skip;

	if (boot_cpu_data.family == CPU_FAMILY_SH2) {
		extern void __weak sh2_cache_init(void);

@@ -312,5 +321,6 @@ void __init cpu_cache_init(void)
		sh5_cache_init();
	}

skip:
	emit_cache_params();
}