Skip to content

Commit 27fa1a8

Browse files
Olivier Moysanbroonie
authored andcommitted
ASoC: stm32: sai: manage context in set_sysclk callback
The mclk direction now needs to be specified in endpoint node with "system-clock-direction-out" property. However some calls to the set_sysclk callback, related to CPU DAI clock, result in unbalanced calls to clock API. The set_sysclk callback in STM32 SAI driver is intended only for mclk management. So it is relevant to ensure that calls to set_sysclk are related to mclk only. Since the master clock is handled only at runtime, skip the calls to set_sysclk in the initialization phase. Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com> Link: https://patch.msgid.link/20250916123118.84175-1-olivier.moysan@foss.st.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent dc64b3d commit 27fa1a8

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

sound/soc/stm/stm32_sai_sub.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,14 @@ static int stm32_sai_set_sysclk(struct snd_soc_dai *cpu_dai,
672672
struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai);
673673
int ret;
674674

675+
/*
676+
* The mclk rate is determined at runtime from the audio stream rate.
677+
* Skip calls to the set_sysclk callback that are not relevant during the
678+
* initialization phase.
679+
*/
680+
if (!snd_soc_card_is_instantiated(cpu_dai->component->card))
681+
return 0;
682+
675683
if (dir == SND_SOC_CLOCK_OUT && sai->sai_mclk) {
676684
ret = stm32_sai_sub_reg_up(sai, STM_SAI_CR1_REGX,
677685
SAI_XCR1_NODIV,

0 commit comments

Comments
 (0)