Black screen after resume from suspend on Lenovo ThinkPad P1 Gen 2

Bug #1854177 reported by Kyle Altendorf
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Present testing has focused on closing the laptop lid and reopening it. The laptop suspends as expected and resumes as expected (existing ssh sessions start working again) except that the display remains black and calls such as `xset -display :0 dpms force on` hang. The screen remains blank sSometimes for a few minutes, sometimes for many. In the example log it was 10 minutes and a few seconds before the display turned back on. One time trying to capture a log of the recovery I gave up after 70 minutes. While the display is black `/var/log/Xorg.0.log` repeats the following lines once per second.

[ 119.384] (WW) modeset(0): hotplug event: connector 86's link-state is BAD, tried resetting the current mode. You may be leftwith a black screen if this fails...
[ 119.386] (II) modeset(0): EDID vendor "SDC", prod id 16705
[ 119.386] (II) modeset(0): Printing DDC gathered Modelines:
[ 119.386] (II) modeset(0): Modeline "3840x2160"x0.0 545.12 3840 3888 3920 4160 2160 2164 2168 2184 +hsync -vsync (131.0 kHz eP)

This stops when the display turns on and no other messages are logged.

The journalctl log has a much longer repeated sequence of messages. I haven't confirmed exact matching of the whole repeated block but here's a snippet reporting a failure.

Nov 27 00:02:32 p1 kernel: [drm:intel_dp_link_training_clock_recovery [i915]] Using LINK_RATE_SET value 02
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using signal levels 00000000
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using vswing level 0
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using pre-emphasis level 0
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_program_link_training_pattern [i915]] Using DP training pattern TPS1
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using signal levels 04000000
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using vswing level 1
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using pre-emphasis level 0
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using signal levels 07000000
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using vswing level 2
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using pre-emphasis level 0
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_link_training_clock_recovery [i915]] Max Voltage Swing reached
Nov 27 00:02:32 p1 kernel: [drm:intel_dp_start_link_train [i915]] [CONNECTOR:86:eDP-1] Link Training failed at link rate = 540000, lane count = 4

When the display turned back on I instead get the following success message.

Nov 27 00:07:22 p1 kernel: [drm:intel_dp_link_training_clock_recovery [i915]] Using LINK_RATE_SET value 02
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using signal levels 00000000
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using vswing level 0
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using pre-emphasis level 0
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_program_link_training_pattern [i915]] Using DP training pattern TPS1
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using signal levels 04000000
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using vswing level 1
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using pre-emphasis level 0
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using signal levels 07000000
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using vswing level 2
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_set_signal_levels [i915]] Using pre-emphasis level 0
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_link_training_clock_recovery [i915]] clock recovery OK
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_program_link_training_pattern [i915]] Using DP training pattern TPS3
Nov 27 00:07:22 p1 kernel: [drm:intel_dp_start_link_train [i915]] Channel EQ done. DP Training successful

I tested the mainline .deb package for 5.3.13 and it did not exhibit this issue. When I open the laptop lid after suspending by closing it the cursor reliably displays within about 1 second and the lock screen is shown within about another second. I further checked versions and the last mainline .deb to exhibit the issue is 5.3.11. 5.3.12 works well. Looking at the changelog for 5.3.12 showed the following two commits referencing i915 (don't let me mislead you here of course, just trying to provide as much info as possible). The first one strikes me as relevant but I haven't applied that patch to the Ubuntu 5.3.0-23 kernel and built it for testing.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f216a8507153578efc309c821528a6b81628cd2
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed77d88752aea56b33731aee42e7146379b90769

ProblemType: Bug
DistroRelease: Ubuntu 19.10
Package: linux-image-5.3.0-23-generic 5.3.0-23.25
ProcVersionSignature: Ubuntu 5.3.0-23.25-generic 5.3.7
Uname: Linux 5.3.0-23-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu8.2
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: altendky 1461 F.... pulseaudio
CurrentDesktop: KDE
Date: Wed Nov 27 10:44:46 2019
InstallationDate: Installed on 2019-11-26 (0 days ago)
InstallationMedia: Kubuntu 19.10 "Eoan Ermine" - Release amd64 (20191017)
MachineType: LENOVO 20QTCTO1WW
ProcFB: 0 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.3.0-23-generic root=/dev/mapper/lvm_group-root ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-5.3.0-23-generic N/A
 linux-backports-modules-5.3.0-23-generic N/A
 linux-firmware 1.183.2
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/17/2019
dmi.bios.vendor: LENOVO
dmi.bios.version: N2OET40W (1.27 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20QTCTO1WW
dmi.board.vendor: LENOVO
dmi.board.version: SDK0T08861 WIN
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.modalias: dmi:bvnLENOVO:bvrN2OET40W(1.27):bd10/17/2019:svnLENOVO:pn20QTCTO1WW:pvrThinkPadP1Gen2:rvnLENOVO:rn20QTCTO1WW:rvrSDK0T08861WIN:cvnLENOVO:ct10:cvrNone:
dmi.product.family: ThinkPad P1 Gen 2
dmi.product.name: 20QTCTO1WW
dmi.product.sku: LENOVO_MT_20QT_BU_Think_FM_ThinkPad P1 Gen 2
dmi.product.version: ThinkPad P1 Gen 2
dmi.sys.vendor: LENOVO

Revision history for this message
Kyle Altendorf (sda) wrote :
Revision history for this message
Kyle Altendorf (sda) wrote :
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
AaronMa (mapengyu) wrote :

Thanks, Kyle

These 2 commits should be merged in the next Ubuntu-kernel release.
Please try when it is avaiaible.

Revision history for this message
Kyle Altendorf (sda) wrote :

Looks good in master-next. I just noticed 5.3.0-24 was out and it exhibits the black screen. But, if I am reading it correctly 5.3.0-24 was tagged 3 weeks ago. I'll keep an eye out for the next one. Unless you meant something other than the linux-image-5.3.0-xx-generic package?

Revision history for this message
Kyle Altendorf (sda) wrote :

Looks good in 5.3.0-40-generic. As always, thanks for the help here and in general.

Changed in linux (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.