summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSheetal <sheetal@nvidia.com>2026-04-06 12:05:47 +0300
committerMark Brown <broonie@kernel.org>2026-04-06 15:04:03 +0300
commit247d1c13992d2c501e2e020e84d9d2920e11bf78 (patch)
treead88065def3144d07682251f3159d22510540aa2
parentcba9ce8c1afeef4bbfa29891ff76634f6236c697 (diff)
downloadlinux-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.c5
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);