Re: [linux-sunxi] [PATCH 02/16] ASoC: sun4i-i2s: Adjust LRCLK width

From: Samuel Holland
Date: Fri Jul 10 2020 - 01:44:51 EST


On 7/4/20 6:38 AM, ClÃment PÃron wrote:
> From: Marcus Cooper <codekipper@xxxxxxxxx>
>
> Some codecs such as i2s based HDMI audio and the Pine64 DAC require
> a different amount of bit clocks per frame than what is calculated
> by the sample width. Use the values obtained by the tdm slot bindings
> to adjust the LRCLK width accordingly.
>
> Signed-off-by: Marcus Cooper <codekipper@xxxxxxxxx>
> Signed-off-by: ClÃment PÃron <peron.clem@xxxxxxxxx>
> Acked-by: Maxime Ripard <maxime@xxxxxxxxxx>
> ---
> sound/soc/sunxi/sun4i-i2s.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
> index 9690389cb68e..8bae97efea30 100644
> --- a/sound/soc/sunxi/sun4i-i2s.c
> +++ b/sound/soc/sunxi/sun4i-i2s.c
> @@ -470,6 +470,9 @@ static int sun8i_i2s_set_chan_cfg(const struct sun4i_i2s *i2s,
> return -EINVAL;
> }
>
> + if (i2s->slot_width)
> + lrck_period = i2s->slot_width;
> +
> regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT0_REG,
> SUN8I_I2S_FMT0_LRCK_PERIOD_MASK,
> SUN8I_I2S_FMT0_LRCK_PERIOD(lrck_period));
>

It looks like the existing code would have the same problem, that this should be
lrck_period - 1 according to the manual (I checked H3).

Regards,
Samuel