summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorQiao Zhou <zhouqiao@marvell.com>2013-06-15 12:51:48 +0800
committerVinod Koul <vinod.koul@intel.com>2013-07-05 11:40:48 +0530
commit8e3c518fba4f2ddd192171cbd7b23ec26900bf6b (patch)
treeab00a783582820a11a5b2a7d2d73bb00d158ae4a /drivers
parentd7cabeed830b7eb3958cbc084a85649126cd670f (diff)
downloadlinux-8e3c518fba4f2ddd192171cbd7b23ec26900bf6b.tar.gz
linux-8e3c518fba4f2ddd192171cbd7b23ec26900bf6b.tar.xz
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>
Diffstat (limited to 'drivers')
-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)
{
writel(readl(tdmac->reg_base + TDCR) & ~TDCR_CHANEN,
tdmac->reg_base + TDCR);
+
+ /* disable irq */
+ writel(0, tdmac->reg_base + TDIMR);
+
tdmac->status = DMA_SUCCESS;
}