blob: f16c73a718e7dc7bbce684fdc76676c5016a2b8a [file] [log] [blame]
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