[PATCH v2 1/3] ASoC: mediatek: mt6797: fix wrong unwind order and error code in enable_clock

Cezary Rojewski cezary.rojewski at intel.com
Thu Aug 20 01:38:05 PDT 2026


On 8/19/2026 12:17 PM, phucduc.bui at gmail.com wrote:
> From: bui duc phuc <phucduc.bui at gmail.com>
> 
> 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 at gmail.com>
> ---

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 at intel.com>



More information about the Linux-mediatek mailing list