Skip to content

[Regression] Gemini Lake (glk_da7219_def): "Unbalanced IRQ wake disable" in hda_dsp_resume after S3 resume, audio dead (Dummy Output) on 7.2.14, works on 6.18 LTS #6026

Open

Description

@Rainoutt

Summary
After resuming from S3 suspend on 7.2.14, SOF fails to resume, all PCMs
fail to open with -EINVAL (-22), and userspace only sees a Dummy Output.
The same machine, firmware and userspace work correctly on 6.18.x LTS.
This looks like a regression in SOF system resume / wake IRQ handling.

Hardware / platform

  • Device: Dell Chromebook 3100 (Google Fleex), Intel Gemini Lake
  • Audio controller: 00:0e.0 [8086:3198], driver sof-audio-pci-intel-apl
  • Card: sof-glkda7219max (Google-Fleex-rev5), codec DA7219 + MAX98357A
  • Firmware: MrChromebox coreboot, BIOS "MrChromebox-2609.3 10/28/2026"
  • Suspend mode: deep (S3)

Software

  • Arch Linux, kernel 7.2.14-arch1-1 (BAD)
  • Kernel 6.18. LTS (GOOD)
  • sof-firmware: <pacman -Q sof-firmware>
  • alsa-ucm-conf: <pacman -Q alsa-ucm-conf>
  • PipeWire 1.6.10 + WirePlumber

Steps to reproduce

  1. Boot 7.2.14 with audio working.
  2. Suspend (systemctl suspend, S3 deep) and resume.
  3. wpctl status shows only "Dummy Output".

Expected: audio devices remain available after resume (as on 6.18).
Actual: SOF resume fails; card remains listed in /proc/asound/cards
and driver stays bound, but every PCM open fails.

Key log excerpts
Resume WARNING:

Unbalanced IRQ 125 wake disable
WARNING: kernel/irq/manage.c:892 at irq_set_irq_wake+0x16f/0x250
Workqueue: async async_run_entry_fn
Call Trace:
hda_dsp_resume+0x164/0x1b0 [snd_sof_intel_hda_common]
sof_resume.isra.0+0x51/0x140 [snd_sof]
dpm_run_callback / device_resume / async_resume ...

(RBX = 0xffffffea, i.e. -EINVAL)

Afterwards, every PCM open fails:

sof-audio-pci-intel-apl 0000:00:0e.0: ASoC error (-22): at
snd_soc_pcm_component_pm_runtime_get() on 0000:00:0e.0
Speakers / Headset / HDMI1-3 / DMIC: ASoC error (-22) at
dpcm_be_dai_startup / dpcm_fe_dai_startup

Teardown shows negative use counts that worsen each cycle:

sof_ipc3_tear_down_all_pipelines: widget PCM0P is still in use: count -2
(count -3 after the next failed cycle)

Also present (may be unrelated): da7219 i2c-DLGS7219:00: SRM failed to lock

Observations

  • /proc/asound/cards still lists the card; driver stays bound.
  • Restarting PipeWire/WirePlumber does not help.
  • Unbinding the driver via sysfs hangs.
  • Setting power/control=on after the failure does not help.
  • My analysis (not verified against source): hda_dsp_resume() appears to call
    disable_irq_wake() on the DSP IRQ without a matching enable_irq_wake(),
    returning -EINVAL and leaving the device in an error state.
  • Not bisected yet. Happy to bisect between v6.18 and v7.2 if useful.
  1. System info
    $ uname -a (bad kernel)
    Linux Chromebook 7.2.14-arch1-1 multiple ssp and icelake support #1 SMP PREEMPT_DYNAMIC Fri, 30 Oct 2026 14:32:40 +0000 x86_64 GNU/Linux

Hardware name: Google Fleex/Fleex, BIOS MrChromebox-2609.3 10/28/2026

$ lspci -nnk | grep -A4 -i audio
00:0e.0 Multimedia audio controller [0401]: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio [8086:3198] (rev 06)
DeviceName: Multimedia audio controller
Kernel driver in use: sof-audio-pci-intel-apl
Kernel modules: snd_soc_avs, snd_sof_pci_intel_apl, snd_hda_intel

