diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-06 14:16:11 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-06 14:16:11 -0500 |
| commit | 3d4d4582e5b3f67a68f2cf32fd5b70d8d80f119d (patch) | |
| tree | 18d270847537d1a9d1a396d03e585654130630db /include/linux/dmaengine.h | |
| parent | 8f1bfa4c5c093e97154be4ec969bdf7190aeff6a (diff) | |
| parent | 47437b2c9a64315efeb3d84e97ffefd6c3c67ef1 (diff) | |
Merge branch 'async-tx-for-linus' of git://lost.foo-projects.org/~dwillia2/git/iop into fix
* 'async-tx-for-linus' of git://lost.foo-projects.org/~dwillia2/git/iop:
async_tx: allow architecture specific async_tx_find_channel implementations
async_tx: replace 'int_en' with operation preparation flags
async_tx: kill tx_set_src and tx_set_dest methods
async_tx: kill ASYNC_TX_ASSUME_COHERENT
iop-adma: use LIST_HEAD instead of LIST_HEAD_INIT
async_tx: use LIST_HEAD instead of LIST_HEAD_INIT
async_tx: fix compile breakage, mark do_async_xor __always_inline
Diffstat (limited to 'include/linux/dmaengine.h')
| -rw-r--r-- | include/linux/dmaengine.h | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 5c84bf897593..acbb364674ff 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -95,6 +95,15 @@ enum dma_transaction_type { | |||
| 95 | #define DMA_TX_TYPE_END (DMA_INTERRUPT + 1) | 95 | #define DMA_TX_TYPE_END (DMA_INTERRUPT + 1) |
| 96 | 96 | ||
| 97 | /** | 97 | /** |
| 98 | * enum dma_prep_flags - DMA flags to augment operation preparation | ||
| 99 | * @DMA_PREP_INTERRUPT - trigger an interrupt (callback) upon completion of | ||
| 100 | * this transaction | ||
| 101 | */ | ||
| 102 | enum dma_prep_flags { | ||
| 103 | DMA_PREP_INTERRUPT = (1 << 0), | ||
| 104 | }; | ||
| 105 | |||
| 106 | /** | ||
| 98 | * dma_cap_mask_t - capabilities bitmap modeled after cpumask_t. | 107 | * dma_cap_mask_t - capabilities bitmap modeled after cpumask_t. |
| 99 | * See linux/cpumask.h | 108 | * See linux/cpumask.h |
| 100 | */ | 109 | */ |
| @@ -209,8 +218,6 @@ typedef void (*dma_async_tx_callback)(void *dma_async_param); | |||
| 209 | * descriptors | 218 | * descriptors |
| 210 | * @chan: target channel for this operation | 219 | * @chan: target channel for this operation |
| 211 | * @tx_submit: set the prepared descriptor(s) to be executed by the engine | 220 | * @tx_submit: set the prepared descriptor(s) to be executed by the engine |
| 212 | * @tx_set_dest: set a destination address in a hardware descriptor | ||
| 213 | * @tx_set_src: set a source address in a hardware descriptor | ||
| 214 | * @callback: routine to call after this operation is complete | 221 | * @callback: routine to call after this operation is complete |
| 215 | * @callback_param: general parameter to pass to the callback routine | 222 | * @callback_param: general parameter to pass to the callback routine |
| 216 | * ---async_tx api specific fields--- | 223 | * ---async_tx api specific fields--- |
| @@ -227,10 +234,6 @@ struct dma_async_tx_descriptor { | |||
| 227 | struct list_head tx_list; | 234 | struct list_head tx_list; |
| 228 | struct dma_chan *chan; | 235 | struct dma_chan *chan; |
| 229 | dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *tx); | 236 | dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *tx); |
| 230 | void (*tx_set_dest)(dma_addr_t addr, | ||
| 231 | struct dma_async_tx_descriptor *tx, int index); | ||
| 232 | void (*tx_set_src)(dma_addr_t addr, | ||
| 233 | struct dma_async_tx_descriptor *tx, int index); | ||
| 234 | dma_async_tx_callback callback; | 237 | dma_async_tx_callback callback; |
| 235 | void *callback_param; | 238 | void *callback_param; |
| 236 | struct list_head depend_list; | 239 | struct list_head depend_list; |
| @@ -279,15 +282,17 @@ struct dma_device { | |||
| 279 | void (*device_free_chan_resources)(struct dma_chan *chan); | 282 | void (*device_free_chan_resources)(struct dma_chan *chan); |
| 280 | 283 | ||
| 281 | struct dma_async_tx_descriptor *(*device_prep_dma_memcpy)( | 284 | struct dma_async_tx_descriptor *(*device_prep_dma_memcpy)( |
| 282 | struct dma_chan *chan, size_t len, int int_en); | 285 | struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, |
| 286 | size_t len, unsigned long flags); | ||
| 283 | struct dma_async_tx_descriptor *(*device_prep_dma_xor)( | 287 | struct dma_async_tx_descriptor *(*device_prep_dma_xor)( |
| 284 | struct dma_chan *chan, unsigned int src_cnt, size_t len, | 288 | struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src, |
| 285 | int int_en); | 289 | unsigned int src_cnt, size_t len, unsigned long flags); |
| 286 | struct dma_async_tx_descriptor *(*device_prep_dma_zero_sum)( | 290 | struct dma_async_tx_descriptor *(*device_prep_dma_zero_sum)( |
| 287 | struct dma_chan *chan, unsigned int src_cnt, size_t len, | 291 | struct dma_chan *chan, dma_addr_t *src, unsigned int src_cnt, |
| 288 | u32 *result, int int_en); | 292 | size_t len, u32 *result, unsigned long flags); |
| 289 | struct dma_async_tx_descriptor *(*device_prep_dma_memset)( | 293 | struct dma_async_tx_descriptor *(*device_prep_dma_memset)( |
| 290 | struct dma_chan *chan, int value, size_t len, int int_en); | 294 | struct dma_chan *chan, dma_addr_t dest, int value, size_t len, |
| 295 | unsigned long flags); | ||
| 291 | struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)( | 296 | struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)( |
| 292 | struct dma_chan *chan); | 297 | struct dma_chan *chan); |
| 293 | 298 | ||
