On Wed, Jul 25, 2018 at 10:29 AM Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> wrote: > rcar_dmac_chan_get_residue() should not stop the DMAC, because > the commit 538603c6026c ("dmaengine: sh: rcar-dmac: avoid to write > CHCR.TE to 1 if TCR is set to 0") had fixed unexpected re-transferring > issue. But it had caused the next issue which might stop the cyclic > mode transferring. Thus, for example R-Car sound might be stopped > suddenly. > > According to the commit 73a47bd0da66 ("dmaengine: rcar-dmac: use TCRB > instead of TCR for residue"), the purpose of clearing CHCR.DE bit is > flushing buffered data to calculate the exact residue. > > Such the "exact" residue had been required by sh-sci driver. sh-sci > driver is calling dmaengine_pause() to stop transferring, and get > "exact" residue. Otherwise, it might receive extra data during > getting residue without pausing. > > In rx_timer_fn() of sh-sci driver: > dmaengine_tx_status(); /* For checking roughly */ > dmaengine_pause(); > dmaengine_tx_status(); /* For getting residue */ > dmaengine_terminate_all(); > > But, unfortunately the rcar-dmac driver didn't support dmaengine_pause() > at that time. So, the sh-sci driver cannot get the "exact" residue > without stopping the transferring, because rcar-dmac is buffering data > inside. > > Because of these backgrounds, rcar-dmac had been cleared/set CHCR.DE > bit in rcar_dmac_chan_get_residue() to synchronizing data and getting > "exact" residue. > > However, rcar-dmac driver has rcar_dmac_chan_pause() now, and clearing > CHCR.DE bit in rcar_dmac_chan_get_residue() doesn't need anymore. > So, this patch removes the rcar_dmac_sync_tcr(). > > Fixes: 73a47bd0da66 ("dmaengine: rcar-dmac: use TCRB instead of TCR for residue") > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> > Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@xxxxxxxxxxx> Makes sense, so Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds