aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQiao Zhou <zhouqiao@marvell.com>2013-06-15 00:51:48 -0400
committerVinod Koul <vinod.koul@intel.com>2013-07-05 02:10:48 -0400
commit8e3c518fba4f2ddd192171cbd7b23ec26900bf6b (patch)
treeab00a783582820a11a5b2a7d2d73bb00d158ae4a
parentd7cabeed830b7eb3958cbc084a85649126cd670f (diff)
dma: mmp_tdma: disable irq when disabling dma channel
mask dma irq when disabling dma channel, so that interrupt status will not be set and interrupt won't come again. Signed-off-by: Qiao Zhou <zhouqiao@marvell.com> Acked-by: Zhangfei Gao <zhangfei.gao@gmail.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r--drivers/dma/mmp_tdma.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c
index 43d5a6c33297..9b9366537d73 100644
--- a/drivers/dma/mmp_tdma.c
+++ b/drivers/dma/mmp_tdma.c
@@ -154,6 +154,10 @@ static void mmp_tdma_disable_chan(struct mmp_tdma_chan *tdmac)
154{ 154{
155 writel(readl(tdmac->reg_base + TDCR) & ~TDCR_CHANEN, 155 writel(readl(tdmac->reg_base + TDCR) & ~TDCR_CHANEN,
156 tdmac->reg_base + TDCR); 156 tdmac->reg_base + TDCR);
157
158 /* disable irq */
159 writel(0, tdmac->reg_base + TDIMR);
160
157 tdmac->status = DMA_SUCCESS; 161 tdmac->status = DMA_SUCCESS;
158} 162}
159 163