]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: rt5640: Handle 0Hz sysclk during stream shutdown
authorSheetal <sheetal@nvidia.com>
Mon, 6 Apr 2026 09:05:47 +0000 (09:05 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 6 Apr 2026 12:04:03 +0000 (13:04 +0100)
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>
sound/soc/codecs/rt5640.c

index db2222e6f2e758151ccf41e523904fae39efde96..f6c6294e1588050a679de3465642a09cf26dcb4f 100644 (file)
@@ -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);