diff options
Diffstat (limited to 'arch/blackfin/mach-common/cache.S')
-rw-r--r-- | arch/blackfin/mach-common/cache.S | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/blackfin/mach-common/cache.S b/arch/blackfin/mach-common/cache.S index db532181fbde..a028e9450419 100644 --- a/arch/blackfin/mach-common/cache.S +++ b/arch/blackfin/mach-common/cache.S | |||
@@ -25,9 +25,13 @@ | |||
25 | */ | 25 | */ |
26 | .macro do_flush flushins:req optflushins optnopins label | 26 | .macro do_flush flushins:req optflushins optnopins label |
27 | 27 | ||
28 | R2 = -L1_CACHE_BYTES; | ||
29 | |||
30 | /* start = (start & -L1_CACHE_BYTES) */ | ||
31 | R0 = R0 & R2; | ||
32 | |||
28 | /* end = ((end - 1) & -L1_CACHE_BYTES) + L1_CACHE_BYTES; */ | 33 | /* end = ((end - 1) & -L1_CACHE_BYTES) + L1_CACHE_BYTES; */ |
29 | R1 += -1; | 34 | R1 += -1; |
30 | R2 = -L1_CACHE_BYTES; | ||
31 | R1 = R1 & R2; | 35 | R1 = R1 & R2; |
32 | R1 += L1_CACHE_BYTES; | 36 | R1 += L1_CACHE_BYTES; |
33 | 37 | ||
@@ -63,7 +67,7 @@ ENDPROC(_blackfin_icache_flush_range) | |||
63 | 67 | ||
64 | /* Flush all cache lines assocoiated with this area of memory. */ | 68 | /* Flush all cache lines assocoiated with this area of memory. */ |
65 | ENTRY(_blackfin_icache_dcache_flush_range) | 69 | ENTRY(_blackfin_icache_dcache_flush_range) |
66 | do_flush IFLUSH, FLUSH | 70 | do_flush FLUSH, IFLUSH |
67 | ENDPROC(_blackfin_icache_dcache_flush_range) | 71 | ENDPROC(_blackfin_icache_dcache_flush_range) |
68 | 72 | ||
69 | /* Throw away all D-cached data in specified region without any obligation to | 73 | /* Throw away all D-cached data in specified region without any obligation to |