diff options
| author | Sheetal <sheetal@nvidia.com> | 2026-04-06 12:05:47 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-04-06 15:04:03 +0300 |
| commit | 247d1c13992d2c501e2e020e84d9d2920e11bf78 (patch) | |
| tree | ad88065def3144d07682251f3159d22510540aa2 | |
| parent | cba9ce8c1afeef4bbfa29891ff76634f6236c697 (diff) | |
| download | linux-247d1c13992d2c501e2e020e84d9d2920e11bf78.tar.xz | |
ASoC: rt5640: Handle 0Hz sysclk during stream shutdown
Commit 2458adb8f92a ("SoC: simple-card-utils: set 0Hz to sysclk when
shutdown") sends a 0Hz sysclk request during stream shutdown to clear
codec rate constraints. The rt5640 codec forwards this 0Hz to
clk_set_rate(), which can cause clock controller firmware faults on
platforms where MCLK is SoC-driven (e.g. Tegra) and 0Hz falls below
the hardware minimum rate.
Handle the 0Hz case by clearing the internal sysclk state and
returning early, avoiding the invalid clk_set_rate() call.
Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260406090547.988966-1-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/codecs/rt5640.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c index db2222e6f2e7..f6c6294e1588 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -1838,6 +1838,11 @@ static int rt5640_set_dai_sysclk(struct snd_soc_dai *dai, unsigned int pll_bit = 0; int ret; + if (!freq) { + rt5640->sysclk = 0; + return 0; + } + switch (clk_id) { case RT5640_SCLK_S_MCLK: ret = clk_set_rate(rt5640->mclk, freq); |
