mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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 02/12] ASoC: mediatek: mt8189: Propagate MCK enable errors
Date: Wed, 16 Sep 2026 12:00:09 +0700	[thread overview]
Message-ID: <20260916050020.14575-3-phucduc.bui@gmail.com> (raw)
In-Reply-To: <20260916050020.14575-1-phucduc.bui@gmail.com>

From: bui duc phuc <phucduc.bui@gmail.com>

mt8189_mck_enable() currently returns without restoring the clock
state when setting the clock parent, enabling the divider, or setting
the divider rate fails.

Propagate the error and disable clocks enabled by the function.

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 | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/sound/soc/mediatek/mt8189/mt8189-afe-clk.c b/sound/soc/mediatek/mt8189/mt8189-afe-clk.c
index f088ccf80448..56362c4756c9 100644
--- a/sound/soc/mediatek/mt8189/mt8189-afe-clk.c
+++ b/sound/soc/mediatek/mt8189/mt8189-afe-clk.c
@@ -639,7 +639,7 @@ int mt8189_mck_enable(struct mtk_base_afe *afe, int mck_id, int rate)
 		ret = mt8189_afe_set_clk_parent(afe, afe_priv->clk[m_sel_id],
 						afe_priv->clk[apll_clk_id]);
 		if (ret)
-			return ret;
+			goto err_disable_m_sel_clk;
 	}
 
 	/* enable div, set rate */
@@ -650,13 +650,21 @@ int mt8189_mck_enable(struct mtk_base_afe *afe, int mck_id, int rate)
 
 	ret = mt8189_afe_enable_clk(afe, afe_priv->clk[div_clk_id]);
 	if (ret)
-		return ret;
+		goto err_disable_m_sel_clk;
 
 	ret = mt8189_afe_set_clk_rate(afe, afe_priv->clk[div_clk_id], rate);
 	if (ret)
-		return ret;
+		goto err_disable_div_clk;
 
 	return 0;
+
+err_disable_div_clk:
+	mt8189_afe_disable_clk(afe, afe_priv->clk[div_clk_id]);
+err_disable_m_sel_clk:
+	if (m_sel_id >= 0)
+		mt8189_afe_disable_clk(afe, afe_priv->clk[m_sel_id]);
+
+	return ret;
 }
 
 int mt8189_mck_disable(struct mtk_base_afe *afe, int mck_id)
-- 
2.43.0


  parent reply	other threads:[~2026-09-16  5:00 UTC|newest]

Thread overview: 14+ 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 ` phucduc.bui [this message]
2026-09-16  5:00 ` [PATCH v3 03/12] ASoC: mediatek: mt8189: Validate MCK ID phucduc.bui
2026-09-16  5:00 ` [PATCH v3 04/12] ASoC: mediatek: mt8189: Propagate reg_rw clock errors phucduc.bui
2026-09-16  5:00 ` [PATCH v3 05/12] ASoC: mediatek: mt8189: Use dev_err_probe() for " 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

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-3-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®