diff options
Diffstat (limited to 'arch/arm/lib/cache-cp15.c')
| -rw-r--r-- | arch/arm/lib/cache-cp15.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/arch/arm/lib/cache-cp15.c b/arch/arm/lib/cache-cp15.c index 6edf815d4..1cab27c22 100644 --- a/arch/arm/lib/cache-cp15.c +++ b/arch/arm/lib/cache-cp15.c @@ -153,8 +153,11 @@ static void cache_disable(uint32_t cache_bit)  			return;  		/* if disabling data cache, disable mmu too */  		cache_bit |= CR_M; -		flush_dcache_all();  	} +	reg = get_cr(); +	cp_delay(); +	if (cache_bit == (CR_C | CR_M)) +		flush_dcache_all();  	set_cr(reg & ~cache_bit);  }  #endif |