$ cat /proc/asound/cards
0 [sofglkda7219max]: sof-glkda7219ma - sof-glkda7219max
Google-Fleex-rev5
2. The key WARNING (first error on resume)
[ 9231.690095] ACPI: PM: Preparing to enter system sleep state S3
[ 9231.703410] ACPI: PM: Waking up from system sleep state S3
[ 9231.716798] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io,decodes=io:owns=io+mem
[ 9231.939577] usb 1-7: reset high-speed USB device number 2 using xhci_hcd
[ 9232.068207] ------------[ cut here ]------------
[ 9232.068213] Unbalanced IRQ 125 wake disable
[ 9232.068214] WARNING: kernel/irq/manage.c:892 at irq_set_irq_wake+0x16f/0x250, CPU#1: kworker/u8:0/25486
[ 9232.068223] Modules linked in: [list truncated]
[ 9232.068389] CPU: 1 UID: 0 PID: 25486 Comm: kworker/u8:0 Not tainted 7.2.14-arch1-1 #1 PREEMPT(full) 71ccc3c02e28b5f120c32d0d286d0df48573e295
[ 9232.068393] Hardware name: Google Fleex/Fleex, BIOS MrChromebox-2609.3 10/28/2026
[ 9232.068396] Workqueue: async async_run_entry_fn
[ 9232.068402] RIP: 0010:irq_set_irq_wake+0x171/0x250
[ 9232.068407] RSP: 0000:ffffcaf406083d18 EFLAGS: 00010046
[ 9232.068409] RAX: 0000000000000000 RBX: 00000000ffffffea RCX: ffff8ac94346f200
[ 9232.068411] RDX: 0000000000000001 RSI: 000000000000007d RDI: ffffffffa1908260
[ 9232.068412] RBP: 000000000000007d R08: 0000000000000246 R09: 0000000000000001
[ 9232.068422] Call Trace:
[ 9232.068425]
[ 9232.068433] hda_dsp_resume+0x164/0x1b0 [snd_sof_intel_hda_common 265d3f2183e436ebd238d1d17f5cc39f6093070e]
[ 9232.068462] ? __pfx_pci_pm_resume+0x10/0x10
[ 9232.068468] ? pci_pm_resume+0x72/0x140
[ 9232.068471] sof_resume.isra.0+0x51/0x140 [snd_sof 22ee7e8f150923e37379aa1920fbcc6fab0328e5]
[ 9232.068526] dpm_run_callback+0x62/0x190
[ 9232.068531] ? dpm_wait_for_superior+0x13d/0x1a0
[ 9232.068534] device_resume+0x19c/0x2a0
[ 9232.068537] async_resume+0x21/0x30
[ 9232.068540] async_run_entry_fn+0x36/0x160
[ 9232.068543] process_one_work+0x19f/0x370
[ 9232.068547] worker_thread+0x1b1/0x310
[ 9232.068556] kthread+0xe4/0x120
[ 9232.068564] ret_from_fork+0x2a7/0x330
[ 9232.068567] ret_from_fork_asm+0x1a/0x30
[ 9232.068572]
[ 9232.068573] ---[ end trace 0000000000000000 ]---
[ 9232.123194] PM: suspend exit
3. Teardown with negative counts

These appeared just before the WARNING above, so the DSP was already in a bad state from an earlier failed cycle.

[ 9231.385026] sof-audio-pci-intel-apl 0000:00:0e.0: sof_ipc3_tear_down_all_pipelines: widget BUF2.0 is still in use: count -2
[ 9231.385037] sof-audio-pci-intel-apl 0000:00:0e.0: sof_ipc3_tear_down_all_pipelines: widget PCM1P is still in use: count -2
[ 9231.385069] sof-audio-pci-intel-apl 0000:00:0e.0: sof_ipc3_tear_down_all_pipelines: widget PCM0P is still in use: count -2
(all pipeline widgets listed; same pattern)

[ 9239.184895] sof-audio-pci-intel-apl 0000:00:0e.0: sof_ipc3_tear_down_all_pipelines: widget PIPELINE.7.HDA5.OUT is still in use: count -3
[ 9239.185741] sof-audio-pci-intel-apl 0000:00:0e.0: sof_ipc3_tear_down_all_pipelines: widget PCM1P is still in use: count -3
(all pipeline widgets listed; same pattern, now -3)
4. PCM open failures after resume
[14029.043093] sof-audio-pci-intel-apl 0000:00:0e.0: ASoC error (-22): at snd_soc_pcm_component_pm_runtime_get() on 0000:00:0e.0
[14029.043109] iDisp3: ASoC error (-22): at __soc_pcm_open() on iDisp3
[14029.043113] HDMI3: ASoC error (-22): at dpcm_be_dai_startup() on HDMI3
[14029.043116] HDMI3: ASoC error (-22): at dpcm_fe_dai_startup() on HDMI3
[14029.052584] sof-audio-pci-intel-apl 0000:00:0e.0: ASoC error (-22): at snd_soc_pcm_component_pm_runtime_get() on 0000:00:0e.0
[14029.052593] SSP2-Codec: ASoC error (-22): at __soc_pcm_open() on SSP2-Codec
[14029.052597] Headset: ASoC error (-22): at dpcm_be_dai_startup() on Headset
[14029.054777] SSP1-Codec: ASoC error (-22): at __soc_pcm_open() on SSP1-Codec
[14029.054781] Speakers: ASoC error (-22): at dpcm_be_dai_startup() on Speakers
[14029.063231] dmic01: ASoC error (-22): at __soc_pcm_open() on dmic01
(same pattern repeats for every PCM on each open attempt)
5. Userspace result
$ wpctl status (PipeWire 1.6.10, WirePlumber)
Audio
├─ Devices:
│ 50. Celeron/Pentium Silver Processor High Definition Audio [alsa]
├─ Sinks:
│ * 38. Dummy Output [vol: 0.45]

Settings
└─ Default Configured Devices:
0. Audio/Sink alsa_output.pci-0000_00_0e.0-platform-glk_da7219_def.HiFi__Headphones__sink
6. Possibly unrelated
da7219 i2c-DLGS7219:00: SRM failed to lock (repeats frequently, also after resumes)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions