DPMS causes audio/modestting deadlock on intel Gemini lake J5005
For the past month or 2 every time my screen goes to sleep i cannot wake the computer due to a dead lock state. I can ssh into the computer but it cannot be rebooted or shutdown and the Xorg task cannot be killed. I also cannot access the other virtual consoles (ALT+FX) Full dmesg attached.
I can recreate the issue by forcing DPMS with the following command:
xset dpms force off
-
-- system architecture: ("uname -m") x86_64
-
-- kernel version: ("uname -r"). 5.9.2-arch1-1
-
-- Linux distribution arch linux
-
-- Machine or mother board model (use dmidecode if needed) Dell wyse 5070 with intel J5005 Base Board Information Manufacturer: Dell Inc. Product Name: 0K6VXP Version: A00 Serial Number: xxxxxremovedxxxxxxxx Asset Tag: Not Specified Features: Board is a hosting board Board is replaceable Location In Chassis: Not Specified Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0
-
-- Display connector: (such as HDMI, DP, eDP, ...) Displayport with audio over displayport
sudo cat /sys/class/drm/card0/error No error state collected
[ 368.490784] INFO: task Xorg:1322 blocked for more than 122 seconds.
[ 368.490796] Not tainted 5.9.2-arch1-1 #1
[ 368.490801] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 368.490807] task:Xorg state:D stack: 0 pid: 1322 ppid: 1321 flags:0x00004080
[ 368.490815] Call Trace:
[ 368.490835] __schedule+0x292/0x830
[ 368.490847] schedule+0x46/0xf0
[ 368.490855] schedule_preempt_disabled+0x14/0x20
[ 368.490861] __ww_mutex_lock.constprop.0+0x258/0x850
[ 368.490946] drm_modeset_lock+0x31/0xb0 [drm]
[ 368.491120] glk_force_audio_cdclk+0xa3/0x1b0 [i915]
[ 368.491271] i915_audio_component_get_power+0xe0/0x100 [i915]
[ 368.491295] snd_hdac_display_power+0xd7/0x150 [snd_hda_core]
[ 368.491326] hda_codec_runtime_resume+0x61/0x70 [snd_hda_codec]
[ 368.491349] ? hda_call_codec_resume+0x140/0x140 [snd_hda_codec]
[ 368.491357] __rpm_callback+0x7b/0x130
[ 368.491379] ? hda_call_codec_resume+0x140/0x140 [snd_hda_codec]
[ 368.491386] rpm_callback+0x1f/0x70
[ 368.491407] ? hda_call_codec_resume+0x140/0x140 [snd_hda_codec]
[ 368.491413] rpm_resume+0x5d7/0x820
[ 368.491422] __pm_runtime_resume+0x3b/0x60
[ 368.491436] sync_eld_via_acomp+0xbf/0x180 [snd_hda_codec_hdmi]
[ 368.491449] check_presence_and_report+0xab/0xc0 [snd_hda_codec_hdmi]
[ 368.491591] intel_audio_codec_enable+0x12a/0x1a0 [i915]
[ 368.491737] intel_enable_ddi+0x417/0x570 [i915]
[ 368.491750] ? _raw_spin_lock_irqsave+0x26/0x50
[ 368.491876] ? fwtable_write32+0x4c/0x250 [i915]
[ 368.492019] intel_encoders_enable+0x80/0xa0 [i915]
[ 368.492162] hsw_crtc_enable+0x1ca/0x5d0 [i915]
[ 368.492306] intel_enable_crtc+0x53/0x60 [i915]
[ 368.492448] skl_commit_modeset_enables+0x25f/0x540 [i915]
[ 368.492591] intel_atomic_commit_tail+0x309/0x12c0 [i915]
[ 368.492599] ? complete+0x2f/0x40
[ 368.492607] ? _raw_spin_unlock_irqrestore+0x20/0x40
[ 368.492614] ? flush_workqueue_prep_pwqs+0x117/0x130
[ 368.492622] ? flush_workqueue+0x19d/0x3f0
[ 368.492763] intel_atomic_commit+0x36e/0x3f0 [i915]
[ 368.492829] drm_atomic_connector_commit_dpms+0xda/0x100 [drm]
[ 368.492897] drm_mode_obj_set_property_ioctl+0x196/0x3d0 [drm]
[ 368.492967] ? drm_connector_set_obj_prop+0x90/0x90 [drm]
[ 368.493030] drm_connector_property_set_ioctl+0x39/0x60 [drm]
[ 368.493090] drm_ioctl_kernel+0xb2/0x100 [drm]
[ 368.493151] drm_ioctl+0x215/0x390 [drm]
[ 368.493214] ? drm_connector_set_obj_prop+0x90/0x90 [drm]
[ 368.493231] __x64_sys_ioctl+0x83/0xb0
[ 368.493240] do_syscall_64+0x33/0x40
[ 368.493248] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 368.493256] RIP: 0033:0x7faa94d01f6b
[ 368.493259] Code: Unable to access opcode bytes at RIP 0x7faa94d01f41.
[ 368.493262] RSP: 002b:00007ffdaa8967c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 368.493268] RAX: ffffffffffffffda RBX: 00007ffdaa896800 RCX: 00007faa94d01f6b
[ 368.493271] RDX: 00007ffdaa896800 RSI: 00000000c01064ab RDI: 000000000000000a
[ 368.493275] RBP: 00000000c01064ab R08: 00005578c93d6a38 R09: 0000000000000000
[ 368.493278] R10: 0000000000000000 R11: 0000000000000246 R12: 00005578c95c30c0
[ 368.493280] R13: 000000000000000a R14: 0000000000000000 R15: 0000000000000000
[ 368.493337] INFO: task pulseaudio:2046 blocked for more than 122 seconds.
[ 368.493342] Not tainted 5.9.2-arch1-1 #1
[ 368.493346] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 368.493350] task:pulseaudio state:D stack: 0 pid: 2046 ppid: 1198 flags:0x000003a0
[ 368.493355] Call Trace:
[ 368.493364] __schedule+0x292/0x830
[ 368.493374] schedule+0x46/0xf0
[ 368.493379] schedule_preempt_disabled+0x14/0x20
[ 368.493385] __mutex_lock.constprop.0+0x180/0x530
[ 368.493400] hdmi_eld_ctl_info+0x36/0xa0 [snd_hda_codec_hdmi]
[ 368.493423] __snd_ctl_elem_info.constprop.0+0x24/0x120 [snd]
[ 368.493441] snd_ctl_elem_info_user+0x91/0x100 [snd]
[ 368.493470] snd_ctl_ioctl+0x1f4/0x780 [snd]
[ 368.493480] __x64_sys_ioctl+0x83/0xb0
[ 368.493488] do_syscall_64+0x33/0x40
[ 368.493495] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 368.493499] RIP: 0033:0x7fcca62a5f6b
[ 368.493501] Code: Unable to access opcode bytes at RIP 0x7fcca62a5f41.
[ 368.493504] RSP: 002b:00007ffe9b3d5fb8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 368.493509] RAX: ffffffffffffffda RBX: 00007ffe9b3d6610 RCX: 00007fcca62a5f6b
[ 368.493512] RDX: 00007ffe9b3d64a0 RSI: 00000000c1105511 RDI: 0000000000000010
[ 368.493515] RBP: 00007ffe9b3d65f0 R08: 0000000000000000 R09: 0000000000000000
[ 368.493518] R10: 00007fcca62eeec0 R11: 0000000000000246 R12: 00007ffe9b3d64a0
[ 368.493520] R13: 00007ffe9b3d5fd0 R14: 000055dc90f79cb0 R15: 000055dc90f79cb0
[ 396.505942] audit: type=1130 audit(1604290523.723:134): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sshd@0-192.168.1.109:22-192.168.1.107:54585 comm