summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/lib/cache-cp15.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/lib/cache-cp15.c b/arch/arm/lib/cache-cp15.c
index 0291afa..c0df109 100644
--- a/arch/arm/lib/cache-cp15.c
+++ b/arch/arm/lib/cache-cp15.c
@@ -146,8 +146,11 @@ static void cache_disable(uint32_t cache_bit)
}
reg = get_cr();
cp_delay();
- if (cache_bit == (CR_C | CR_M))
+ if (cache_bit == (CR_C | CR_M)) {
flush_dcache_all();
+ set_cr(reg & ~CR_C);
+ flush_dcache_all();
+ }
set_cr(reg & ~cache_bit);
}
#endif