Two questions about streaming DMA flushing
Li Haifeng
omycle at gmail.com
Tue Oct 30 22:15:04 EDT 2012
Sorry to disturb you.
I have two questions for streaming DMA flushing @ arch/arm/mm/cache-v7.S.
1.
332 ENTRY(v7_dma_map_area)
333 add r1, r1, r0
334 teq r2, #DMA_FROM_DEVICE
335 beq v7_dma_inv_range
336 b v7_dma_clean_range
337 ENDPROC(v7_dma_map_area)
The function of v7_dma_map_area will invalidate corresponding cache line
firstly and then clean the cache for “DMA_FROM_DEVICE”. I am confused the
sequence of the operations. IMO, the invalidate should be followed by the
clean action. Is it right?
2.
345 ENTRY(v7_dma_unmap_area)
346 add r1, r1, r0
347 teq r2, #DMA_TO_DEVICE
348 bne v7_dma_inv_range
349 mov pc, lr
350 ENDPROC(v7_dma_unmap_area)
v7_dma_unmap_area, will invalidate corresponding cache line for
“DMA_FROM_DEVICE”. But, at v7_dma_map_area, the invalidate has been done.
Why do this again?
Regards,
Haifeng Li
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121031/fbdfd887/attachment-0001.html>
More information about the linux-arm-kernel
mailing list