aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAlexandre Bounine <alexandre.bounine@idt.com>2012-03-08 15:35:13 -0500
committerVinod Koul <vinod.koul@linux.intel.com>2012-03-21 09:50:23 -0400
commit185ecb5f4fd43911c35956d4cc7d94a1da30417f (patch)
treeebbdb7f15157d19d8af892cd7948d93947d09ec2 /include/linux
parent16052827d98fbc13c31ebad560af4bd53e2b4dd5 (diff)
dmaengine: add context parameter to prep_slave_sg and prep_dma_cyclic
Add context parameter to device_prep_slave_sg() and device_prep_dma_cyclic() interfaces to allow passing client/target specific information associated with the data transfer. Modify all affected DMA engine drivers. Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/dmaengine.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 03d68b7e5705..b3b5b38776f0 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -582,10 +582,11 @@ struct dma_device {
582 struct dma_async_tx_descriptor *(*device_prep_slave_sg)( 582 struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
583 struct dma_chan *chan, struct scatterlist *sgl, 583 struct dma_chan *chan, struct scatterlist *sgl,
584 unsigned int sg_len, enum dma_transfer_direction direction, 584 unsigned int sg_len, enum dma_transfer_direction direction,
585 unsigned long flags); 585 unsigned long flags, void *context);
586 struct dma_async_tx_descriptor *(*device_prep_dma_cyclic)( 586 struct dma_async_tx_descriptor *(*device_prep_dma_cyclic)(
587 struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len, 587 struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
588 size_t period_len, enum dma_transfer_direction direction); 588 size_t period_len, enum dma_transfer_direction direction,
589 void *context);
589 struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)( 590 struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
590 struct dma_chan *chan, struct dma_interleaved_template *xt, 591 struct dma_chan *chan, struct dma_interleaved_template *xt,
591 unsigned long flags); 592 unsigned long flags);
@@ -619,7 +620,8 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
619 struct scatterlist sg; 620 struct scatterlist sg;
620 sg_init_one(&sg, buf, len); 621 sg_init_one(&sg, buf, len);
621 622
622 return chan->device->device_prep_slave_sg(chan, &sg, 1, dir, flags); 623 return chan->device->device_prep_slave_sg(chan, &sg, 1,
624 dir, flags, NULL);
623} 625}
624 626
625static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg( 627static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
@@ -627,7 +629,7 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
627 enum dma_transfer_direction dir, unsigned long flags) 629 enum dma_transfer_direction dir, unsigned long flags)
628{ 630{
629 return chan->device->device_prep_slave_sg(chan, sgl, sg_len, 631 return chan->device->device_prep_slave_sg(chan, sgl, sg_len,
630 dir, flags); 632 dir, flags, NULL);
631} 633}
632 634
633static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_cyclic( 635static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_cyclic(
@@ -635,7 +637,7 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_cyclic(
635 size_t period_len, enum dma_transfer_direction dir) 637 size_t period_len, enum dma_transfer_direction dir)
636{ 638{
637 return chan->device->device_prep_dma_cyclic(chan, buf_addr, buf_len, 639 return chan->device->device_prep_dma_cyclic(chan, buf_addr, buf_len,
638 period_len, dir); 640 period_len, dir, NULL);
639} 641}
640 642
641static inline int dmaengine_terminate_all(struct dma_chan *chan) 643static inline int dmaengine_terminate_all(struct dma_chan *chan)