kernel-fxtec-pro1x/drivers/dma/sh
Achim Dahlhoff 129c337c66 dmaengine: sh: rcar-dmac: Fix glitch in dmaengine_tx_status
commit 6e7da74775348d96e2d7efaf3f91410e18c481ef upstream.

The tx_status poll in the rcar_dmac driver reads the status register
which indicates which chunk is busy (DMACHCRB). Afterwards the point
inside the chunk is read from DMATCRB. It is possible that the chunk
has changed between the two reads. The result is a non-monotonous
increase of the residue. Fix this by introducing a 'safe read' logic.

Fixes: 73a47bd0da ("dmaengine: rcar-dmac: use TCRB instead of TCR for residue")
Signed-off-by: Achim Dahlhoff <Achim.Dahlhoff@de.bosch.com>
Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: <stable@vger.kernel.org> # v4.16+
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-02 09:58:55 +02:00
..
Kconfig dmaengine: sh: Use ARCH_RENESAS 2016-02-08 08:48:08 +05:30
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rcar-dmac.c dmaengine: sh: rcar-dmac: Fix glitch in dmaengine_tx_status 2019-05-02 09:58:55 +02:00
shdma-arm.h dmaengine: shdma: Use defines instead of hardcoded numbers 2014-07-15 18:02:29 +09:00
shdma-base.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
shdma-of.c dmaengine: Remove .owner field for driver 2014-11-06 11:54:18 +05:30
shdma-r8a73a4.c dmaengine: shdma: r8a73a4: Make dma_ts_shift[] static 2015-05-25 22:33:07 +05:30
shdma.h dmaengine: sh: Rework Kconfig and Makefile 2014-07-31 17:15:45 +05:30
shdmac.c dmaengine: shdmac: Change platform check to CONFIG_ARCH_RENESAS 2018-04-25 14:48:30 +05:30
sudmac.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
usb-dmac.c dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit 2019-03-23 20:10:04 +01:00