[PATCH 2/8] ARM: Implement read/write for ownership in theARMv6 DMA cache ops
Catalin Marinas
catalin.marinas at arm.com
Mon May 17 06:00:32 EDT 2010
On Mon, 2010-05-17 at 10:34 +0300, Ronen Shitrit wrote:
> After some more thinking, I think I found the problem...
>
> DMA for receive should operate as follows:
> 1) CPU will map (invalidate) the buffers for the DMA
> 2) DMA will place the buffers and ack the CPU
> 3) The CPU will call unmap which will invalidate the buffers again
(3) doesn't happen with my patch - the unmap function is now a no-op
since the invalidate operation is destructive.
As I said in a previous e-mail, it's the sync operation that does an
invalidate and this would affect the data in the buffer. Hence the patch
to make the invalidate operation non-destructive (as long as your CPU
doesn't do speculative loads into the D-cache or they can be disabled).
--
Catalin
More information about the linux-arm-kernel
mailing list