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 <jun.nie@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
Jun Nie 2015-08-05 13:23:27 +08:00 committed by Vinod Koul
parent 2092539b77
commit ed9c87b331

View File

@ -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 = readl_relaxed(phy->base + REG_ZX_CTRL);
val &= ~ZX_CH_ENABLE; val &= ~ZX_CH_ENABLE;
val |= ZX_FORCE_CLOSE;
writel_relaxed(val, phy->base + REG_ZX_CTRL); writel_relaxed(val, phy->base + REG_ZX_CTRL);
val = 0x1 << phy->idx; val = 0x1 << phy->idx;