[PATCH 2/2] ASoC: mediatek: mt8183: Fix UL1_CH2 I2S0_CH2 routing register

HuskerMinion via B4 Relay devnull+mocker-mug-unwoven.duck.com at kernel.org
Fri Oct 16 01:14:02 PDT 2026


From: HuskerMinion <mocker-mug-unwoven at duck.com>

The "I2S0_CH2" switch of the UL1_CH2 mixer writes AFE_CONN21. That is
the interconnect register for UL1 channel 1 (O21). Channel 2 is O22,
which is AFE_CONN22, as the "ADDA_UL_CH2" switch of the same mixer
already uses.

So enabling the switch routes I2S0 channel 2 into UL1 channel 1, mixed
with channel 1, and UL1 channel 2 gets nothing from I2S0.

Use AFE_CONN22.

Found while adding UL1 capture routes for the four microphones of the
Amazon Echo Show 8 (2nd gen). That board captures from I2S2, so the
I2S0 path itself is only compile tested.

Fixes: d232591c9482 ("ASoC: Mediatek: MT8183: add I2S2 control path from UL2 and UL3")
Signed-off-by: HuskerMinion <mocker-mug-unwoven at duck.com>
---
 sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c b/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c
index d6175da3b..2b2ee0575 100644
--- a/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c
+++ b/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c
@@ -301,7 +301,7 @@ static const struct snd_kcontrol_new memif_ul1_ch1_mix[] = {
 static const struct snd_kcontrol_new memif_ul1_ch2_mix[] = {
 	SOC_DAPM_SINGLE_AUTODISABLE("ADDA_UL_CH2", AFE_CONN22,
 				    I_ADDA_UL_CH2, 1, 0),
-	SOC_DAPM_SINGLE_AUTODISABLE("I2S0_CH2", AFE_CONN21,
+	SOC_DAPM_SINGLE_AUTODISABLE("I2S0_CH2", AFE_CONN22,
 				    I_I2S0_CH2, 1, 0),
 };
 

-- 
2.43.0





More information about the Linux-mediatek mailing list