diff options
author | Martin Fuzzey <mfuzzey@gmail.com> | 2009-03-26 22:21:16 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-05-05 09:36:22 +0200 |
commit | de0096d80980e26fab16ac3eff57f47fadad92cb (patch) | |
tree | f74178fc629402e98db36acfd8985226eb553c66 /arch/arm | |
parent | b4348f32dae3cb6eb4bc21c7ed8f76c0b11e9d6a (diff) |
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>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/plat-mxc/dma-mx1-mx2.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/arm/plat-mxc/dma-mx1-mx2.c b/arch/arm/plat-mxc/dma-mx1-mx2.c index e364a5ed10f..a9126ed7935 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 |