Re: [PATCH v3] dmaengine: tegra-apb: Support per-burst residue granularity

From: Dmitry Osipenko
Date: Tue Jul 02 2019 - 05:25:23 EST


27.06.2019 22:47, Dmitry Osipenko ÐÐÑÐÑ:
> Tegra's APB DMA engine updates words counter after each transferred burst
> of data, hence it can report transfer's residual with more fidelity which
> may be required in cases like audio playback. In particular this fixes
> audio stuttering during playback in a chromium web browser. The patch is
> based on the original work that was made by Ben Dooks and a patch from
> downstream kernel. It was tested on Tegra20 and Tegra30 devices.
>
> Link: https://lore.kernel.org/lkml/20190424162348.23692-1-ben.dooks@xxxxxxxxxxxxxxx/
> Link: https://nv-tegra.nvidia.com/gitweb/?p=linux-4.4.git;a=commit;h=c7bba40c6846fbf3eaad35c4472dcc7d8bbc02e5
> Inspired-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx>
> Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx>
> ---
>
> Changelog:
>
> v3: Added workaround for a hardware design shortcoming that results
> in a words counter wraparound before end-of-transfer bit is set
> in a cyclic mode.
>
> v2: Addressed review comments made by Jon Hunter to v1. We won't try
> to get words count if dma_desc is on free list as it will result
> in a NULL dereference because this case wasn't handled properly.
>
> The residual value is now updated properly, avoiding potential
> integer overflow by adding the "bytes" to the "bytes_transferred"
> instead of the subtraction.

Is there still any chance to get this into 5.3? Will be very nice! Jon / Vinod ?