Hi everyone
System
- EndeavourOS, KDE Plasma / Wayland
- PipeWire 1.6.8, WirePlumber (latest)
- Laptop: Acer Nitro AN515-58 (board: Jimny_ADH), Intel Alder Lake, Intel SOF audio (
sof-hda-dsp, ALC295 codec) - Hybrid graphics: NVIDIA GPU with HDMI audio also present
The problem
Audio works perfectly after a fresh boot. After suspend (systemctl suspend / lid close) and resume, audio breaks completely every time. A reboot immediately fixes it — nothing else does.
What happens after resume
- WirePlumber CPU usage spikes to ~100%+ and climbs, along with growing memory use
pipewireandpipewire-pulsealso spike to ~25% CPU eachwpctl statushangs indefinitelypactl infonever returns- WirePlumber becomes unkillable via normal means — systemd eventually has to SIGKILL it (
stop-sigterm timed out) - Journal shows repeating:
spa.alsa: poll fd error/hangup (card removed?), removing poll sources - Also many
mod.protocol-pulse: timeout on stream ...entries across different channels
But the card isn’t actually gone
/proc/asound/cardsstill listssof-hda-dspafter the freezeaplay -D hw:2,0 some.wavstill finds and opens the device, starts “Playing WAVE…” — but then fails withChannels count non available- ALSA and PipeWire both still see the speaker/mic nodes; they just don’t produce sound
This makes me think the DSP/firmware side of the SOF driver isn’t being cleanly reinitialized on resume — the control plane responds enough to look present, but the actual PCM/DMA path is dead — and WirePlumber is just spinning/hanging while trying to deal with the broken fd rather than being the root cause.
What I’m trying to capture
I know I need dmesg/journal output from the exact moment of the failure (not filtered/after the ring buffer rotates), plus /sys/kernel/debug/sof/ state while it’s actively broken. Still working on getting a clean capture — happy to post it once I have it.
Questions
- Has anyone else hit this specifically on Alder Lake SOF (
sof-hda-dsp) + Acer Nitro AN515-58 / similar hardware? - Is there a known upstream bug for SOF failing
hda_dsp_set_hw_params_upon_resumeor similar on resume that I should track? - Any known-good combination of kernel +
alsa-sof-firmwareversion for Alder Lake suspend/resume, or should I trydsp_driver=1/power_save=0as a workaround? - Anyone found a way to make WirePlumber fail gracefully here (i.e. not hang/leak) even if the underlying SOF bug isn’t fixed yet, so at least a
systemctl --user restart pipewire wireplumberrecovers without a full reboot?
Happy to provide more logs just want to know exactly what to grab given how fast the dmesg ring buffer seems to rotate through unrelated noise.