diff options
author | Dan Williams <dan.j.williams@intel.com> | 2008-07-04 03:13:40 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2008-07-08 14:59:12 -0400 |
commit | e1d181efb14a93cf263d6c588a5395518edf3294 (patch) | |
tree | 1792d1faa7e344401789bbcfad8102d0d93036e2 /include | |
parent | 848c536a37b8db4e461f14ca15fe29850151c822 (diff) |
dmaengine: add DMA_COMPL_SKIP_{SRC,DEST}_UNMAP flags to control dma unmap
In some cases client code may need the dma-driver to skip the unmap of source
and/or destination buffers. Setting these flags indicates to the driver to
skip the unmap step. In this regard async_xor is currently broken in that it
allows the destination buffer to be unmapped while an operation is still in
progress, i.e. when the number of sources exceeds the hardware channel's
maximum (fixed in a subsequent patch).
Acked-by: Saeed Bishara <saeed@marvell.com>
Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/dmaengine.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index ba89b0f5056e..b058d6360383 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
@@ -102,10 +102,14 @@ enum dma_transaction_type { | |||
102 | * @DMA_CTRL_ACK - the descriptor cannot be reused until the client | 102 | * @DMA_CTRL_ACK - the descriptor cannot be reused until the client |
103 | * acknowledges receipt, i.e. has has a chance to establish any | 103 | * acknowledges receipt, i.e. has has a chance to establish any |
104 | * dependency chains | 104 | * dependency chains |
105 | * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s) | ||
106 | * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s) | ||
105 | */ | 107 | */ |
106 | enum dma_ctrl_flags { | 108 | enum dma_ctrl_flags { |
107 | DMA_PREP_INTERRUPT = (1 << 0), | 109 | DMA_PREP_INTERRUPT = (1 << 0), |
108 | DMA_CTRL_ACK = (1 << 1), | 110 | DMA_CTRL_ACK = (1 << 1), |
111 | DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2), | ||
112 | DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3), | ||
109 | }; | 113 | }; |
110 | 114 | ||
111 | /** | 115 | /** |