]> 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)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:10:43 +0000 (14:10 +0200)
commit733d6218742de207cd06355596d8463a1bd13111
tree260a3ea3553ba4f74c7d0442861b83c87f5c3249
parent89e631a5b6a9d328c4d871cb889e8591b86a5d32
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