[PATCH 06/13] DMAENGINE: driver for the ARM PL080/PL081 PrimeCells
From: Russell King - ARM Linux <hidden>
Date: 2011-01-03 11:15:20
Also in:
lkml
From: Russell King - ARM Linux <hidden>
Date: 2011-01-03 11:15:20
Also in:
lkml
On Sun, Jan 02, 2011 at 09:33:34PM +0100, Linus Walleij wrote:
As for the in-tree PL08x driver I'd say it's doing pretty well for memcpy() so we could add platform data for that on supported platforms, then for device transfers we need more elaborative work.
It has the issue that it's not unmapping the buffers after the memcpy() operation has completed, so on ARMv6+ we have the possibility for speculative prefetches to corrupt the destination buffer. Neither are a number of the other DMA engine drivers. This is why I'd like to see some common infrastructure in the DMA engine core for saying "this tx descriptor is now complete" so that DMA engine driver authors don't have to even think about whether they should be unmapping buffers. I'd also like to see DMA_COMPL_SKIP_*_UNMAP always set by prep_slave_sg() in tx->flags so we don't have to end up with "is this a slave operation" tests in the completion handler.