diff options
author | Will Deacon <will.deacon@arm.com> | 2014-05-09 13:36:27 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-05-25 18:47:46 -0400 |
commit | 9581960a40ab0e281b695bf03744c8924ec3b5d0 (patch) | |
tree | ff48508723eef430b3afb1fe48f19945acb3ed00 /arch/arm/mm | |
parent | cd000cf650cd43dc0dc37032cb4016985c9dda6c (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.S | 12 | ||||
-rw-r--r-- | arch/arm/mm/mmu.c | 2 |
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 |
65 | ENDPROC(v7_invalidate_l1) | 65 | ENDPROC(v7_invalidate_l1) |
@@ -166,7 +166,7 @@ skip: | |||
166 | finished: | 166 | finished: |
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 |
172 | ENDPROC(v7_flush_dcache_all) | 172 | ENDPROC(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 |
340 | ENDPROC(v7_flush_kern_dcache_area) | 340 | ENDPROC(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 |
373 | ENDPROC(v7_dma_inv_range) | 373 | ENDPROC(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 |
395 | ENDPROC(v7_dma_clean_range) | 395 | ENDPROC(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 |
417 | ENDPROC(v7_dma_flush_range) | 417 | ENDPROC(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 */ |