| From 1259f8b41cee5c445fd905087ec351f3e3f6524d Mon Sep 17 00:00:00 2001 |
| From: Vinod Koul <vinod.koul@intel.com> |
| Date: Mon, 25 Jul 2011 19:57:52 +0530 |
| Subject: 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> |
| (cherry picked from commit 90b44f8ffdf6c66d190ee71b330009bf7f11a208) |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| include/linux/dmaengine.h | 11 +++++++++++ |
| 1 file changed, 11 insertions(+) |
| |
| diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h |
| index 8bf1032..2ae9e01 100644 |
| --- a/include/linux/dmaengine.h |
| +++ b/include/linux/dmaengine.h |
| @@ -24,6 +24,7 @@ |
| #include <linux/device.h> |
| #include <linux/uio.h> |
| #include <linux/dma-mapping.h> |
| +#include <linux/scatterlist.h> |
| |
| struct scatterlist; |
| |
| @@ -519,6 +520,16 @@ static inline int dmaengine_slave_config(struct dma_chan *chan, |
| (unsigned long)config); |
| } |
| |
| +static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single( |
| + struct dma_chan *chan, void *buf, size_t len, |
| + enum dma_data_direction dir, unsigned long flags) |
| +{ |
| + struct scatterlist sg; |
| + sg_init_one(&sg, buf, len); |
| + |
| + return chan->device->device_prep_slave_sg(chan, &sg, 1, dir, flags); |
| +} |
| + |
| static inline int dmaengine_terminate_all(struct dma_chan *chan) |
| { |
| return dmaengine_device_control(chan, DMA_TERMINATE_ALL, 0); |
| -- |
| 1.7.10.2.565.gbd578b5 |
| |