Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cbbd7242 authored by Charan Teja Kalla's avatar Charan Teja Kalla Committed by Pavankumar Kondeti
Browse files

ANDROID: arm64: mm: perform clean & invalidation in __dma_map_area



commit c50f11c6196f ("arm64: mm: Don't invalidate FROM_DEVICE buffers at
start of DMA transfer") break assumptions of some device drivers about
invalidation that happens as part of __dma_map_area(DMA_FROM_DEVICE). An
example include drivers using dmabuf API dma_buf_begin_cpu_access() and
dma_buf_end_cpu_access() to achieve buffer invalidation. Fix this breakage
by replacing clean with clean and invalidation in __dma_map_area() for
DMA inbound case.

Bug: 260978220
Change-Id: Id1a2750c2036de693cd52e8f7316f1d820b5a262
Fixes: c50f11c6196f ("arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer")
Signed-off-by: default avatarCharan Teja Kalla <quic_charante@quicinc.com>
Signed-off-by: default avatarShiraz Hashim <quic_shashim@quicinc.com>
Signed-off-by: default avatarPrakash Gupta <quic_guptap@quicinc.com>
Signed-off-by: default avatarPavankumar Kondeti <quic_pkondeti@quicinc.com>
parent 4338018d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -228,6 +228,8 @@ ENDPIPROC(__dma_flush_area)
 *	- dir	- DMA direction
 */
ENTRY(__dma_map_area)
	cmp	w2, #DMA_FROM_DEVICE
	b.eq	__dma_flush_area
	b	__dma_clean_area
ENDPIPROC(__dma_map_area)