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>
This commit is contained in:
committed by
Sascha Hauer
parent
b4348f32da
commit
de0096d809
@@ -737,10 +737,7 @@ void imx_dma_free(int channel)
|
|||||||
|
|
||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
/* Disable interrupts */
|
/* Disable interrupts */
|
||||||
__raw_writel(__raw_readl(DMA_BASE + DMA_DIMR) | (1 << channel),
|
imx_dma_disable(channel);
|
||||||
DMA_BASE + DMA_DIMR);
|
|
||||||
__raw_writel(__raw_readl(DMA_BASE + DMA_CCR(channel)) & ~CCR_CEN,
|
|
||||||
DMA_BASE + DMA_CCR(channel));
|
|
||||||
imxdma->name = NULL;
|
imxdma->name = NULL;
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_MX2
|
#ifdef CONFIG_ARCH_MX2
|
||||||
|
Reference in New Issue
Block a user