Loading arch/arm64/mm/cache.S +11 −4 Original line number Diff line number Diff line Loading @@ -210,12 +210,19 @@ ENDPROC(__flush_dcache_area) ENTRY(__dma_inv_range) dcache_line_size x2, x3 sub x3, x2, #1 bic x0, x0, x3 tst x1, x3 // end cache line aligned? bic x1, x1, x3 1: dc ivac, x0 // invalidate D / U line add x0, x0, x2 b.eq 1f dc civac, x1 // clean & invalidate D / U line 1: tst x0, x3 // start cache line aligned? bic x0, x0, x3 b.eq 2f dc civac, x0 // clean & invalidate D / U line b 3f 2: dc ivac, x0 // invalidate D / U line 3: add x0, x0, x2 cmp x0, x1 b.lo 1b b.lo 2b dsb sy ret ENDPROC(__dma_inv_range) Loading Loading
arch/arm64/mm/cache.S +11 −4 Original line number Diff line number Diff line Loading @@ -210,12 +210,19 @@ ENDPROC(__flush_dcache_area) ENTRY(__dma_inv_range) dcache_line_size x2, x3 sub x3, x2, #1 bic x0, x0, x3 tst x1, x3 // end cache line aligned? bic x1, x1, x3 1: dc ivac, x0 // invalidate D / U line add x0, x0, x2 b.eq 1f dc civac, x1 // clean & invalidate D / U line 1: tst x0, x3 // start cache line aligned? bic x0, x0, x3 b.eq 2f dc civac, x0 // clean & invalidate D / U line b 3f 2: dc ivac, x0 // invalidate D / U line 3: add x0, x0, x2 cmp x0, x1 b.lo 1b b.lo 2b dsb sy ret ENDPROC(__dma_inv_range) Loading