Commit 424fe7ed authored by Olivier Moysan's avatar Olivier Moysan Committed by Mark Brown

ASoC: stm32: i2s: fix 32 bits channel length without mclk

Fix divider calculation in the case of 32 bits channel
configuration, when no master clock is used.

Fixes: e4e6ec7b ("ASoC: stm32: Add I2S driver")
Signed-off-by: default avatarOlivier Moysan <olivier.moysan@foss.st.com>
Link: https://lore.kernel.org/r/20211117104404.3832-1-olivier.moysan@foss.st.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent cb04d8cd
...@@ -700,7 +700,7 @@ static int stm32_i2s_configure_clock(struct snd_soc_dai *cpu_dai, ...@@ -700,7 +700,7 @@ static int stm32_i2s_configure_clock(struct snd_soc_dai *cpu_dai,
if (ret < 0) if (ret < 0)
return ret; return ret;
nb_bits = frame_len * ((cgfr & I2S_CGFR_CHLEN) + 1); nb_bits = frame_len * (FIELD_GET(I2S_CGFR_CHLEN, cgfr) + 1);
ret = stm32_i2s_calc_clk_div(i2s, i2s_clock_rate, ret = stm32_i2s_calc_clk_div(i2s, i2s_clock_rate,
(nb_bits * rate)); (nb_bits * rate));
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment