dmaengine: shdmac: fixup WARNING of slave caps retrieval
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 22 Jan 2015 02:32:51 +0000 (02:32 +0000)
committerVinod Koul <vinod.koul@intel.com>
Mon, 26 Jan 2015 06:37:20 +0000 (22:37 -0800)
ecc19d17868be9c9f8f00ed928791533c420f3e0
(dmaengine: Add a warning for drivers not using the generic slave
caps retrieval) added WARN() for DMA_SLAVE.
Kernel will shows WARNING without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/sh/shdmac.c

index aec8a84784a469d70f5958db4e1126790d21806b..ce4cd6be07cf8df10c11523ac5362df2c40a7d34 100644 (file)
@@ -684,6 +684,10 @@ MODULE_DEVICE_TABLE(of, sh_dmae_of_match);
 
 static int sh_dmae_probe(struct platform_device *pdev)
 {
+       const enum dma_slave_buswidth widths =
+               DMA_SLAVE_BUSWIDTH_1_BYTE   | DMA_SLAVE_BUSWIDTH_2_BYTES |
+               DMA_SLAVE_BUSWIDTH_4_BYTES  | DMA_SLAVE_BUSWIDTH_8_BYTES |
+               DMA_SLAVE_BUSWIDTH_16_BYTES | DMA_SLAVE_BUSWIDTH_32_BYTES;
        const struct sh_dmae_pdata *pdata;
        unsigned long chan_flag[SH_DMAE_MAX_CHANNELS] = {};
        int chan_irq[SH_DMAE_MAX_CHANNELS];
@@ -746,6 +750,11 @@ static int sh_dmae_probe(struct platform_device *pdev)
                        return PTR_ERR(shdev->dmars);
        }
 
+       dma_dev->src_addr_widths = widths;
+       dma_dev->dst_addr_widths = widths;
+       dma_dev->directions = BIT(DMA_MEM_TO_DEV) | BIT(DMA_DEV_TO_MEM);
+       dma_dev->residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;
+
        if (!pdata->slave_only)
                dma_cap_set(DMA_MEMCPY, dma_dev->cap_mask);
        if (pdata->slave && pdata->slave_num)