[PATCH 1/4] DMA: PL330: Add xlate function
Padmavathi Venna
padma.v at samsung.com
Fri Jan 18 22:33:41 EST 2013
Add xlate to translate the device-tree binding information into
the appropriate format. The filter function requires the dma
controller device node and dma channel number as filter_params.
Signed-off-by: Padmavathi Venna <padma.v at samsung.com>
---
drivers/dma/pl330.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 80680ee..b0a9080 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -25,6 +25,7 @@
#include <linux/amba/pl330.h>
#include <linux/scatterlist.h>
#include <linux/of.h>
+#include <linux/of_dma.h>
#include "dmaengine.h"
#define PL330_MAX_CHAN 8
@@ -2352,6 +2353,22 @@ static void dma_pl330_rqcb(void *token, enum pl330_op_err err)
tasklet_schedule(&pch->task);
}
+struct dma_chan *of_dma_pl330_xlate(struct of_phandle_args *dma_spec,
+ struct of_dma *ofdma)
+{
+ int count = dma_spec->args_count;
+ struct of_dma_filter_info *info = ofdma->of_dma_data;
+
+ if (!info || !info->filter_fn)
+ return NULL;
+
+ if (count != 1)
+ return NULL;
+
+ return dma_request_channel(info->dma_cap, info->filter_fn, dma_spec);
+}
+EXPORT_SYMBOL_GPL(of_dma_pl330_xlate);
+
bool pl330_filter(struct dma_chan *chan, void *param)
{
u8 *peri_id;
--
1.7.4.4
More information about the devicetree-discuss
mailing list