summaryrefslogtreecommitdiffstats
path: root/drivers/dma/edma.c
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2015-12-14 21:47:41 +0100
committerVinod Koul <vinod.koul@intel.com>2015-12-18 06:47:26 +0100
commit23e6723c060faf5a0fc8d7bfbec440d29943fa99 (patch)
tree4dce1854991d10566eeb136f5d4dec29db9c626b /drivers/dma/edma.c
parentdmaengine: core: Introduce new, universal API to request a channel (diff)
downloadlinux-23e6723c060faf5a0fc8d7bfbec440d29943fa99.tar.xz
linux-23e6723c060faf5a0fc8d7bfbec440d29943fa99.zip
dmaengine: edma: Add support for DMA filter mapping to slave devices
Add support for providing device to filter_fn mapping so client drivers can switch to use the dma_request_chan() API. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/edma.c')
-rw-r--r--drivers/dma/edma.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index 6b03e4e84e6b..c7a011f4b860 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -2297,6 +2297,10 @@ static int edma_probe(struct platform_device *pdev)
edma_set_chmap(&ecc->slave_chans[i], ecc->dummy_slot);
}
+ ecc->dma_slave.filter.map = info->slave_map;
+ ecc->dma_slave.filter.mapcnt = info->slavecnt;
+ ecc->dma_slave.filter.fn = edma_filter_fn;
+
ret = dma_async_device_register(&ecc->dma_slave);
if (ret) {
dev_err(dev, "slave ddev registration failed (%d)\n", ret);