Repository navigation
[BUG] Internal CS42L43 microphone returns EIO with sof-firmware 2026.09.1 / SOF 2.15 on Meteor Lake SoundWire #11259
Description
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:
sof-firmware 2025.12.2-1
to:
sof-firmware 2026.09.1-1
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:
sof-firmware 2025.12.2-1
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:
arecord -lOutput 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.wavResult:
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.wavThe 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.wavThat 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 rebootthe 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.wavNo 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.wavActual 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:
sof-firmware 2025.12.2-1
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:
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-ltsOutput:
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
Activity
gewitternacht commentedon Oct 5, 2026
I had the same issue on Arch Linux on a Dell Pro 16 Plus PB16250 (kernel
7.2.7-arch1-1): there was either no sound or some rhythmic squeaking noises from my built-in microphone, and I too gotarecord: pcm_read:2285: read error: Input/output errorwhile debugging the problem.Downgrading
sof-firmwarefrom2026.09-1to2025.12.2-1fixed it.Maybe these details from a kernel log (while the mic was not working) help with identifying the root cause:
kv2019i commentedon Oct 6, 2026
Fixes here #11258 and #11268 . Already merged to SOF main and backported to stable-v2.15. We'll be doing a new 2.15.x release soon.
kv2019i commentedon Oct 6, 2026
SOF v2.15.1 tagged. Release binaries for all targets are available for testing in thesofproject/sof-bin#214 . ETA to merge and get a release out tomorrow (Wed).
kv2019i commentedon Oct 7, 2026
Fix released in https://github.com/thesofproject/sof-bin/releases/tag/v2026.09.2
Updates on Oct 07, 2026 18:18