On Thu, Mar 24, 2022 at 07:31:58PM +0100, Halil Pasic wrote:
I agree with your analysis. Especially with the latter part (were you state that we don't have a good idiom for that use case).
I believe, a stronger statement is also true: it is fundamentally impossible to accommodate use cases where the device and the cpu need concurrent access to a dma buffer, if the dma buffer isn't in dma coherent memory.
Yes, and that is also clearly stated in the DMA API document. We only have two platforms that do not support DMA coherent memory, one are the oldest PARISC platforms, and the other is coldfire.
The first has drivers carefully written to actually support that, the second only has a single driver using DMA that does manual global cache flushes (while pretending it supports coherent memory).
If the dma buffer is in dma coherent memory, and we don't need swiotlb, then we don't need the dma_sync functionality.
Yes.