[PATCH 1/2] ASoC: mediatek: common: Propagate control and DAPM errors

Subsystems: sound, sound - soc layer / dynamic audio power management (asoc), the rest

COLD28d

5 messages, 2 authors, 28d ago · open the first message on its own page

[PATCH 1/2] ASoC: mediatek: common: Propagate control and DAPM errors

From: <hidden>
Date: 2026-09-10 11:44:07

From: bui duc phuc <redacted>

mtk_afe_add_sub_dai_control() currently ignores errors from
ASoC control and DAPM setup functions.

Propagate these errors to the caller.

Signed-off-by: bui duc phuc <redacted>
---
 .../mediatek/common/mtk-afe-platform-driver.c | 38 ++++++++++++-------
 1 file changed, 24 insertions(+), 14 deletions(-)
diff --git a/sound/soc/mediatek/common/mtk-afe-platform-driver.c b/sound/soc/mediatek/common/mtk-afe-platform-driver.c
index 477284e12396..c1869b38c9e7 100644
--- a/sound/soc/mediatek/common/mtk-afe-platform-driver.c
+++ b/sound/soc/mediatek/common/mtk-afe-platform-driver.c
@@ -51,29 +51,39 @@ int mtk_afe_add_sub_dai_control(struct snd_soc_component *component)
 	struct snd_soc_dapm_context *dapm = snd_soc_component_to_dapm(component);
 	struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component);
 	struct mtk_base_afe_dai *dai;
+	int ret;
 
 	list_for_each_entry(dai, &afe->sub_dais, list) {
-		if (dai->controls)
-			snd_soc_add_component_controls(component,
-						       dai->controls,
-						       dai->num_controls);
+		if (dai->controls) {
+			ret = snd_soc_add_component_controls(component,
+							     dai->controls,
+							     dai->num_controls);
+			if (ret)
+				return ret;
+		}
 
-		if (dai->dapm_widgets)
-			snd_soc_dapm_new_controls(dapm,
-						  dai->dapm_widgets,
-						  dai->num_dapm_widgets);
+		if (dai->dapm_widgets) {
+			ret = snd_soc_dapm_new_controls(dapm,
+							dai->dapm_widgets,
+							dai->num_dapm_widgets);
+			if (ret)
+				return ret;
+		}
 	}
 	/* add routes after all widgets are added */
 	list_for_each_entry(dai, &afe->sub_dais, list) {
-		if (dai->dapm_routes)
-			snd_soc_dapm_add_routes(dapm,
-						dai->dapm_routes,
-						dai->num_dapm_routes);
+		if (dai->dapm_routes) {
+			ret = snd_soc_dapm_add_routes(dapm,
+						      dai->dapm_routes,
+						      dai->num_dapm_routes);
+			if (ret)
+				return ret;
+		}
 	}
 
-	snd_soc_dapm_new_widgets(component->card);
+	ret = snd_soc_dapm_new_widgets(component->card);
 
-	return 0;
+	return ret;
 
 }
 EXPORT_SYMBOL_GPL(mtk_afe_add_sub_dai_control);
-- 
2.43.0

[PATCH 2/2] ASoC: mediatek: common: Propagate PCM buffer errors

From: <hidden>
Date: 2026-09-10 11:44:12

From: bui duc phuc <redacted>

mtk_afe_pcm_new() currently ignores the return value of
snd_pcm_set_managed_buffer_all().

Return the error to the ASoC core.

Signed-off-by: bui duc phuc <redacted>
---
 sound/soc/mediatek/common/mtk-afe-platform-driver.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sound/soc/mediatek/common/mtk-afe-platform-driver.c b/sound/soc/mediatek/common/mtk-afe-platform-driver.c
index c1869b38c9e7..84218d137143 100644
--- a/sound/soc/mediatek/common/mtk-afe-platform-driver.c
+++ b/sound/soc/mediatek/common/mtk-afe-platform-driver.c
@@ -151,11 +151,10 @@ int mtk_afe_pcm_new(struct snd_soc_component *component,
 	struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component);
 
 	size = afe->mtk_afe_hardware->buffer_bytes_max;
-	snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV, afe->dev,
-				       afe->preallocate_buffers ? size : 0,
-				       size);
 
-	return 0;
+	return snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV, afe->dev,
+					      afe->preallocate_buffers ? size : 0,
+					      size);
 }
 EXPORT_SYMBOL_GPL(mtk_afe_pcm_new);
 
-- 
2.43.0

Re: [PATCH 1/2] ASoC: mediatek: common: Propagate control and DAPM errors

From: Mark Brown <broonie@kernel.org>
Date: 2026-09-10 17:23:42

On Thu, Sep 10, 2026 at 06:43:37PM +0700, phucduc.bui@gmail.com wrote:
From: bui duc phuc <redacted>

mtk_afe_add_sub_dai_control() currently ignores errors from
ASoC control and DAPM setup functions.

Propagate these errors to the caller.
mt8365-afe-pcm.c has:

    {"HW_GAIN1_IN_CH1", "CONNSYS_I2S_CH1", "Hostless FM DL"},

missing a Switch from the control.  I suspect there's other errors; this
really needs to be tested before it can be applied.  Given the general
quality of the driver here and the lack of anything constructive we're
doing with the errors changes like this have high risk and low reward
unless we're actually running the code.

Re: [PATCH 1/2] ASoC: mediatek: common: Propagate control and DAPM errors

From: Bui Duc Phuc <hidden>
Date: 2026-09-11 03:00:54

Hi Mark,

Thank you for your review.
mt8365-afe-pcm.c has:

    {"HW_GAIN1_IN_CH1", "CONNSYS_I2S_CH1", "Hostless FM DL"},

missing a Switch from the control.  I suspect there's other errors; this
really needs to be tested before it can be applied.  Given the general
quality of the driver here and the lack of anything constructive we're
doing with the errors changes like this have high risk and low reward
unless we're actually running the code.
I agree that these changes should ideally be tested on real hardware.
Unfortunately, I don't currently have any MTK boards available for
testing.

If these changes cannot be properly tested, I'm also fine with
dropping this patch.

On a related note: do MediaTek or other hardware vendors typically
provide development boards to independent upstream contributors for
testing purposes? It would make it much easier for contributors like
me to properly validate changes like this one.

Best regards,
Phuc

Re: [PATCH 1/2] ASoC: mediatek: common: Propagate control and DAPM errors

From: Mark Brown <broonie@kernel.org>
Date: 2026-09-11 12:07:15

On Fri, Sep 11, 2026 at 10:00:39AM +0700, Bui Duc Phuc wrote:
On a related note: do MediaTek or other hardware vendors typically
provide development boards to independent upstream contributors for
testing purposes? It would make it much easier for contributors like
me to properly validate changes like this one.
Some might but it's not the norm.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help