Audio completely breaks after sleep/resume (works fine after reboot) Intel SOF, EndeavourOS

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
  • pipewire and pipewire-pulse also spike to ~25% CPU each
  • wpctl status hangs indefinitely
  • pactl info never 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/cards still lists sof-hda-dsp after the freeze
  • aplay -D hw:2,0 some.wav still finds and opens the device, starts “Playing WAVE…” — but then fails with Channels 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

  1. Has anyone else hit this specifically on Alder Lake SOF (sof-hda-dsp) + Acer Nitro AN515-58 / similar hardware?
  2. Is there a known upstream bug for SOF failing hda_dsp_set_hw_params_upon_resume or similar on resume that I should track?
  3. Any known-good combination of kernel + alsa-sof-firmware version for Alder Lake suspend/resume, or should I try dsp_driver=1/power_save=0 as a workaround?
  4. 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 wireplumber recovers 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.