Message ID | 20201030144648.397824-2-peron.clem@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Allwinner H3/H5/H6/A64 HDMI audio | expand |
On Fri, Oct 30, 2020 at 03:46:34PM +0100, Clément Péron wrote: > Left and Right justified mode are computed using the same formula > as DSP_A and DSP_B mode. > Which is wrong and the user manual explicitly says: > > LRCK_PERDIOD: > PCM Mode: Number of BCLKs within (Left + Right) channel width. > I2S/Left-Justified/Right-Justified Mode: Number of BCLKs within each > individual channel width(Left or Right) > > Fix this by using the same formula as the I2S mode. > > Fixes: 7ae7834ec446 ("ASoC: sun4i-i2s: Add support for DSP formats") > Signed-off-by: Clément Péron <peron.clem@gmail.com> Acked-by: Maxime Ripard <mripard@kernel.org> Thanks! Maxime
Hi Maxime, On Fri, 30 Oct 2020 at 17:11, Maxime Ripard <maxime@cerno.tech> wrote: > > On Fri, Oct 30, 2020 at 03:46:34PM +0100, Clément Péron wrote: > > Left and Right justified mode are computed using the same formula > > as DSP_A and DSP_B mode. > > Which is wrong and the user manual explicitly says: > > > > LRCK_PERDIOD: > > PCM Mode: Number of BCLKs within (Left + Right) channel width. > > I2S/Left-Justified/Right-Justified Mode: Number of BCLKs within each > > individual channel width(Left or Right) > > > > Fix this by using the same formula as the I2S mode. > > > > Fixes: 7ae7834ec446 ("ASoC: sun4i-i2s: Add support for DSP formats") > > Signed-off-by: Clément Péron <peron.clem@gmail.com> > > Acked-by: Maxime Ripard <mripard@kernel.org> Thanks for the ACK just noticed that the case was not properly sorted. Do you agree that sorting like this is better ? case SND_SOC_DAIFMT_I2S: + case SND_SOC_DAIFMT_LEFT_J: + case SND_SOC_DAIFMT_RIGHT_J: If I have to push a new series I will fix it Regards, Clement > Thanks! > Maxime
diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c index f23ff29e7c1d..a994b5cf87b3 100644 --- a/sound/soc/sunxi/sun4i-i2s.c +++ b/sound/soc/sunxi/sun4i-i2s.c @@ -450,11 +450,11 @@ static int sun8i_i2s_set_chan_cfg(const struct sun4i_i2s *i2s, switch (i2s->format & SND_SOC_DAIFMT_FORMAT_MASK) { case SND_SOC_DAIFMT_DSP_A: case SND_SOC_DAIFMT_DSP_B: - case SND_SOC_DAIFMT_LEFT_J: - case SND_SOC_DAIFMT_RIGHT_J: lrck_period = params_physical_width(params) * slots; break; + case SND_SOC_DAIFMT_LEFT_J: + case SND_SOC_DAIFMT_RIGHT_J: case SND_SOC_DAIFMT_I2S: lrck_period = params_physical_width(params); break;
Left and Right justified mode are computed using the same formula as DSP_A and DSP_B mode. Which is wrong and the user manual explicitly says: LRCK_PERDIOD: PCM Mode: Number of BCLKs within (Left + Right) channel width. I2S/Left-Justified/Right-Justified Mode: Number of BCLKs within each individual channel width(Left or Right) Fix this by using the same formula as the I2S mode. Fixes: 7ae7834ec446 ("ASoC: sun4i-i2s: Add support for DSP formats") Signed-off-by: Clément Péron <peron.clem@gmail.com> --- sound/soc/sunxi/sun4i-i2s.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)