]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: Intel: bytcr_wm5102: Fix MCLK leak on platform_clock_control error
authorCássio Gabriel <cassiogabrielcontato@gmail.com>
Tue, 28 Apr 2026 02:38:41 +0000 (23:38 -0300)
committerMark Brown <broonie@kernel.org>
Tue, 28 Apr 2026 08:50:08 +0000 (17:50 +0900)
If byt_wm5102_prepare_and_enable_pll1() fails in the
SND_SOC_DAPM_EVENT_ON() path, platform_clock_control() returns after
clk_prepare_enable(priv->mclk) without disabling the clock again.

This leaks an MCLK enable reference on failed power-up attempts. Add the
missing clk_disable_unprepare() on the error path, matching the unwind
used by the other Intel platform_clock_control() implementations.

Fixes: 9a87fc1e0619 ("ASoC: Intel: bytcr_wm5102: Add machine driver for BYT/WM5102")
Cc: stable@vger.kernel.org
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Link: https://patch.msgid.link/20260427-bytcr-wm5102-mclk-leak-v1-1-02b96d08e99c@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/bytcr_wm5102.c

index 4879f79aef292b5194150ae7fd60ad219b7bd95b..4aa0cf49b033594f52838db5794f5a85186cd558 100644 (file)
@@ -170,6 +170,7 @@ static int platform_clock_control(struct snd_soc_dapm_widget *w,
                ret = byt_wm5102_prepare_and_enable_pll1(codec_dai, 48000);
                if (ret) {
                        dev_err(card->dev, "Error setting codec sysclk: %d\n", ret);
+                       clk_disable_unprepare(priv->mclk);
                        return ret;
                }
        } else {