aboutsummaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorMartin Fuzzey <mfuzzey@gmail.com>2009-03-26 22:21:16 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2009-05-05 09:36:22 +0200
commitde0096d80980e26fab16ac3eff57f47fadad92cb (patch)
treef74178fc629402e98db36acfd8985226eb553c66 /arch/arm
parentb4348f32dae3cb6eb4bc21c7ed8f76c0b11e9d6a (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.c5
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