You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Dell Pro 14 Plus PB14250 (Core Ultra 7 255U, CS42L43): microphone hw:0,4 capture fails with pcm_read EIO #11271
Both hw:0,4 and plughw:0,4 produce the same read-time error.
PipeWire recording is also affected: an approximately eight-second pw-record
session produced a 48 kHz stereo WAV reporting only 0.512 seconds of audio.
A separate approximately one-second test reported 0.192 seconds.
The recorded audio file playback sounds like it's on a fast-forward rewind.
The issue persists after a complete Arch upgrade, reboot, and full shutdown/power-on.
The hardware microphone-mute/privacy control was checked and is off.
This is a follow up post after deep dive led by GPT-6.1 Sol (High). Sorry for that approach but I am total noob when it comes to sound hardware and firmware. Here's the summary of tested fix and possible root cause.
I've attached the working tplg as txt - remove the txt suffix, github rejected attaching the .tplg file.
Update: the microphone now works with the current kernel and SOF firmware after correcting one input channel-map value in the topology.
Comparing the decoded cached topologies showed that the microphone ALH copier’s input channel map changed between the previously working 2025.12.2-1 package and 2026.09-1:
Previously working topology: 0xffffff10
New topology: 0x00000000
The topology binaries in 2026.09-1 and 2026.09.1-1 are identical, so the September 30 maintenance upgrade did not change this topology.
I patched the original new binary directly, restoring only this input channel-map value to 0xffffff10. Byte comparison confirmed that exactly four bytes changed, with every other byte—including block headers and pipeline indices—preserved.
PipeWire capture, application microphone indicators, and voice transcription also work with the patched topology.
Additional evidence from the broken configuration
With 240-frame periods, kernel tracing showed host DMA period interrupts approximately every 80 ms, rather than the expected 5 ms. PCM position advanced by 240 frames per interrupt, corresponding to approximately 3000 frames/second instead of 48000. /proc/asound pointer observations agreed with this approximately 16× slowdown.
S32_LE also exhibited the original failure/slowdown, so it was not specific to S16_LE.
The suspected mechanism is the IPC4 ALH channel-mask calculation deriving its channel count from ch_map. A zero map can produce a zero count and an invalid GENMASK(step - 1, 0) calculation. I have not captured the resulting runtime channel mask, so that precise mechanism still needs confirmation; the successful four-byte topology correction is experimentally verified.
The temporary workaround selects the patched file through:
options snd_sof tplg_filename=mic-chmap-test.tplg
Could maintainers check why this topology now emits a zero microphone ALH input channel map, and whether the driver should reject or handle that value? I can provide the original and patched binaries, decoded configurations, and kernel trace.
@bardliao I can reproduce the build and will continue with a bisect to see where the wrong value is added. This looks odd as there we don't set a zero chmap anywhere, but yet such values gets into the final tplg (but not across the board, most chmap definitions are expected).
It's not a toolchain error at least, generating v2.14 topologies with the alsa-lib/utils we used for v2.15 release is ok. So this must be a regression in recent topology commits. Bisect in progress....
@altger We have a fix candidate in #11258 . It is possible to build the binary tplg file yourself from source, but let me attach a version here (stable-v2.15 plus PR11258): sof-arl-cs42l43-l0.zip
@kv2019i Hi, thank you.
I just used the tplg you provided and confirm that it fixed the microphone issue. Moreover, yesterday I discovered that laptop internal speakers were affected and not working with my tplg (I'm not using them too often). And your tplg fixed that as well.
Thank you @altger for quick testing! We'll fast path a 2.15.1 release to push this fix out ASAP. I'll move this to firmware component as this is now verified to be a topology problem.
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).
Activity
altger commentedon Sep 30, 2026
This is a follow up post after deep dive led by GPT-6.1 Sol (High). Sorry for that approach but I am total noob when it comes to sound hardware and firmware. Here's the summary of tested fix and possible root cause.
I've attached the working tplg as txt - remove the txt suffix, github rejected attaching the .tplg file.
Update: the microphone now works with the current kernel and SOF firmware after correcting one input channel-map value in the topology.
The working configuration remains:
Dell Pro 14 Plus PB14250, Intel Core Ultra 7 255U
Kernel
7.2.7-arch1-1sof-firmware 2026.09.1-1, running firmware2.15.0.1CS42L43 microphone on
sof-soundwire, PCMhw:0,4Isolated topology change
Comparing the decoded cached topologies showed that the microphone ALH copier’s input channel map changed between the previously working
2025.12.2-1package and2026.09-1:The topology binaries in
2026.09-1and2026.09.1-1are identical, so the September 30 maintenance upgrade did not change this topology.I patched the original new binary directly, restoring only this input channel-map value to
0xffffff10. Byte comparison confirmed that exactly four bytes changed, with every other byte—including block headers and pipeline indices—preserved.Before-and-after results
All tests used direct ALSA capture at S16_LE, 48 kHz, stereo, with PipeWire/WirePlumber stopped during testing.
The original failing configuration now succeeds:
PipeWire capture, application microphone indicators, and voice transcription also work with the patched topology.
Additional evidence from the broken configuration
With 240-frame periods, kernel tracing showed host DMA period interrupts approximately every 80 ms, rather than the expected 5 ms. PCM position advanced by 240 frames per interrupt, corresponding to approximately 3000 frames/second instead of 48000.
/proc/asoundpointer observations agreed with this approximately 16× slowdown.S32_LE also exhibited the original failure/slowdown, so it was not specific to S16_LE.
The suspected mechanism is the IPC4 ALH channel-mask calculation deriving its channel count from
ch_map. A zero map can produce a zero count and an invalidGENMASK(step - 1, 0)calculation. I have not captured the resulting runtime channel mask, so that precise mechanism still needs confirmation; the successful four-byte topology correction is experimentally verified.The temporary workaround selects the patched file through:
Could maintainers check why this topology now emits a zero microphone ALH input channel map, and whether the driver should reject or handle that value? I can provide the original and patched binaries, decoded configurations, and kernel trace.
mic-chmap-test.tplg.txt
charleskeepax commentedon Oct 1, 2026
Hmm... yeah looks like something has changed on the topology side.
@bardliao I am not really familiar enough with the topology stuff, do you think it could relate to this patch from Richard: #11036
bardliao commentedon Oct 1, 2026
Not likely.
hw:0,4is SDW DMIC. So the impacted conf file should besdw-dmic-generic.confkv2019i commentedon Oct 2, 2026
The changed definitions are for the chmap. The working value is for stereo CHMAP:
common_definitions.conf
» CHANNEL_MAP_MONO» » » 0xFFFFFFF0
» CHANNEL_MAP_STEREO» » » 0xFFFFFF10
@bardliao I can reproduce the build and will continue with a bisect to see where the wrong value is added. This looks odd as there we don't set a zero chmap anywhere, but yet such values gets into the final tplg (but not across the board, most chmap definitions are expected).
kv2019i commentedon Oct 2, 2026
It's not a toolchain error at least, generating v2.14 topologies with the alsa-lib/utils we used for v2.15 release is ok. So this must be a regression in recent topology commits. Bisect in progress....
kv2019i commentedon Oct 2, 2026
@altger We have a fix candidate in #11258 . It is possible to build the binary tplg file yourself from source, but let me attach a version here (stable-v2.15 plus PR11258): sof-arl-cs42l43-l0.zip
topology2: sdw-dmic-generic: fix channel map/cfg regression
altger commentedon Oct 5, 2026
@kv2019i Hi, thank you.
I just used the tplg you provided and confirm that it fixed the microphone issue. Moreover, yesterday I discovered that laptop internal speakers were affected and not working with my tplg (I'm not using them too often). And your tplg fixed that as well.
topology2: sdw-dmic-generic: fix channel map/cfg regression
kv2019i commentedon Oct 6, 2026
Thank you @altger for quick testing! We'll fast path a 2.15.1 release to push this fix out ASAP. I'll move this to firmware component as this is now verified to be a topology problem.
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).
v2.15.x: add sof-2.15.1 topology binaries for Intel targets
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
altger commentedon Oct 8, 2026
I confirm that the upstream repo package
sof-firmware 2026.09.2-1fixed the microphone issue. Thank you for your effort, great job.