On 7/4/20 6:38 AM, Clément Péron wrote:
> From: Marcus Cooper <codekip...@gmail.com>
> 
> 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 <codekip...@gmail.com>
> Signed-off-by: Clément Péron <peron.c...@gmail.com>
> Acked-by: Maxime Ripard <max...@cerno.tech>
> ---
>  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

Reply via email to