m68k: add support for DMA_BIDIRECTIONAL in dma support functions
authorGreg Ungerer <gerg@uclinux.org>
Tue, 10 Jul 2012 03:50:58 +0000 (13:50 +1000)
committerGreg Ungerer <gerg@uclinux.org>
Tue, 17 Jul 2012 05:49:40 +0000 (15:49 +1000)
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>
arch/m68k/kernel/dma.c

index 27b5821f9712a77b790356242537caf629eb2a1b..e546a5534dd48581c8a1e1a9fc7cf9cc9edb5e21 100644 (file)
@@ -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;