From f905bac260b36e7f7f60ac7776d4f68d76894d12 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Thu, 6 Jul 2023 08:46:29 +0800 Subject: [PATCH] ASoC: rockchip: i2s-tdm: Fix error path in prepare_enable_mclk [smatch] sound/soc/rockchip/rockchip_i2s_tdm.c:206 i2s_tdm_prepare_enable_mclk() warn: 'i2s_tdm->mclk_rx' from clk_prepare_enable not released. Signed-off-by: Sugar Zhang Change-Id: I7af416e1a79c8fc229c5ea42b09785282d71bf10 --- sound/soc/rockchip/rockchip_i2s_tdm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c index d36c252a4e25..3162853b0153 100644 --- a/sound/soc/rockchip/rockchip_i2s_tdm.c +++ b/sound/soc/rockchip/rockchip_i2s_tdm.c @@ -177,10 +177,11 @@ static int i2s_tdm_prepare_enable_mclk(struct rk_i2s_tdm_dev *i2s_tdm) ret = clk_prepare_enable(i2s_tdm->mclk_rx); if (ret) goto err_mclk_rx; + if (i2s_tdm->mclk_calibrate) { ret = clk_prepare_enable(i2s_tdm->mclk_tx_src); if (ret) - goto err_mclk_rx; + goto err_mclk_tx_src; ret = clk_prepare_enable(i2s_tdm->mclk_rx_src); if (ret) goto err_mclk_rx_src; @@ -200,6 +201,8 @@ err_mclk_root0: clk_disable_unprepare(i2s_tdm->mclk_rx_src); err_mclk_rx_src: clk_disable_unprepare(i2s_tdm->mclk_tx_src); +err_mclk_tx_src: + clk_disable_unprepare(i2s_tdm->mclk_rx); err_mclk_rx: clk_disable_unprepare(i2s_tdm->mclk_tx); err_mclk_tx: