diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2010-02-18 16:30:02 +0000 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-03-02 11:12:03 +0900 |
commit | c014906a870ce70e009def0c9d170ccabeb0be63 (patch) | |
tree | b1cfb6520ed0bcdfb0f1b32282b94658a989b04f /arch/sh | |
parent | c8e3149ba7de24dfd4c37bb0df23c878cdecd8d4 (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.h | 20 |
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 |