[PATCH 12/13] ASoC: mediatek: mt8189: Propagate TDM clock errors

From: phucduc . bui

Date: Thu Sep 10 2026 - 09:06:25 EST


From: bui duc phuc <phucduc.bui@xxxxxxxxx>

mtk_tdm_bck_en_event() and mtk_tdm_mck_en_event() currently ignore
errors returned by the MCK enable and disable functions.

Propagate these errors.

Fixes: 9f202872ba04 ("ASoC: mediatek: mt8189: support TDM in platform driver")
Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
---
sound/soc/mediatek/mt8189/mt8189-dai-tdm.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/sound/soc/mediatek/mt8189/mt8189-dai-tdm.c b/sound/soc/mediatek/mt8189/mt8189-dai-tdm.c
index 5d68a55ccc45..1b51027c6cf4 100644
--- a/sound/soc/mediatek/mt8189/mt8189-dai-tdm.c
+++ b/sound/soc/mediatek/mt8189/mt8189-dai-tdm.c
@@ -261,22 +261,23 @@ static int mtk_tdm_bck_en_event(struct snd_soc_dapm_widget *w,
struct mt8189_afe_private *afe_priv = afe->platform_priv;
int dai_id = get_tdm_id_by_name(w->name);
struct mtk_afe_tdm_priv *tdm_priv = afe_priv->dai_priv[dai_id];
+ int ret = 0;

dev_dbg(cmpnt->dev, "name %s, event 0x%x, dai_id %d, bck: %d\n",
w->name, event, dai_id, tdm_priv->bck_rate);

switch (event) {
case SND_SOC_DAPM_PRE_PMU:
- mt8189_mck_enable(afe, tdm_priv->bck_id, tdm_priv->bck_rate);
+ ret = mt8189_mck_enable(afe, tdm_priv->bck_id, tdm_priv->bck_rate);
break;
case SND_SOC_DAPM_POST_PMD:
- mt8189_mck_disable(afe, tdm_priv->bck_id);
+ ret = mt8189_mck_disable(afe, tdm_priv->bck_id);
break;
default:
break;
}

- return 0;
+ return ret;
}

static int mtk_tdm_mck_en_event(struct snd_soc_dapm_widget *w,
@@ -288,23 +289,24 @@ static int mtk_tdm_mck_en_event(struct snd_soc_dapm_widget *w,
struct mt8189_afe_private *afe_priv = afe->platform_priv;
int dai_id = get_tdm_id_by_name(w->name);
struct mtk_afe_tdm_priv *tdm_priv = afe_priv->dai_priv[dai_id];
+ int ret = 0;

dev_dbg(cmpnt->dev, "name %s, event 0x%x, dai_id %d, mclk %d\n",
w->name, event, dai_id, tdm_priv->mclk_rate);

switch (event) {
case SND_SOC_DAPM_PRE_PMU:
- mt8189_mck_enable(afe, tdm_priv->mclk_id, tdm_priv->mclk_rate);
+ ret = mt8189_mck_enable(afe, tdm_priv->mclk_id, tdm_priv->mclk_rate);
break;
case SND_SOC_DAPM_POST_PMD:
tdm_priv->mclk_rate = 0;
- mt8189_mck_disable(afe, tdm_priv->mclk_id);
+ ret = mt8189_mck_disable(afe, tdm_priv->mclk_id);
break;
default:
break;
}

- return 0;
+ return ret;
}

static const struct snd_soc_dapm_widget mtk_dai_tdm_widgets[] = {
--
2.43.0