From: Martin Fuzzey Date: Thu, 26 Mar 2009 21:21:16 +0000 (+0100) Subject: mxc : Clean up properly when imx_dma_free() used without imx_dma_disable() X-Git-Tag: firefly_0821_release~13934^2~29^2~64 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=de0096d80980e26fab16ac3eff57f47fadad92cb;p=firefly-linux-kernel-4.4.55.git mxc : Clean up properly when imx_dma_free() used without imx_dma_disable() The sequence imx_dma_request() imx_dma_enable() imx_dma_free() left the dma channel in_use mode and did not release the timer. Signed-off-by: Martin Fuzzey Signed-off-by: Sascha Hauer --- diff --git a/arch/arm/plat-mxc/dma-mx1-mx2.c b/arch/arm/plat-mxc/dma-mx1-mx2.c index e364a5ed10f1..a9126ed7935a 100644 --- a/arch/arm/plat-mxc/dma-mx1-mx2.c +++ b/arch/arm/plat-mxc/dma-mx1-mx2.c @@ -737,10 +737,7 @@ void imx_dma_free(int channel) local_irq_save(flags); /* Disable interrupts */ - __raw_writel(__raw_readl(DMA_BASE + DMA_DIMR) | (1 << channel), - DMA_BASE + DMA_DIMR); - __raw_writel(__raw_readl(DMA_BASE + DMA_CCR(channel)) & ~CCR_CEN, - DMA_BASE + DMA_CCR(channel)); + imx_dma_disable(channel); imxdma->name = NULL; #ifdef CONFIG_ARCH_MX2