dmaengine: imx-sdma: advertise correct residue granularity
authorLucas Stach <l.stach@pengutronix.de>
Wed, 8 Mar 2017 09:13:09 +0000 (10:13 +0100)
committerVinod Koul <vinod.koul@intel.com>
Tue, 14 Mar 2017 04:31:44 +0000 (10:01 +0530)
The SDMA hardware/driver does not actually report the transfer residue at
burst size granularity, but in fact is only able to report residue after
each finished segment.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/imx-sdma.c

index d1651a5..46359c4 100644 (file)
@@ -1832,7 +1832,7 @@ static int sdma_probe(struct platform_device *pdev)
        sdma->dma_device.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
        sdma->dma_device.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
        sdma->dma_device.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
-       sdma->dma_device.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
+       sdma->dma_device.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
        sdma->dma_device.device_issue_pending = sdma_issue_pending;
        sdma->dma_device.dev->dma_parms = &sdma->dma_parms;
        dma_set_max_seg_size(sdma->dma_device.dev, 65535);