]> git.karo-electronics.de Git - karo-tx-linux.git/commit
dma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channels
authorLothar Waßmann <LW@KARO-electronics.de>
Thu, 8 Dec 2011 08:15:44 +0000 (09:15 +0100)
committerVinod Koul <vinod.koul@linux.intel.com>
Fri, 23 Dec 2011 15:24:55 +0000 (20:54 +0530)
commit7ad7a345a4f17c08a1bb9bfdbb62f7793d84aa36
tree83839c0af2da4529d5fdec1b9c961b541d572c66
parent6d23ea4b1906f28f5d99ad6aeef7207c48be6bfd
dma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channels

This is how the original Freescale code (unintentionally) worked,
because the code path which would have asserted the CLKGATE bit was
never actually reached in their code.
This fixes the nefarious "DMA timout" bug when multiple DMA channels
(e.g. GPMI NAND and MMC) are used at the same time.
If a better fix for this problem should be found, the clkgate handling
could be reinstated.
See http://lists.infradead.org/pipermail/linux-arm-kernel/2011-September/065228.html

Also reverse the order of mxs_dma_disable_chan() and
mxs_dma_reset_chan() in mxs_dma_control() because mxs_dma_reset_chan()
can only work when the DMA channel is enabled.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
drivers/dma/mxs-dma.c