alistair23-linux/drivers/dma
Ludovic Desroches 25c5e9626c dmaengine: at_xdmac: fix residue computation
When computing the residue we need two pieces of information: the current
descriptor and the remaining data of the current descriptor. To get
that information, we need to read consecutively two registers but we
can't do it in an atomic way. For that reason, we have to check manually
that current descriptor has not changed.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Suggested-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Reported-by: David Engraf <david.engraf@sysgo.com>
Tested-by: David Engraf <david.engraf@sysgo.com>
Fixes: e1f7c9eee7 ("dmaengine: at_xdmac: creation of the atmel
eXtended DMA Controller driver")
Cc: stable@vger.kernel.org #4.1 and later
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2016-03-10 16:32:36 +05:30
..
bestcomm
dw dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer 2016-02-15 22:19:32 +05:30
hsu dmaengine: hsu: speed up residue calculation 2015-12-05 14:00:34 +05:30
ioat dmaengine: IOATDMA: fix timer code that continues to restart channels during idle 2016-01-30 22:29:03 +05:30
ipu genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
ppc4xx
sh dmaengine updates for 4.5-rc1 2016-01-13 10:59:52 -08:00
xilinx dmaengine: xilinx: Fix module autoload for OF platform driver 2015-10-01 07:35:39 +05:30
acpi-dma.c dmaengine: acpi-dma: check for 64-bit MMIO address 2015-12-05 14:00:34 +05:30
amba-pl08x.c dmaengine: pl08x: support dt channel assignment 2015-08-18 22:12:14 +05:30
at_hdmac.c dmaengine: at_hdmac: use %pad format string for dma_addr_t 2015-11-16 09:21:05 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: use %pad format string for dma_addr_t 2015-11-16 09:21:05 +05:30
at_xdmac.c dmaengine: at_xdmac: fix residue computation 2016-03-10 16:32:36 +05:30
bcm2835-dma.c dmaengine: bcm2835-dma: Convert to use DMA pool 2015-12-05 15:36:32 +05:30
coh901318.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
coh901318.h
coh901318_lli.c
cppi41.c
dma-axi-dmac.c dmaengine: axi_dmac: Add synchronization support 2015-11-16 08:28:52 +05:30
dma-jz4740.c
dma-jz4780.c dmaengine: jz4780: Kill tasklets before unregistering the device 2015-08-18 22:28:50 +05:30
dmaengine.c Merge branch 'topic/async' into for-linus 2016-01-06 15:17:47 +05:30
dmaengine.h
dmatest.c
edma.c dmaengine: edma: fix residue race for cyclic 2016-02-08 08:42:55 +05:30
ep93xx_dma.c
fsl-edma.c dmaengine: fsl-edma: add PM suspend/resume support 2015-12-05 15:52:13 +05:30
fsl_raid.c
fsl_raid.h
fsldma.c dmaengine: fsldma: fix memory leak 2016-03-09 12:15:22 +05:30
fsldma.h
idma64.c dmaengine: idma64: use local variable to index descriptor 2015-12-05 13:54:28 +05:30
idma64.h dmaengine: idma64: set maximum allowed segment size for DMA 2015-12-05 13:54:28 +05:30
img-mdc-dma.c dmaengine: mdc: Correct terminate_all handling 2015-12-18 11:12:29 +05:30
imx-dma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
imx-sdma.c dmaengine: imx-sdma: remove __init annotation on sdma_event_remap 2015-11-16 09:14:25 +05:30
iop-adma.c drivers/dma/iop-adma: Use dma_alloc_writecombine() kernel-style 2015-08-25 09:59:46 +02:00
k3dma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
Kconfig sound updates for 4.5-rc1 2016-01-17 12:05:31 -08:00
lpc18xx-dmamux.c dmaengine: add driver for lpc18xx dmamux 2015-08-18 22:12:14 +05:30
Makefile dmaengine: Add STM32 DMA driver 2015-11-16 08:56:10 +05:30
mic_x100_dma.c dmaengine: Revert "dmaengine: mic_x100: add missing spin_unlock" 2016-01-06 15:16:36 +05:30
mic_x100_dma.h dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
mmp_pdma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
mmp_tdma.c dmaengine: Add an enum for the dmaengine alignment constraints 2015-08-05 10:53:52 +05:30
moxart-dma.c dmaengine: moxart-dma: Fix module autoload for OF platform driver 2015-10-01 07:34:31 +05:30
mpc512x_dma.c dmaengine: mpc512x: Fix module autoload for OF platform driver 2015-10-01 07:34:31 +05:30
mv_xor.c dmaengine: mv_xor: add suspend/resume support 2016-01-06 15:42:27 +05:30
mv_xor.h dmaengine: mv_xor: add suspend/resume support 2016-01-06 15:42:27 +05:30
mxs-dma.c
nbpfaxi.c
of-dma.c
omap-dma.c Merge branch 'topic/omap' into for-linus 2016-01-06 15:18:19 +05:30
pch_dma.c
pl330.c dmaengine updates for 4.3-rc1 2015-09-04 11:10:18 -07:00
pxa_dma.c dmaengine: pxa_dma: fix cyclic transfers 2016-03-03 21:06:45 +05:30
qcom_bam_dma.c
s3c24xx-dma.c
sa11x0-dma.c
sirf-dma.c dmaengine: sirf: Fix module autoload for OF platform driver 2015-10-01 07:34:31 +05:30
ste_dma40.c ste_dma40: Delete an unnecessary variable initialisation in d40_probe() 2015-12-10 09:17:10 +05:30
ste_dma40_ll.c
ste_dma40_ll.h
stm32-dma.c dmaengine: stm32-dma: Fix unchecked deference of chan->desc 2015-12-10 09:45:22 +05:30
sun4i-dma.c dmaengine: sun4i: fix unsafe list iteration 2015-09-30 12:17:22 +05:30
sun6i-dma.c dmaengine: sun6i: Fix module autoload for OF platform driver 2015-10-01 07:35:26 +05:30
tegra20-apb-dma.c dmaengine: tegra-apb: Free interrupts before killing tasklets 2015-12-05 16:13:08 +05:30
ti-dma-crossbar.c dmaengine: ti-dma-crossbar: dra7: Support for reserving DMA event ranges 2015-11-30 15:09:16 +05:30
timb_dma.c
TODO
txx9dmac.c
txx9dmac.h
virt-dma.c dmaengine: virt-dma: don't always free descriptor upon completion 2015-11-16 08:32:16 +05:30
virt-dma.h Merge branch 'topic/async' into for-linus 2016-01-06 15:17:47 +05:30
xgene-dma.c dmaengine: xgene-dma: Fix double IRQ issue by setting IRQ_DISABLE_UNLAZY flag 2016-01-07 11:09:36 +05:30
zx296702_dma.c dmaengine updates for 4.4-rc1 2015-11-10 10:05:17 -08:00