dw_dmac: utilize slave_id to pass request line
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 3 Sep 2012 10:46:19 +0000 (13:46 +0300)
committerVinod Koul <vinod.koul@linux.intel.com>
Fri, 14 Sep 2012 02:59:46 +0000 (08:29 +0530)
There is slave_id field in the generic slave config structure that is dedicated
for the uniq slave number. In our case we have the request lines wired to the
certain hardware. Therefore the number of the request line is uniq and could be
used as slave_id. It allows us in some cases to drop out the usage of the
custom slave config structure.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
drivers/dma/dw_dmac.c

index 4f4ff1337cacd91c53660ca0a07b6a078a31d455..efbd16a296f143da184df7b4c3b3930a73137571 100644 (file)
@@ -177,6 +177,11 @@ static void dwc_initialize(struct dw_dma_chan *dwc)
 
                cfghi = dws->cfg_hi;
                cfglo |= dws->cfg_lo & ~DWC_CFGL_CH_PRIOR_MASK;
+       } else {
+               if (dwc->dma_sconfig.direction == DMA_MEM_TO_DEV)
+                       cfghi = DWC_CFGH_DST_PER(dwc->dma_sconfig.slave_id);
+               else if (dwc->dma_sconfig.direction == DMA_DEV_TO_MEM)
+                       cfghi = DWC_CFGH_SRC_PER(dwc->dma_sconfig.slave_id);
        }
 
        channel_writel(dwc, CFG_LO, cfglo);