aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2014-05-09 13:36:27 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-05-25 18:47:46 -0400
commit9581960a40ab0e281b695bf03744c8924ec3b5d0 (patch)
treeff48508723eef430b3afb1fe48f19945acb3ed00 /arch/arm/mm
parentcd000cf650cd43dc0dc37032cb4016985c9dda6c (diff)
ARM: 8055/1: cacheflush: use -st dsb option for ensuring completion
dsb st can be used to ensure completion of pending cache maintenance operations, so use it for the v7 cache maintenance operations. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm')
-rw-r--r--arch/arm/mm/cache-v7.S12
-rw-r--r--arch/arm/mm/mmu.c2
2 files changed, 7 insertions, 7 deletions
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
index 778bcf88ee79..615c99e38ba1 100644
--- a/arch/arm/mm/cache-v7.S
+++ b/arch/arm/mm/cache-v7.S
@@ -59,7 +59,7 @@ ENTRY(v7_invalidate_l1)
59 bgt 2b 59 bgt 2b
60 cmp r2, #0 60 cmp r2, #0
61 bgt 1b 61 bgt 1b
62 dsb 62 dsb st
63 isb 63 isb
64 mov pc, lr 64 mov pc, lr
65ENDPROC(v7_invalidate_l1) 65ENDPROC(v7_invalidate_l1)
@@ -166,7 +166,7 @@ skip:
166finished: 166finished:
167 mov r10, #0 @ swith back to cache level 0 167 mov r10, #0 @ swith back to cache level 0
168 mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr 168 mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr
169 dsb 169 dsb st
170 isb 170 isb
171 mov pc, lr 171 mov pc, lr
172ENDPROC(v7_flush_dcache_all) 172ENDPROC(v7_flush_dcache_all)
@@ -335,7 +335,7 @@ ENTRY(v7_flush_kern_dcache_area)
335 add r0, r0, r2 335 add r0, r0, r2
336 cmp r0, r1 336 cmp r0, r1
337 blo 1b 337 blo 1b
338 dsb 338 dsb st
339 mov pc, lr 339 mov pc, lr
340ENDPROC(v7_flush_kern_dcache_area) 340ENDPROC(v7_flush_kern_dcache_area)
341 341
@@ -368,7 +368,7 @@ v7_dma_inv_range:
368 add r0, r0, r2 368 add r0, r0, r2
369 cmp r0, r1 369 cmp r0, r1
370 blo 1b 370 blo 1b
371 dsb 371 dsb st
372 mov pc, lr 372 mov pc, lr
373ENDPROC(v7_dma_inv_range) 373ENDPROC(v7_dma_inv_range)
374 374
@@ -390,7 +390,7 @@ v7_dma_clean_range:
390 add r0, r0, r2 390 add r0, r0, r2
391 cmp r0, r1 391 cmp r0, r1
392 blo 1b 392 blo 1b
393 dsb 393 dsb st
394 mov pc, lr 394 mov pc, lr
395ENDPROC(v7_dma_clean_range) 395ENDPROC(v7_dma_clean_range)
396 396
@@ -412,7 +412,7 @@ ENTRY(v7_dma_flush_range)
412 add r0, r0, r2 412 add r0, r0, r2
413 cmp r0, r1 413 cmp r0, r1
414 blo 1b 414 blo 1b
415 dsb 415 dsb st
416 mov pc, lr 416 mov pc, lr
417ENDPROC(v7_dma_flush_range) 417ENDPROC(v7_dma_flush_range)
418 418
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 09c0a16165dc..a991ce2f18d4 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -1465,7 +1465,7 @@ void __init early_paging_init(const struct machine_desc *mdesc,
1465 * just complicate the code. 1465 * just complicate the code.
1466 */ 1466 */
1467 flush_cache_louis(); 1467 flush_cache_louis();
1468 dsb(); 1468 dsb(ishst);
1469 isb(); 1469 isb();
1470 1470
1471 /* remap level 1 table */ 1471 /* remap level 1 table */