Re: [PATCH v2 1/3] ASoC: mediatek: mt6797: fix wrong unwind order and error code in enable_clock
From: Cezary Rojewski
Date: Thu Aug 20 2026 - 04:38:26 EST
On 8/19/2026 12:17 PM, phucduc.bui@xxxxxxxxx wrote:
From: bui duc phuc <phucduc.bui@xxxxxxxxx>
The error paths in mt6797_afe_enable_clock() use incorrect goto labels,
causing clocks that failed to enable to be disabled during cleanup.
Fix the goto labels to only unwind clocks that were successfully
enabled, and return the actual error code.
Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
---
There is no changelog in this series so reviewers have harder job analyzing the v2 patches. If there is no cover-letter, you can always paste the update here, after '---'.
sound/soc/mediatek/mt6797/mt6797-afe-clk.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
...
@@ -93,13 +93,11 @@ int mt6797_afe_enable_clock(struct mtk_base_afe *afe)
if (ret) {
dev_err(afe->dev, "%s(), clk_prepare_enable %s fail %d\n",
__func__, aud_clks[CLK_TOP_MUX_AUD_BUS], ret);
- goto CLK_MUX_AUDIO_INTBUS_ERR;
+ goto CLK_MUX_AUDIO_ERR;
}
- return ret;
+ return 0;
-CLK_MUX_AUDIO_INTBUS_ERR:
- clk_disable_unprepare(afe_priv->clk[CLK_TOP_MUX_AUD_BUS]);
CLK_MUX_AUDIO_ERR:
clk_disable_unprepare(afe_priv->clk[CLK_TOP_MUX_AUD]);
CLK_INFRA_SYS_AUD_26M_ERR:
@@ -107,7 +105,7 @@ int mt6797_afe_enable_clock(struct mtk_base_afe *afe)
CLK_INFRA_SYS_AUDIO_ERR:
clk_disable_unprepare(afe_priv->clk[CLK_INFRA_SYS_AUD]);
- return 0;
+ return ret;
}
In regard to the patch, the fix looks good - given the number of errors in the existing code with invalid return code on top, perhaps someone wanted the function to be permissive.
Otherwise it's just bunch of untested stuff and your change should be tagged with: Fixes: and propagated downstream.
Reviewed-by: Cezary Rojewski <cezary.rojewski@xxxxxxxxx>