summaryrefslogtreecommitdiff
path: root/arch/arm/lib/cache-cp15.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2013-01-11 14:38:24 -0700
committerTom Rini <trini@ti.com>2013-01-11 14:38:24 -0700
commit7a8e739cd5bc0c48511d343f469af89a88a3294d (patch)
tree2198c265cd9d83d58b42ab8a8e66c2fff4d4545a /arch/arm/lib/cache-cp15.c
parent6fb4d74e59750b43f00d460c569e8a30c67c5bb0 (diff)
parent59ee45ee91cc91b392a8e2684bfcb8c933ce4967 (diff)
Merge branch 'master' of git://git.denx.de/u-boot-arm
Diffstat (limited to 'arch/arm/lib/cache-cp15.c')
-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 6edf815d4d7..1cab27c2262 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