ASoC: stm32: sai: add a check on minimal kernel frequency

On MP2 SoCs SAI kernel clock rate is managed through
stm32_sai_set_parent_rate() function.
If the kernel clock rate was set previously to a low frequency, this
frequency may be too low to support the newly requested audio stream rate.
However the stm32_sai_rate_accurate() will only check accuracy against
the maximum kernel clock rate. The function will return leaving the kernel
clock rate unchanged.
Add a check on minimal frequency requirement, to avoid this.

Fixes: 2cfe1ff225 ("ASoC: stm32: sai: add stm32mp25 support")
Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
Link: https://patch.msgid.link/20250430165210.321273-3-olivier.moysan@foss.st.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Olivier Moysan 2025-04-30 18:52:09 +02:00 committed by Mark Brown
parent edea92770a
commit cce34d113e
No known key found for this signature in database
GPG key ID: 24D68B725D5487D0

View file

@ -447,7 +447,10 @@ static int stm32_sai_set_parent_rate(struct stm32_sai_sub_data *sai,
* return immediately.
*/
sai_curr_rate = clk_get_rate(sai->sai_ck);
if (stm32_sai_rate_accurate(sai_ck_max_rate, sai_curr_rate))
dev_dbg(&pdev->dev, "kernel clock rate: min [%u], max [%u], current [%u]",
sai_ck_min_rate, sai_ck_max_rate, sai_curr_rate);
if (stm32_sai_rate_accurate(sai_ck_max_rate, sai_curr_rate) &&
sai_curr_rate >= sai_ck_min_rate)
return 0;
/*