mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 20:10:23 +09:00
ANDROID: arm64: mm: perform clean & invalidation in __dma_map_area
commitc50f11c619("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:c50f11c619("arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer") Signed-off-by: Charan Teja Kalla <quic_charante@quicinc.com> Signed-off-by: Shiraz Hashim <quic_shashim@quicinc.com> Signed-off-by: Prakash Gupta <quic_guptap@quicinc.com> Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com> (cherry picked from commit 8022d8faf64fbf1efba1f134fedc0eba758cdfd0)
This commit is contained in:
committed by
Gaurav Kohli
parent
d0cdb904f9
commit
149320568d
@@ -230,6 +230,8 @@ SYM_FUNC_END_PI(__dma_flush_area)
|
||||
* - dir - DMA direction
|
||||
*/
|
||||
SYM_FUNC_START_PI(__dma_map_area)
|
||||
cmp w2, #DMA_FROM_DEVICE
|
||||
b.eq __dma_flush_area
|
||||
add x1, x0, x1
|
||||
b __dma_clean_area
|
||||
SYM_FUNC_END_PI(__dma_map_area)
|
||||
|
||||
Reference in New Issue
Block a user