diff options
author | Greg Ungerer <gerg@uclinux.org> | 2012-07-10 13:50:58 +1000 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2012-07-17 15:49:40 +1000 |
commit | d2661c621525956dfdd1e66e1e4fd94b7e4b6ed5 (patch) | |
tree | 5095f10493de7a3f0bd605b0ca7694a63a2b915e /arch/m68k/kernel | |
parent | f3ff6432dde9c0800754f1f144f6e864ac228214 (diff) | |
download | blackbird-op-linux-d2661c621525956dfdd1e66e1e4fd94b7e4b6ed5.tar.gz blackbird-op-linux-d2661c621525956dfdd1e66e1e4fd94b7e4b6ed5.zip |
m68k: add support for DMA_BIDIRECTIONAL in dma support functions
The dma cache support functions do not currently support the direction flag
DMA_BIDIRECTIONAL. If a driver passes this direction to dma_map_single or
friends you will get console output like this:
dma_sync_single_for_device: unsupported dir 0
For example when using the Intel e100 ethernet driver on a ColdFire platform
with PCI bus. You will get a stream of these messages coming out.
Modify the dma cache support code adding support for DMA_BIDIRECTIONAL. It is
actioned by doing a cache push operation.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68k/kernel')
-rw-r--r-- | arch/m68k/kernel/dma.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/m68k/kernel/dma.c b/arch/m68k/kernel/dma.c index 27b5821f9712..e546a5534dd4 100644 --- a/arch/m68k/kernel/dma.c +++ b/arch/m68k/kernel/dma.c @@ -105,6 +105,7 @@ void dma_sync_single_for_device(struct device *dev, dma_addr_t handle, size_t size, enum dma_data_direction dir) { switch (dir) { + case DMA_BIDIRECTIONAL: case DMA_TO_DEVICE: cache_push(handle, size); break; |