On Tue, Oct 31, 2017 at 11:46:36AM +0100, Geert Uytterhoeven wrote: > CC linux-renesas-soc > > On Tue, Oct 31, 2017 at 11:45 AM, Geert Uytterhoeven > <geert@xxxxxxxxxxxxxx> wrote: > > Hi Vinod, Morimoto-san, Yokoyama-san, > > > > On Fri, Oct 20, 2017 at 8:15 AM, Vinod Koul <vinod.koul@xxxxxxxxx> wrote: > >> On Thu, Oct 19, 2017 at 01:15:13AM +0000, Kuninori Morimoto wrote: > >>> From: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@xxxxxxxxxxx> > >>> > >>> SYS/RT/Audio DMAC includes independent data buffers for reading > >>> and writing. Therefore, the read transfer counter and write transfer > >>> counter have different values. > >>> TCR indicates read counter, and TCRB indicates write counter. > >>> The relationship is like below. > >>> > >>> TCR TCRB > >>> [SOURCE] -> [DMAC] -> [SINK] > >>> > >>> In the MEM_TO_DEV direction, what really matters is how much data has > >>> been written to the device. If the DMA is interrupted between read and > >>> write, then, the data doesn't end up in the destination, so shouldn't > >>> be counted. TCRB is thus the register we should use in this cases. > >>> > >>> In the DEV_TO_MEM direction, the situation is more complex. Both the > >>> read and write side are important. What matters from a data consumer > >>> point of view is how much data has been written to memory. > >>> On the other hand, if the transfer is interrupted between read and > >>> write, we'll end up losing data. It can also be important to report. > >>> > >>> In the MEM_TO_MEM direction, what matters is of course how much data > >>> has been written to memory from data consumer point of view. > >>> Here, because read and write have independent data buffers, it will > >>> take a while for TCR and TCRB to become equal. Thus we should check > >>> TCRB in this case, too. > >>> > >>> Thus, all cases we should check TCRB instead of TCR. > >>> > >>> Without this patch, Sound Capture has noise after PluseAudio support > >>> (= 07b7acb51d2 ("ASoC: rsnd: update pointer more accurate")), because > >>> the recorder will use wrong residue counter which indicates transferred > >>> from sound device, but in reality the data was not yet put to memory > >>> and recorder will record it. > >> > >> Applied, thanks. > > > > This is now commit 847449f23dcbff68 ("dmaengine: rcar-dmac: use TCRB > > instead of TCR for residue") in slave-dma/next, and breaks serial console > > input on koelsch (shmobile_defconfig) and salvator-x (renesas_defconfig). > > Reverting that commit fixes the issue for me. Okay since we are close to merge window I can drop this patch for now, unless we identify the fix very quickly -- ~Vinod