From: phucduc.bui@gmail.com
To: Mark Brown <broonie@kernel.org>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
Cezary Rojewski <cezary.rojewski@intel.com>,
Cyril Chao <Cyril.Chao@mediatek.com>,
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
Dan Carpenter <error27@gmail.com>,
cassiogabrielcontato@gmail.com, linux-sound@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org,
bui duc phuc <phucduc.bui@gmail.com>
Subject: [PATCH v3 04/12] ASoC: mediatek: mt8189: Propagate reg_rw clock errors
Date: Wed, 16 Sep 2026 12:00:11 +0700 [thread overview]
Message-ID: <20260916050020.14575-5-phucduc.bui@gmail.com> (raw)
In-Reply-To: <20260916050020.14575-1-phucduc.bui@gmail.com>
From: bui duc phuc <phucduc.bui@gmail.com>
mt8189_afe_enable_reg_rw_clk() currently ignores errors from clock
enable and parent operations.
Propagate these errors and clean up the clocks before returning the
error.
Fixes: dc637ffeed6c ("ASoC: mediatek: mt8189: support audio clock control")
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
Changes in v2:
- Update the names of the goto labels.
sound/soc/mediatek/mt8189/mt8189-afe-clk.c | 31 +++++++++++++++++-----
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/sound/soc/mediatek/mt8189/mt8189-afe-clk.c b/sound/soc/mediatek/mt8189/mt8189-afe-clk.c
index 7fe9d01006d5..1132c924158d 100644
--- a/sound/soc/mediatek/mt8189/mt8189-afe-clk.c
+++ b/sound/soc/mediatek/mt8189/mt8189-afe-clk.c
@@ -700,17 +700,36 @@ int mt8189_mck_disable(struct mtk_base_afe *afe, int mck_id)
int mt8189_afe_enable_reg_rw_clk(struct mtk_base_afe *afe)
{
struct mt8189_afe_private *afe_priv = afe->platform_priv;
+ int ret;
/* bus clock for AFE internal access, like AFE SRAM */
- mt8189_afe_enable_clk(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIOINTBUS]);
- mt8189_afe_set_clk_parent(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIOINTBUS],
- afe_priv->clk[MT8189_CLK_TOP_CLK26M]);
+ ret = mt8189_afe_enable_clk(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIOINTBUS]);
+ if (ret)
+ return ret;
+
+ ret = mt8189_afe_set_clk_parent(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIOINTBUS],
+ afe_priv->clk[MT8189_CLK_TOP_CLK26M]);
+ if (ret)
+ goto err_disable_audiointbus_clk;
+
/* enable audio clock source */
- mt8189_afe_enable_clk(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIO_H]);
- mt8189_afe_set_clk_parent(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIO_H],
- afe_priv->clk[MT8189_CLK_TOP_CLK26M]);
+ ret = mt8189_afe_enable_clk(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIO_H]);
+ if (ret)
+ goto err_disable_audiointbus_clk;
+
+ ret = mt8189_afe_set_clk_parent(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIO_H],
+ afe_priv->clk[MT8189_CLK_TOP_CLK26M]);
+ if (ret)
+ goto err_disable_audio_h_clk;
return 0;
+
+err_disable_audio_h_clk:
+ mt8189_afe_disable_clk(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIO_H]);
+err_disable_audiointbus_clk:
+ mt8189_afe_disable_clk(afe, afe_priv->clk[MT8189_CLK_TOP_MUX_AUDIOINTBUS]);
+
+ return ret;
}
int mt8189_afe_disable_reg_rw_clk(struct mtk_base_afe *afe)
--
2.43.0
next prev parent reply other threads:[~2026-09-16 5:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-16 5:00 [PATCH v3 00/12] ASoC: mediatek: mt8189: Improve error handling phucduc.bui
2026-09-16 5:00 ` [PATCH v3 01/12] ASoC: mediatek: mt8189: Propagate APLL enable errors phucduc.bui
2026-09-16 5:00 ` [PATCH v3 02/12] ASoC: mediatek: mt8189: Propagate MCK " phucduc.bui
2026-09-16 5:00 ` [PATCH v3 03/12] ASoC: mediatek: mt8189: Validate MCK ID phucduc.bui
2026-09-16 5:00 ` phucduc.bui [this message]
2026-09-16 5:00 ` [PATCH v3 05/12] ASoC: mediatek: mt8189: Use dev_err_probe() for clock errors phucduc.bui
2026-09-16 5:00 ` [PATCH v3 06/12] ASoC: mediatek: mt8189: Propagate runtime resume errors phucduc.bui
2026-09-16 5:00 ` [PATCH v3 07/12] ASoC: mediatek: mt8189: Remove redundant error message phucduc.bui
2026-09-16 5:00 ` [PATCH v3 08/12] ASoC: mediatek: mt8189: Propagate APLL errors phucduc.bui
2026-09-16 5:00 ` [PATCH v3 09/12] ASoC: mediatek: mt8189: Propagate MCLK errors phucduc.bui
2026-09-16 5:00 ` [PATCH v3 10/12] ASoC: mediatek: mt8189: Validate sysclk frequency phucduc.bui
2026-09-16 5:00 ` [PATCH v3 11/12] ASoC: mediatek: mt8189: Propagate TDM clock errors phucduc.bui
2026-09-16 5:00 ` [PATCH v3 12/12] ASoC: mediatek: mt8189: Validate TDM MCLK frequency phucduc.bui
2026-09-16 10:19 ` [PATCH v3 00/12] ASoC: mediatek: mt8189: Improve error handling AngeloGioacchino Del Regno
2026-09-17 11:49 ` Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260916050020.14575-5-phucduc.bui@gmail.com \
--to=phucduc.bui@gmail.com \
--cc=Cyril.Chao@mediatek.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=broonie@kernel.org \
--cc=cassiogabrielcontato@gmail.com \
--cc=cezary.rojewski@intel.com \
--cc=error27@gmail.com \
--cc=kuninori.morimoto.gx@renesas.com \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-sound@vger.kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=perex@perex.cz \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.