ASoC: sun4i-i2s: Set sign extend sample
authorMarcus Cooper <codekipper@gmail.com>
Fri, 30 Oct 2020 14:46:38 +0000 (15:46 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 30 Oct 2020 17:58:53 +0000 (17:58 +0000)
commitd8659dd9a13ce7a92c017c352aea1c390f300937
treeb4f44fa0f6022d7495e769581f8e025c3dd0c9d1
parent9c2d255f0e63f8e54bd8345f9c59c4060cf4bbd4
ASoC: sun4i-i2s: Set sign extend sample

On the newer SoCs such as the H3 and A64 this is set by default
to transfer a 0 after each sample in each slot. However the A10
and A20 SoCs that this driver was developed on had a default
setting where it padded the audio gain with zeros.

This isn't a problem while we have only support for 16bit audio
but with larger sample resolution rates in the pipeline then SEXT
bits should be cleared so that they also pad at the LSB. Without
this the audio gets distorted.

Set sign extend sample for all the sunxi generations even if they
are not affected. This will keep consistency and avoid relying on
default.

Signed-off-by: Marcus Cooper <codekipper@gmail.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Clément Péron <peron.clem@gmail.com>
Link: https://lore.kernel.org/r/20201030144648.397824-6-peron.clem@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sunxi/sun4i-i2s.c