Fix onboard audio: use amixer instead of broken alsaucm for DSP routing
Validate and Test / validate-patches (push) Failing after 13s

alsaucm set _verb HiFi runs without error but doesn't actually apply
mixer controls on this board. Use direct amixer cset commands instead.
- RX_MACRO RX0/RX1 MUX = AIF1_PB
- RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1 = 1
- RX INT0_1/INT1_1 INTERP = MIX1
- RX INT0_1/INT1_1 MIX1 INP0 = RX0/RX1
This commit is contained in:
2026-06-24 18:10:59 -07:00
parent 61be770746
commit eff3c45849
+11 -6
View File
@@ -64,13 +64,18 @@ fi
if [ "$MODE" = "onboard" ] || [ "$MODE" = "i2s" ]; then
info "Mode: Onboard audio (PMIC headphone / line out on JMISC)"
AUDIO_OPTS=(-audiooutdev 0 -inchannels 0 -outchannels 1)
# Apply ALSA UCM HiFi verb to configure DSP routing (required for audio)
if command -v alsaucm &>/dev/null; then
alsaucm -c hw:0 set _verb HiFi 2>/dev/null && \
info " UCM HiFi verb applied" || \
info " UCM HiFi verb failed"
# Configure ALSA mixer for onboard audio (jack detection broken, set manually)
if command -v amixer &>/dev/null; then
amixer -c 0 cset name='RX_MACRO RX0 MUX' AIF1_PB 2>/dev/null
amixer -c 0 cset name='RX_MACRO RX1 MUX' AIF1_PB 2>/dev/null
amixer -c 0 cset name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 1 2>/dev/null
amixer -c 0 cset name='RX INT0_1 INTERP' 'RX INT0_1 MIX1' 2>/dev/null
amixer -c 0 cset name='RX INT1_1 INTERP' 'RX INT1_1 MIX1' 2>/dev/null
amixer -c 0 cset name='RX INT0_1 MIX1 INP0' RX0 2>/dev/null
amixer -c 0 cset name='RX INT1_1 MIX1 INP0' RX1 2>/dev/null
info " ALSA mixer configured for onboard audio"
else
info " alsaucm not found — skipping UCM config"
info " amixer not found — skipping mixer config"
fi
fi