Commit 39e96c88 authored by Mike Frysinger's avatar Mike Frysinger Committed by Bryan Wu
Browse files

Blackfin arch: fix bug - dmacopy test case fail on all platform



The cache code I added flushes 1 line too little if the start address is
not aligned to the cache size. Cache align the start address so that when
we straddle cache aligns, we get the right count.

Signed-off-by: default avatarMike Frysinger <vapier.adi@gmail.com>
Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
parent 4ee1c453
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -25,9 +25,13 @@
 */
.macro do_flush flushins:req optflushins optnopins label

	R2 = -L1_CACHE_BYTES;

	/* start = (start & -L1_CACHE_BYTES) */
	R0 = R0 & R2;

	/* end = ((end - 1) & -L1_CACHE_BYTES) + L1_CACHE_BYTES; */
	R1 += -1;
	R2 = -L1_CACHE_BYTES;
	R1 = R1 & R2;
	R1 += L1_CACHE_BYTES;