summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLucas Stach <dev@lynxeye.de>2015-03-05 22:49:58 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-03-06 07:51:51 +0100
commita0c4e2203fdde7b2636eab3f1406ea66f0e0da19 (patch)
treef7117216c02aa5cc0627d9377b4bdebad66166f6 /include
parent682b7d849a56d500067ae93a4fdd29a32135d874 (diff)
downloadbarebox-a0c4e2203fdde7b2636eab3f1406ea66f0e0da19.tar.gz
barebox-a0c4e2203fdde7b2636eab3f1406ea66f0e0da19.tar.xz
dma: add streaming DMA ops
This will allow us to implement cache maintenance in a platform agnostic way. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r--include/dma-dir.h6
-rw-r--r--include/dma.h11
2 files changed, 17 insertions, 0 deletions
diff --git a/include/dma-dir.h b/include/dma-dir.h
new file mode 100644
index 0000000000..ba107f10ce
--- /dev/null
+++ b/include/dma-dir.h
@@ -0,0 +1,6 @@
+enum dma_data_direction {
+ DMA_BIDIRECTIONAL = 0,
+ DMA_TO_DEVICE = 1,
+ DMA_FROM_DEVICE = 2,
+ DMA_NONE = 3,
+};
diff --git a/include/dma.h b/include/dma.h
index 899f831faa..fb75eec678 100644
--- a/include/dma.h
+++ b/include/dma.h
@@ -11,6 +11,7 @@
#include <malloc.h>
#include <xfuncs.h>
+#include <dma-dir.h>
#include <asm/dma.h>
#ifndef dma_alloc
@@ -27,4 +28,14 @@ static inline void dma_free(void *mem)
}
#endif
+/* streaming DMA - implement the below calls to support HAS_DMA */
+void dma_sync_single_for_cpu(unsigned long address, size_t size,
+ enum dma_data_direction dir);
+
+void dma_sync_single_for_device(unsigned long address, size_t size,
+ enum dma_data_direction dir);
+
+void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle);
+void dma_free_coherent(void *mem, dma_addr_t dma_handle, size_t size);
+
#endif /* __DMA_H */