All of lore.kernel.org
 help / color / mirror / Atom feed
* Two questions about streaming DMA flushing
@ 2012-10-31  2:15 Li Haifeng
  2012-10-31  7:50 ` Catalin Marinas
  2012-10-31  9:08 ` Russell King - ARM Linux
  0 siblings, 2 replies; 7+ messages in thread
From: Li Haifeng @ 2012-10-31  2:15 UTC (permalink / raw)
  To: linux-arm-kernel

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>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-10-31 10:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-31  2:15 Two questions about streaming DMA flushing Li Haifeng
2012-10-31  7:50 ` Catalin Marinas
2012-10-31  9:40   ` Li Haifeng
2012-10-31 10:50     ` Catalin Marinas
2012-10-31  9:08 ` Russell King - ARM Linux
2012-10-31  9:42   ` Li Haifeng
2012-10-31 10:09   ` Rajanikanth H.V

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.