dmaengine: at_xdmac: double FIFO flush needed to compute residue
authorLudovic Desroches <ludovic.desroches@atmel.com>
Thu, 12 May 2016 14:54:10 +0000 (16:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Aug 2016 09:49:25 +0000 (11:49 +0200)
commit6b373d53e8b99b7e1d4568914851a21bbd07d3bc
treec1b310c21da6f18d9d593af25dd8156b8abad61d
parent5ce7333f41a81e82d54537e5057224a3cdc78342
dmaengine: at_xdmac: double FIFO flush needed to compute residue

commit 9295c41d77ca93aac79cfca6fa09fa1ca5cab66f upstream.

Due to the way CUBC register is updated, a double flush is needed to
compute an accurate residue. First flush aim is to get data from the DMA
FIFO and second one ensures that we won't report data which are not in
memory.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Fixes: e1f7c9eee707 ("dmaengine: at_xdmac: creation of the atmel
eXtended DMA Controller driver")
Reviewed-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/at_xdmac.c