[PATCH 2/2] ASoC: mediatek: mt8183: Fix UL1_CH2 I2S0_CH2 routing register
From: HuskerMinion via B4 Relay
Date: Fri Oct 16 2026 - 04:15:25 EST
From: HuskerMinion <mocker-mug-unwoven@xxxxxxxx>
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@xxxxxxxx>
---
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