Intel UHD 630/Thinkpad P1 Gen2 HDMI doesn't work if plugged in before boot
Original bug filed at Launchpad here: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1886230
They suggested a kernel patch which didn't fix the issue, then suggested I file a report here instead. This report is different because the issue seems to have changed slightly after some system updates.
I have a Thinkpad P1 Gen 2. This specific machine was customized to NOT have a discrete Nvidia GPU. It ONLY has an integrated Intel UHD 630 GPU.
This is not a hardware issue as Windows seems to handle things correctly.
The issue
If an external monitor is connected to the HDMI port before the system boots, the monitor works throughout the boot process, but becomes disabled after boot completes and GDM appears. Unplugging/replugging after this occurs does not fix the port.
When the HDMI is broken, xrandr
reports the external monitor as "connected", at a series of incorrect resolutions. Unplugging the HDMI cable and running xrandr
again still reports the monitor as "connected" even though it isn't.
To re-enable the port:
-
Shut down (not soft reboot) the machine
-
Unplug the HDMI cable
-
Boot the machine with the cable unplugged
-
Log in past GDM, then plug the HDMI cable in. At this point the external monitor works as expected.
However, if the user performs these steps and gets a working HDMI port, the port stops working again if the user logs out to GDM (!) or does a soft reboot.
After HDMI is working, xrandr
correctly describes the external monitor and its resolutions.
Steps to reproduce
-
Before booting, plug an external monitor in to the HDMI port.
-
Boot the machine. Observe that the monitor works during boot, then turns off at GDM.
More info
-
How often does the steps listed above trigger the issue? Every time.
-
Which platforms and features are affected? Ubuntu 20.04 running stock 5.4.0 kernel, as well as the 5.8.0-rc3 kernel.
-
System architecture: x86_64
-
Kernel version: 5.4.0-40-generic
-
Machine or mother board model: Thinkpad P1 Gen2. Output of
dmidecode
attached. -
Display connector: HDMI
Attached: dmesg-output dmidecode-output
Note: The dmesg attachment is running kernel 5.8.0-rc3 with drm.debug=0x1e log_buf_len=1M
on the Linux command line.