diff options
Diffstat (limited to 'arch/arm/plat-mxc/dma-mx1-mx2.c')
-rw-r--r-- | arch/arm/plat-mxc/dma-mx1-mx2.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/plat-mxc/dma-mx1-mx2.c b/arch/arm/plat-mxc/dma-mx1-mx2.c index 77646436c00e..9c1b3f9c4f4d 100644 --- a/arch/arm/plat-mxc/dma-mx1-mx2.c +++ b/arch/arm/plat-mxc/dma-mx1-mx2.c | |||
@@ -156,7 +156,8 @@ static inline int imx_dma_sg_next(int channel, struct scatterlist *sg) | |||
156 | } | 156 | } |
157 | 157 | ||
158 | now = min(imxdma->resbytes, sg->length); | 158 | now = min(imxdma->resbytes, sg->length); |
159 | imxdma->resbytes -= now; | 159 | if (imxdma->resbytes != IMX_DMA_LENGTH_LOOP) |
160 | imxdma->resbytes -= now; | ||
160 | 161 | ||
161 | if ((imxdma->dma_mode & DMA_MODE_MASK) == DMA_MODE_READ) | 162 | if ((imxdma->dma_mode & DMA_MODE_MASK) == DMA_MODE_READ) |
162 | __raw_writel(sg->dma_address, DMA_BASE + DMA_DAR(channel)); | 163 | __raw_writel(sg->dma_address, DMA_BASE + DMA_DAR(channel)); |