All of lore.kernel.org
 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 v2 07/13] ASoC: mediatek: mt8189: Propagate runtime resume errors
Date: Mon, 14 Sep 2026 14:28:36 +0700	[thread overview]
Message-ID: <20260914072842.24420-8-phucduc.bui@gmail.com> (raw)
In-Reply-To: <20260914072842.24420-1-phucduc.bui@gmail.com>

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

mt8189_afe_runtime_resume() currently ignores errors from regmap
operations and mt8189_afe_enable_main_clock().

Propagate these errors and clean up the state before returning the
error.

Fixes: 7eb153585598 ("ASoC: mediatek: mt8189: add platform driver")
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-pcm.c | 36 +++++++++++++++++-----
 1 file changed, 29 insertions(+), 7 deletions(-)

diff --git a/sound/soc/mediatek/mt8189/mt8189-afe-pcm.c b/sound/soc/mediatek/mt8189/mt8189-afe-pcm.c
index 77cf2b604f6c..67fa40afdefa 100644
--- a/sound/soc/mediatek/mt8189/mt8189-afe-pcm.c
+++ b/sound/soc/mediatek/mt8189/mt8189-afe-pcm.c
@@ -2328,24 +2328,46 @@ static int mt8189_afe_runtime_resume(struct device *dev)
 
 	if (!afe->regmap) {
 		dev_warn(afe->dev, "skip regmap\n");
-		return 0;
+		ret = -EINVAL;
+		goto err_disable_reg_rw_clk;
 	}
 
 	regcache_cache_only(afe->regmap, false);
-	regcache_sync(afe->regmap);
+	ret = regcache_sync(afe->regmap);
+	if (ret)
+		goto err_set_cache_only;
 
 	/* set audio 26M request */
-	regmap_update_bits(afe->regmap, AFE_SPM_CONTROL_REQ, 0x1, 0x1);
-	regmap_update_bits(afe->regmap, AFE_CBIP_CFG0, 0x1, 0x1);
+	ret = regmap_update_bits(afe->regmap, AFE_SPM_CONTROL_REQ, 0x1, 0x1);
+	if (ret)
+		goto err_set_cache_only;
+
+	ret = regmap_update_bits(afe->regmap, AFE_CBIP_CFG0, 0x1, 0x1);
+	if (ret)
+		goto err_clear_26m_req;
 
 	/* force cpu use 8_24 format when writing 32bit data */
-	regmap_update_bits(afe->regmap, AFE_MEMIF_CON0,
-			   CPU_HD_ALIGN_MASK_SFT, 0 << CPU_HD_ALIGN_SFT);
+	ret = regmap_update_bits(afe->regmap, AFE_MEMIF_CON0,
+				 CPU_HD_ALIGN_MASK_SFT, 0 << CPU_HD_ALIGN_SFT);
+	if (ret)
+		goto err_clear_26m_req;
 
 	/* enable AFE */
-	mt8189_afe_enable_main_clock(afe);
+	ret = mt8189_afe_enable_main_clock(afe);
+	if (ret)
+		goto err_clear_26m_req;
 
 	return 0;
+
+err_clear_26m_req:
+	regmap_update_bits(afe->regmap,
+			   AFE_SPM_CONTROL_REQ, 0x1, 0x0);
+err_set_cache_only:
+	regcache_cache_only(afe->regmap, true);
+err_disable_reg_rw_clk:
+	mt8189_afe_disable_reg_rw_clk(afe);
+
+	return ret;
 }
 
 static int mt8189_afe_component_probe(struct snd_soc_component *component)
-- 
2.43.0



  parent reply	other threads:[~2026-09-14  7:29 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-14  7:28 [PATCH v2 00/13] ASoC: mediatek: mt8189: Improve error handling phucduc.bui
2026-09-14  7:28 ` [PATCH v2 01/13] ASoC: mediatek: mt8189: Return error for missing regmap phucduc.bui
2026-09-14 13:26   ` AngeloGioacchino Del Regno
2026-09-14  7:28 ` [PATCH v2 02/13] ASoC: mediatek: mt8189: Propagate APLL enable errors phucduc.bui
2026-09-14 13:22   ` AngeloGioacchino Del Regno
2026-09-14 13:47     ` Mark Brown
2026-09-14 13:58       ` AngeloGioacchino Del Regno
2026-09-14 14:03         ` Mark Brown
2026-09-15  6:55           ` Bui Duc Phuc
2026-09-15  8:08             ` AngeloGioacchino Del Regno
2026-09-15 10:40               ` Bui Duc Phuc
2026-09-14  7:28 ` [PATCH v2 03/13] ASoC: mediatek: mt8189: Propagate MCK " phucduc.bui
2026-09-14  7:28 ` [PATCH v2 04/13] ASoC: mediatek: mt8189: Validate MCK ID phucduc.bui
2026-09-14 13:27   ` AngeloGioacchino Del Regno
2026-09-14  7:28 ` [PATCH v2 05/13] ASoC: mediatek: mt8189: Propagate reg_rw clock errors phucduc.bui
2026-09-14  7:28 ` [PATCH v2 06/13] ASoC: mediatek: mt8189: Use dev_err_probe() for " phucduc.bui
2026-09-14 13:26   ` AngeloGioacchino Del Regno
2026-09-14  7:28 ` phucduc.bui [this message]
2026-09-14 13:26   ` [PATCH v2 07/13] ASoC: mediatek: mt8189: Propagate runtime resume errors AngeloGioacchino Del Regno
2026-09-15  7:55     ` Bui Duc Phuc
2026-09-15  8:23       ` Bui Duc Phuc
2026-09-15  8:26         ` AngeloGioacchino Del Regno
2026-09-15 10:43           ` Bui Duc Phuc
2026-09-14  7:28 ` [PATCH v2 08/13] ASoC: mediatek: mt8189: Remove redundant error message phucduc.bui
2026-09-14 13:28   ` AngeloGioacchino Del Regno
2026-09-14  7:28 ` [PATCH v2 09/13] ASoC: mediatek: mt8189: Propagate APLL errors phucduc.bui
2026-09-14  7:28 ` [PATCH v2 10/13] ASoC: mediatek: mt8189: Propagate MCLK errors phucduc.bui
2026-09-14 13:28   ` AngeloGioacchino Del Regno
2026-09-14  7:28 ` [PATCH v2 11/13] ASoC: mediatek: mt8189: Validate sysclk frequency phucduc.bui
2026-09-14 13:28   ` AngeloGioacchino Del Regno
2026-09-14  7:28 ` [PATCH v2 12/13] ASoC: mediatek: mt8189: Propagate TDM clock errors phucduc.bui
2026-09-14  7:28 ` [PATCH v2 13/13] ASoC: mediatek: mt8189: Validate TDM MCLK frequency phucduc.bui
2026-09-14 13:29   ` 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=20260914072842.24420-8-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.