summaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2010-02-18 16:30:02 +0000
committerPaul Mundt <lethal@linux-sh.org>2010-03-02 11:12:03 +0900
commitc014906a870ce70e009def0c9d170ccabeb0be63 (patch)
treeb1cfb6520ed0bcdfb0f1b32282b94658a989b04f /arch/sh
parentc8e3149ba7de24dfd4c37bb0df23c878cdecd8d4 (diff)
dmaengine: shdma: extend .device_terminate_all() to record partial transfer
This patch extends the .device_terminate_all() method of the shdma driver to return number of bytes transfered in the current descriptor. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/include/asm/dmaengine.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/sh/include/asm/dmaengine.h b/arch/sh/include/asm/dmaengine.h
index 9586e4a482b..bf2f30cf0a2 100644
--- a/arch/sh/include/asm/dmaengine.h
+++ b/arch/sh/include/asm/dmaengine.h
@@ -10,6 +10,9 @@
#ifndef ASM_DMAENGINE_H
#define ASM_DMAENGINE_H
+#include <linux/dmaengine.h>
+#include <linux/list.h>
+
#include <asm/dma-register.h>
#define SH_DMAC_MAX_CHANNELS 6
@@ -70,4 +73,21 @@ struct sh_dmae_slave {
struct sh_dmae_slave_config *config; /* Set by the driver */
};
+struct sh_dmae_regs {
+ u32 sar; /* SAR / source address */
+ u32 dar; /* DAR / destination address */
+ u32 tcr; /* TCR / transfer count */
+};
+
+struct sh_desc {
+ struct sh_dmae_regs hw;
+ struct list_head node;
+ struct dma_async_tx_descriptor async_tx;
+ enum dma_data_direction direction;
+ dma_cookie_t cookie;
+ size_t partial;
+ int chunks;
+ int mark;
+};
+
#endif