ASoC: mediatek: common: Propagate control and DAPM errors
Subsystems (3)
PATCH 1/2 ASoC: mediatek: common: Propagate control and DAPM errors
From: bui duc phuc <[email protected]>
mtk_afe_add_sub_dai_control() currently ignores errors from ASoC control and DAPM setup functions.
Propagate these errors to the caller.
--- .../mediatek/common/mtk-afe-platform-driver.c | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-)
sound/soc/mediatek/common/mtk-afe-platform-driver.c +24 -14
@@ -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);
Signature · 1 line
2.43.0
PATCH 2/2 ASoC: mediatek: common: Propagate PCM buffer errors
From: bui duc phuc <[email protected]>
mtk_afe_pcm_new() currently ignores the return value of snd_pcm_set_managed_buffer_all().
Return the error to the ASoC core.
--- sound/soc/mediatek/common/mtk-afe-platform-driver.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
sound/soc/mediatek/common/mtk-afe-platform-driver.c +3 -4
@@ -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);
Signature · 1 line
2.43.0
Mark Brown
maintainerQuoted 6 lines · On Thu, Sep 10, 2026 at 06:43:37PM +0700, [email protected] wrote:
From: bui duc phuc <[email protected]>
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.
Hi Mark,
Thank you for your review.
Quoted 10 lines
mt8365-afe-pcm.chas:{"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
Mark Brown
maintainerQuoted 4 lines · Bui Duc Phuc
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.