diff options
author | Jun Nie <[email protected]> | 2015-08-05 13:23:27 +0800 |
---|---|---|
committer | Vinod Koul <[email protected]> | 2015-08-05 11:03:23 +0530 |
commit | ed9c87b33147e5b007e66a282b9c8c307fbf8bf9 (patch) | |
tree | 2f29cdbd77c858afe35126e39a203ba29e6c6f23 | |
parent | 2092539b7735906deda8b1fca4b31b4c4eb65e0d (diff) |
dmaengine: zxdma: Fix force stop bug
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 <[email protected]>
Signed-off-by: Vinod Koul <[email protected]>
-rw-r--r-- | drivers/dma/zx296702_dma.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/dma/zx296702_dma.c b/drivers/dma/zx296702_dma.c index 103691c61613..39915a6b7986 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; |