Browse Source

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 <mfuzzey@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Martin Fuzzey 16 years ago
parent
commit
de0096d809
1 changed files with 1 additions and 4 deletions
  1. 1 4
      arch/arm/plat-mxc/dma-mx1-mx2.c

+ 1 - 4
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