My Dell XPS Laptop microphone stopped working after recent Arch Linux updates. The problem was solved by downgrading the sof-firmware version to 2025.12.2, after a debugging conversation with ChatGPT which identified the problems using various ALSA commands. Below is a ChatGPT writeup of the bug, which I've read through and contains many outputs from shell commands I executed (though I have little knowledge about hardware).
Description
The internal microphone on a Meteor Lake-P laptop stopped working after upgrading from:
to:
The speaker continues to work. Downgrading only sof-firmware restores the microphone after reboot.
The microphone is exposed through the CS42L43 SoundWire codec and PCM device 4:
card 1: sofsoundwire [sof-soundwire], device 4: Microphone
With sof-firmware 2026.09.1-1, ALSA can open the PCM and accepts its hardware parameters, but the first read fails with Input/output error.
Linux distribution context
The reported capture failure and ALSA reproduction describe the SOF issue generally. Package and pacman information are specific to the Arch Linux laptop.
Hardware/software
Platform: Intel Meteor Lake-P
Audio controller: Intel Meteor Lake-P HD Audio Controller (`8086:7e28`, revision 20)
Audio codec: Cirrus Logic CS42L43 SmartMic over SoundWire
Card: sof-soundwire
Internal microphone PCM: hw:1,4
Audio subsystem: Dell (`1028:0c62`)
Exact laptop model: Dell XPS 16 9640
BIOS version: 1.23.0
Broken Arch Linux package:
sof-firmware 2026.09.1-1
SOF firmware reported by kernel: 2.15.0.1
Working Arch Linux package:
Other Arch Linux packages:
alsa-ucm-conf 1.2.16.1-1
alsa-lib 1.2.16.1-1
Arch Linux kernel packages installed:
linux 7.2.8.arch1-2
linux-lts 6.18.54-2
The issue occurred with both kernels. The reported running kernel was 7.2.8-arch1-2.
The controller is bound to sof-audio-pci-intel-mtl; the kernel also lists snd_sof_pci_intel_mtl and snd_hda_intel as available modules.
Steps to reproduce
With sof-firmware 2026.09.1-1 installed:
Output includes:
**** List of CAPTURE Hardware Devices ****
card 1: sofsoundwire [sof-soundwire], device 1: Jack In (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofsoundwire [sof-soundwire], device 4: Microphone (*) []
Subdevices: 0/1
Subdevice #0: subdevice #0
The internal microphone advertises:
FORMAT: S16_LE S24_LE S32_LE
CHANNELS: 2
RATE: 48000
Direct ALSA capture then fails:
arecord -D hw:1,4 -f S16_LE -r 48000 -c 2 -d 5 /tmp/mic.wav
Result:
Recording WAVE '/tmp/mic.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
arecord: pcm_read:2285: read error: Input/output error
The same failure occurs with:
arecord -D hw:1,4 -f S24_LE -r 48000 -c 2 -d 5 /tmp/mic-s24.wav
arecord -D hw:1,4 -f S32_LE -r 48000 -c 2 -d 5 /tmp/mic-s32.wav
arecord -D plughw:1,4 -f S16_LE -r 48000 -c 2 -d 5 /tmp/mic-plug.wav
The failure occurs with PipeWire bypassed, using ALSA directly.
The other capture PCM opens successfully:
arecord -D hw:1,1 -f S16_LE -r 48000 -c 2 -d 5 /tmp/jack.wav
That endpoint is the headset/line input and was not expected to contain a signal during testing.
UCM and mixer checks
UCM identifies the internal microphone as PCM 4:
CapturePCM/Mic=_ucm0001.hw:sofsoundwire,4
The microphone device can be enabled with:
set _verb HiFi
set _enadev Mic
The CS42L43 routing controls after enabling the UCM microphone device were:
cs42l43 DP1TX1 Input = Decimator 3
cs42l43 DP1TX2 Input = Decimator 4
cs42l43 DP1TX3 Input = None
cs42l43 DP1TX4 Input = None
The decimator switches were enabled:
cs42l43 Decimator 1 Switch = on
cs42l43 Decimator 2 Switch = on
cs42l43 Decimator 3 Switch = on
cs42l43 Decimator 4 Switch = on
Therefore this does not appear to be simply a PipeWire source-selection issue or an obviously disabled UCM/mixer route.
Kernel log from the broken boot
The DSP and topology initialize successfully:
snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
acpi device:2c: find_sdca_function: SDCA function SmartMic (type 3) at 0x2
sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 0
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/mtl
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-mtl-cs42l43-l0-cs35l56-l23.tplg
sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.15.0.1
sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.15.0.1
sof-audio-pci-intel-mtl 0000:00:1f.3: loading topology 1: intel/sof-ace-tplg/sof-sdca-mic-id4.tplg
There are no new kernel messages when arecord produces the EIO failure. The boot log contains no obvious firmware-load failure, DSP crash, IPC timeout, or SoundWire enumeration failure.
Regression test (Arch Linux)
After installing the older cached package:
sudo pacman -U /var/cache/pacman/pkg/sof-firmware-2025.12.2-1-x86_64.pkg.tar.zst
sudo reboot
the internal microphone worked immediately after reboot.
The same ALSA test then succeeded:
arecord -D hw:1,4 -f S16_LE -r 48000 -c 2 -d 5 /tmp/mic.wav
No PipeWire, WirePlumber, kernel, or UCM package changes were made during this A/B test.
Expected behavior
The internal microphone PCM should record audio:
arecord -D hw:1,4 -f S16_LE -r 48000 -c 2 -d 5 /tmp/mic.wav
Actual behavior
With sof-firmware 2026.09.1-1, the PCM opens but the first read fails:
arecord: pcm_read:2285: read error: Input/output error
Workaround (Arch Linux)
Downgrading to:
restores the microphone. The newer package is currently held in /etc/pacman.conf:
Suspected regression area
The regression may involve one of the following files or their interaction:
intel/sof-ipc4/mtl/sof-mtl.ri
intel/sof-ipc4-lib/mtl/
intel/sof-ace-tplg/sof-sdca-mic-id4.tplg
The affected path is specifically the Meteor Lake + CS42L43 SmartMic/SoundWire capture path. Speaker playback remains functional.
System diagnostics (Arch Linux host)
uname -a
sudo dmidecode -s system-product-name
sudo dmidecode -s bios-version
lspci -nnk -s 00:1f.3
pacman -Q sof-firmware alsa-ucm-conf alsa-lib linux linux-lts
Output:
Linux xps-laptop 7.2.8-arch1-2 #1 SMP PREEMPT_DYNAMIC Thu, 01 Oct 2026 17:24:20 +0000 x86_64 GNU/Linux
System product name: XPS 16 9640
BIOS version: 1.23.0
00:1f.3 Audio device [0403]: Intel Corporation Meteor Lake-P HD Audio Controller [8086:7e28] (rev 20)
Subsystem: Dell Device [1028:0c62]
Kernel driver in use: sof-audio-pci-intel-mtl
Kernel modules: snd_sof_pci_intel_mtl, snd_hda_intel
sof-firmware 2025.12.2-1
alsa-ucm-conf 1.2.16.1-1
alsa-lib 1.2.16.1-1
linux 7.2.8.arch1-2
linux-lts 6.18.54-2
My Dell XPS Laptop microphone stopped working after recent Arch Linux updates. The problem was solved by downgrading the sof-firmware version to 2025.12.2, after a debugging conversation with ChatGPT which identified the problems using various ALSA commands. Below is a ChatGPT writeup of the bug, which I've read through and contains many outputs from shell commands I executed (though I have little knowledge about hardware).
Description
The internal microphone on a Meteor Lake-P laptop stopped working after upgrading from:
to:
The speaker continues to work. Downgrading only
sof-firmwarerestores the microphone after reboot.The microphone is exposed through the CS42L43 SoundWire codec and PCM device 4:
With
sof-firmware 2026.09.1-1, ALSA can open the PCM and accepts its hardware parameters, but the first read fails withInput/output error.Linux distribution context
The reported capture failure and ALSA reproduction describe the SOF issue generally. Package and
pacmaninformation are specific to the Arch Linux laptop.Hardware/software
Exact laptop model: Dell XPS 16 9640
BIOS version:
1.23.0Broken Arch Linux package:
Working Arch Linux package:
Other Arch Linux packages:
Arch Linux kernel packages installed:
The issue occurred with both kernels. The reported running kernel was
7.2.8-arch1-2.The controller is bound to
sof-audio-pci-intel-mtl; the kernel also listssnd_sof_pci_intel_mtlandsnd_hda_intelas available modules.Steps to reproduce
With
sof-firmware 2026.09.1-1installed:Output includes:
The internal microphone advertises:
Direct ALSA capture then fails:
Result:
The same failure occurs with:
The failure occurs with PipeWire bypassed, using ALSA directly.
The other capture PCM opens successfully:
That endpoint is the headset/line input and was not expected to contain a signal during testing.
UCM and mixer checks
UCM identifies the internal microphone as PCM 4:
The microphone device can be enabled with:
The CS42L43 routing controls after enabling the UCM microphone device were:
The decimator switches were enabled:
Therefore this does not appear to be simply a PipeWire source-selection issue or an obviously disabled UCM/mixer route.
Kernel log from the broken boot
The DSP and topology initialize successfully:
There are no new kernel messages when
arecordproduces theEIOfailure. The boot log contains no obvious firmware-load failure, DSP crash, IPC timeout, or SoundWire enumeration failure.Regression test (Arch Linux)
After installing the older cached package:
the internal microphone worked immediately after reboot.
The same ALSA test then succeeded:
No PipeWire, WirePlumber, kernel, or UCM package changes were made during this A/B test.
Expected behavior
The internal microphone PCM should record audio:
Actual behavior
With
sof-firmware 2026.09.1-1, the PCM opens but the first read fails:Workaround (Arch Linux)
Downgrading to:
restores the microphone. The newer package is currently held in
/etc/pacman.conf:IgnorePkg = sof-firmwareSuspected regression area
The regression may involve one of the following files or their interaction:
The affected path is specifically the Meteor Lake + CS42L43 SmartMic/SoundWire capture path. Speaker playback remains functional.
System diagnostics (Arch Linux host)
Output: