aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dmaengine.h
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2011-07-25 10:27:52 -0400
committerVinod Koul <vinod.koul@intel.com>2011-08-08 07:18:14 -0400
commit90b44f8ffdf6c66d190ee71b330009bf7f11a208 (patch)
tree2e1b068b048118664793573d2a21784b5326274e /include/linux/dmaengine.h
parent322a8b034003c0d46d39af85bf24fee27b902f48 (diff)
dmaengine: add helper function for slave_single
For clients which require a single slave transfer and dont want to be bothered about the scatterlist api, this helper gives simple API for this transfer and creates single scatterlist for DMA API Idea from Russell King Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'include/linux/dmaengine.h')
-rw-r--r--include/linux/dmaengine.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 8fbf40e0713c..0d738c95fe4e 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -24,6 +24,7 @@
24#include <linux/device.h> 24#include <linux/device.h>
25#include <linux/uio.h> 25#include <linux/uio.h>
26#include <linux/dma-direction.h> 26#include <linux/dma-direction.h>
27#include <linux/scatterlist.h>
27 28
28struct scatterlist; 29struct scatterlist;
29 30
@@ -519,6 +520,16 @@ static inline int dmaengine_slave_config(struct dma_chan *chan,
519 (unsigned long)config); 520 (unsigned long)config);
520} 521}
521 522
523static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
524 struct dma_chan *chan, void *buf, size_t len,
525 enum dma_data_direction dir, unsigned long flags)
526{
527 struct scatterlist sg;
528 sg_init_one(&sg, buf, len);
529
530 return chan->device->device_prep_slave_sg(chan, &sg, 1, dir, flags);
531}
532
522static inline int dmaengine_terminate_all(struct dma_chan *chan) 533static inline int dmaengine_terminate_all(struct dma_chan *chan)
523{ 534{
524 return dmaengine_device_control(chan, DMA_TERMINATE_ALL, 0); 535 return dmaengine_device_control(chan, DMA_TERMINATE_ALL, 0);