dma: sh_dma: not all SH DMAC implementations support MEMCPY
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Wed, 18 Jan 2012 09:14:25 +0000 (10:14 +0100)
committerVinod Koul <vinod.koul@linux.intel.com>
Wed, 1 Feb 2012 16:53:53 +0000 (22:23 +0530)
Add a flag to allow platforms to specify, whether a DMAC instance supports
the MEMCPY operation. To avoid regressions, preserve the current default.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
drivers/dma/shdma.c
include/linux/sh_dma.h

index 54043cd831c8e5b01875e08da6e8870343406134..812fd76e9c18e4b2b210f20125324560a873ddeb 100644 (file)
@@ -1262,7 +1262,8 @@ static int __init sh_dmae_probe(struct platform_device *pdev)
 
        INIT_LIST_HEAD(&shdev->common.channels);
 
-       dma_cap_set(DMA_MEMCPY, shdev->common.cap_mask);
+       if (!pdata->slave_only)
+               dma_cap_set(DMA_MEMCPY, shdev->common.cap_mask);
        if (pdata->slave && pdata->slave_num)
                dma_cap_set(DMA_SLAVE, shdev->common.cap_mask);
 
index 8cd7fe59cf1a6f957c9376f4c5b5333fdf4f817e..425450b980b8a8e60ea532b76702d552c3da6857 100644 (file)
@@ -70,6 +70,7 @@ struct sh_dmae_pdata {
        unsigned int needs_tend_set:1;
        unsigned int no_dmars:1;
        unsigned int chclr_present:1;
+       unsigned int slave_only:1;
 };
 
 /* DMA register */