GPU crash after connecting HDMI cable on GeminiLake with CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM enabled
Computer hang when connecting external screen by HDMI on Intel GeminiLake UHD Graphics 600 with kernel 5.9.14-1.1.gc648a46 or later and with CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM enabled, works as expected with 5.8.15-1.1.gc680e93 and previous.
Steps to reproduce the issue:
- Turn on a computer with Intel GeminiLake UHD Graphics 600 and boot with kernel 5.9.14-1.1.gc648a46 or up and CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM enabled.
- Connect an external screen by HDMI
- With or without an X server both screens turn black without turning off and neither of them ever recover.
This always trigger the issue.
The most recent kernel that was tested was 5.12.rc4-1.1.g094141b, it has this issue too.
Linux 5.8.15-1.1.gc680e93 all the way down to 5.3.12-1.1.g60a2268 was also tested and those did not had this issue. It works exactly as expected with both screens no matter how many times the screen on the HDMI ports is reconnected, or if any other display related settings are changed like resolution or position. This is likely a regression but still bisect_pending between kernel 5.8.15-1.1.gc680e93 and 5.9.14-1.1.gc648a46
- System information:
- -- system architecture: x86_64
- -- kernel version: 5.12.rc4-1.1.g094141b
- -- Linux distribution: OpenSUSE Tumbleweed
- -- Machine: VivoBook 12" ASUS Laptop E203MAS E203MA
- -- Display connector: HDMI
I can probably provide the dmesg and info in /sys/class/drm/card0/error too but first I have some questions. The how to make an issue guide says
add
drm.debug=0x1e log_buf_len=1M
to your kernel command line, then reboot and reproduce the issue again. Make sure to attach the full dmesg all the way from boot.
This means I must reproduce the bug before saving the dmesg and /sys/class/drm/card0/error info, but the problem is that with or without X server I lose all screens and any possibility to interface with the computer as it is most likely completely hanged after reproducing the issue. Is there a way to get the information in dmesg and /sys/class/drm/card0/error from the previous boot after having to hard reset the machine?