pipewire does not execute per-input/capture UCM EnableSequence-s on ASoC based cards
I've seen this on the following 2 devices:
- Bay Trail based HP x2 laptop with Intel LPE audio with a RT5640 codec (tried with both the SST and SOF kernel drivers)
- Cherry Trail based "Predia Basic" tablet with Intel LPE audio with a ES8316 codec (only tried with the SOF kernel driver)
On both devices capturing from either the internal mic or a headssetmic does not work with pipewire, inspecting the card mixer settings shows that all controls which should be set to enabled by e.g. /usr/share/alsa/ucm2/codecs/rt5640/HeadsetMic.conf are off.
Running one of:
alsaucm -c bytcr-rt5640 set _verb HiFi set _enadev Mic alsaucm -c bytcr-rt5640 set _verb HiFi set _enadev Headset
From the commandline works around this. I just tried switching between the 2 in gnome-control-center's sound-capplet and it seems that the DisableSequence also does not get run. So if I've manually enabled say the Headset Mic. from the commandline then switching to the internal mic in the capplet does not disable the Headset Mic, nor does it enable the builtin mic.
This is on Fedora 34 with pipewire-0.3.23-1.fc34.x86_64.