Hello Jerome,
in this series I am proposing two fixes for the "aiu" driver, used on Amlogic Meson8, Meson8b, Meson8m2, GXBB, GXL and GXM SoCs.
The first patch is the result of me trying to understand the way how we get the DMA buffer and address for the audio data. I'm not an expert in terms of DMA. From what I understand we need to inform DMA core about the limitations of the hardware. In case of AIU it's DMA address registers only take 32 bits, so DMA core should be aware of this.
The second patch is what I could come up with to fix the infamous I2S buffer underrun issue, also called the "machine gun noise" (MGN) bug. After a lot of testing, debugging and comparing vendor code with the upstream "aiu" driver I have come up with this fix. I have written down my thoughts in the description of that patch. To be clear: these are my thoughts, unfortunately I have no way of proving this other than asking other people to test this patch (off-list I have already received positive feedback along with confirmation that both 2-ch and 6-ch audio are still working fine. Even with Kodi's menu - which is an easy way to reproduce the MGN bug - sound output is fine with this patch).
Please let me know what you think about these patches and especially the patch descriptions.
Martin Blumenstingl (2): ASoC: meson: aiu: fifo: Add missing dma_coerce_mask_and_coherent() ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s
sound/soc/meson/aiu-encoder-i2s.c | 33 ------------------------------- sound/soc/meson/aiu-fifo-i2s.c | 12 +++++++++++ sound/soc/meson/aiu-fifo.c | 6 ++++++ 3 files changed, 18 insertions(+), 33 deletions(-)