[ARM] dma: fix dmabounce dma_sync_xxx() implementations
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 25 Sep 2008 21:16:22 +0000 (22:16 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 29 Sep 2008 09:40:22 +0000 (10:40 +0100)
commit125ab12acf64ff86b55d20e14db20becd917b7c4
treece39f81e6a3a409314735ce0cca1e366ea8fd94e
parent8c8a0ec57ee285ff407e9a64b3a5a37eaf800ad8
[ARM] dma: fix dmabounce dma_sync_xxx() implementations

The dmabounce dma_sync_xxx() implementation have been broken for
quite some time; they all copy data between the DMA buffer and
the CPU visible buffer no irrespective of the change of ownership.
(IOW, a DMA_FROM_DEVICE mapping copies data from the DMA buffer
to the CPU buffer during a call to dma_sync_single_for_device().)

Fix it by getting rid of sync_single(), moving the contents into
the recently created dmabounce_sync_for_xxx() functions and adjusting
appropriately.

This also makes it possible to properly support the DMA range sync
functions.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/common/dmabounce.c
arch/arm/include/asm/dma-mapping.h