linux/drivers/dma/sh
Yoshihiro Shimoda 538603c602 dmaengine: sh: rcar-dmac: avoid to write CHCR.TE to 1 if TCR is set to 0
This patch fixes an issue that unexpected retransfering happens
if TCR is set to 0 before rcar_dmac_sync_tcr() writes DE bit to
the CHCR register. For example, sh-sci driver can reproduce this
issue like below:

 In rx_timer_fn():		/* CHCR DE bit may be set to 1 */
  dmaengine_tx_status()
   rcar_dmac_tx_status()
    rcar_dmac_chan_get_residue()
     rcar_dmac_sync_tcr()	/* TCR is possible to be set to 0 */

According to the description of commit 73a47bd0da ("dmaengine:
rcar-dmac: use TCRB instead of TCR for residue"), "this buffered data
will be transferred if CHCR::DE bit was cleared". So, this patch
doesn't need to check TCRB register.

Fixes: 73a47bd0da ("dmaengine: rcar-dmac: use TCRB instead of TCR for residue")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2018-07-10 20:49:46 +05:30
..
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: avoid to write CHCR.TE to 1 if TCR is set to 0 2018-07-10 20:49:46 +05:30
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 treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00