ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume()
authorWang Jingjin <wangjingjin1@huawei.com>
Thu, 8 Dec 2022 06:39:00 +0000 (14:39 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jan 2023 11:07:34 +0000 (12:07 +0100)
[ Upstream commit 6d94d0090527b1763872275a7ccd44df7219b31e ]

rk_spdif_runtime_resume() may have called clk_prepare_enable() before return
from failed branches, add missing clk_disable_unprepare() in this case.

Fixes: f874b80e1571 ("ASoC: rockchip: Add rockchip SPDIF transceiver driver")
Signed-off-by: Wang Jingjin <wangjingjin1@huawei.com>
Link: https://lore.kernel.org/r/20221208063900.4180790-1-wangjingjin1@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/rockchip/rockchip_spdif.c

index f387d7bae3d413fcaf653b5d93be17d8cc1830b1..e4073c48faf63165172bad5a8908a564b9b42599 100644 (file)
@@ -85,6 +85,7 @@ static int __maybe_unused rk_spdif_runtime_resume(struct device *dev)
 
        ret = clk_prepare_enable(spdif->hclk);
        if (ret) {
+               clk_disable_unprepare(spdif->mclk);
                dev_err(spdif->dev, "hclk clock enable failed %d\n", ret);
                return ret;
        }