linux-stable/drivers/dma/sh
Achim Dahlhoff 6e7da74775 dmaengine: sh: rcar-dmac: Fix glitch in dmaengine_tx_status
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>
2019-04-23 10:45:34 +05:30
..
Kconfig dmaengine: sh: Remove R-Mobile APE6 support 2018-12-05 13:01:54 +05:30
Makefile dmaengine: sh: Remove R-Mobile APE6 support 2018-12-05 13:01:54 +05:30
rcar-dmac.c dmaengine: sh: rcar-dmac: Fix glitch in dmaengine_tx_status 2019-04-23 10:45:34 +05:30
shdma-arm.h dmaengine: use SPDX identifier for Renesas drivers 2018-08-29 21:58:49 +05:30
shdma-base.c dmaengine: use SPDX identifier for Renesas drivers 2018-08-29 21:58:49 +05:30
shdma-of.c dmaengine: use SPDX identifier for Renesas drivers 2018-08-29 21:58:49 +05:30
shdma.h dmaengine: sh: Remove R-Mobile APE6 support 2018-12-05 13:01:54 +05:30
shdmac.c dmaengine: sh: Remove R-Mobile APE6 support 2018-12-05 13:01:54 +05:30
sudmac.c dmaengine: use SPDX identifier for Renesas drivers 2018-08-29 21:58:49 +05:30
usb-dmac.c dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit 2019-01-20 16:29:52 +05:30