diff mbox

[v2,2/2] dmaengine: zxdma: Fix force stop bug

Message ID 1438752207-12244-2-git-send-email-jun.nie@linaro.org (mailing list archive)
State Accepted
Headers show

Commit Message

Jun Nie Aug. 5, 2015, 5:23 a.m. UTC
DMA will not stop when clearing enable bit till all transaction
is done. The bug is exposed in audio playback because ring DMA
chain never stop. Force hardware to stop with setting FORCE bit.

Signed-off-by: Jun Nie <jun.nie@linaro.org>
---
 drivers/dma/zx296702_dma.c | 1 +
 1 file changed, 1 insertion(+)
diff mbox

Patch

diff --git a/drivers/dma/zx296702_dma.c b/drivers/dma/zx296702_dma.c
index 103691c6..39915a6 100644
--- a/drivers/dma/zx296702_dma.c
+++ b/drivers/dma/zx296702_dma.c
@@ -144,6 +144,7 @@  static void zx_dma_terminate_chan(struct zx_dma_phy *phy, struct zx_dma_dev *d)
 
 	val = readl_relaxed(phy->base + REG_ZX_CTRL);
 	val &= ~ZX_CH_ENABLE;
+	val |= ZX_FORCE_CLOSE;
 	writel_relaxed(val, phy->base + REG_ZX_CTRL);
 
 	val = 0x1 << phy->idx;