External monitor in sleep mode after waking up from suspend
Hello
Hardware
- Lenovo ThinkPad T480s (with Intel UHD 620 only).
- Lenovo ThinkPad Thunderbolt 3 Docking station (40AC series) connected via Thunderbolt 3 cable with the laptop.
- External monitor connected to the docking station via HDMI. Visible in xrandr as DP1-1.
Software
I am using Arch Linux, with Linux t480s 5.6.13-arch1-1 #1 SMP PREEMPT Thu, 14 May 2020 06:52:53 +0000 x86_64 GNU/Linux
The problem
This external monitor will stay in sleep mode (monitor is not detecting signal from the laptop) after the laptop is woken up from suspend. I am using systemctl suspend
to suspend the laptop.
I have also noticed that, disconnection hdmi cable from the dock and connecting it back will result in the same problem.
Xorg logs
- After normal startup (from power off): Xorg.0.log_startup - monitor is detected very soon (in POST) and all is fine.
- After woken up from suspend: Xorg.0.log_after_hibernation - some errors are visible:
$ diff -u Xorg.0.log_startup Xorg.0.log_after_hibernation | grep EE
...
+[ 70.600] (EE) intel(0): Failed to prepare CRTC for page flipping, disabling TearFree
+[ 70.600] (EE) intel(0): sna_mode_redisplay: page flipping failed, disabling CRTC:72 (pipe=1)
- After unplugging and plugging back the HDMI cable from the dock (Xorg.0.log_hdmi_out):
$ diff -u Xorg.0.log_startup Xorg.0.log_hdmi_out
...
+[ 70.600] (EE) intel(0): Failed to prepare CRTC for page flipping, disabling TearFree
+[ 70.600] (EE) intel(0): sna_mode_redisplay: page flipping failed, disabling CRTC:72 (pipe=1)
+[ 77.691] (II) intel(0): switch to mode 1920x1080@60.0 on DP1-1 using pipe 1, position (0, 0), rotation normal, reflection none
+[ 2445.020] (II) intel(0): Enabled output DP1-1
+[ 2445.020] (II) intel(0): Disabled output DP1-2
+[ 2445.020] (II) intel(0): Disabled output DP1-3
+[ 2454.543] (II) intel(0): Enabled output DP1-1
+[ 2454.543] (II) intel(0): Enabled output DP1-2
+[ 2454.543] (II) intel(0): Enabled output DP1-3
+[ 2454.543] (II) intel(0): Enabled output DP1-1
+[ 2454.544] (II) intel(0): Enabled output DP1-1
+[ 2454.665] (II) intel(0): Enabled output DP1-1
+[ 2454.666] (II) intel(0): Enabled output DP1-1
+[ 2455.094] (II) intel(0): Enabled output DP1-1
+[ 2455.094] (II) intel(0): Enabled output DP1-1
+[ 2469.410] (II) intel(0): switch to mode 1920x1080@60.0 on DP1-1 using pipe 1, position (0, 0), rotation normal, reflection none
Workaround
Typing in blind: xrandr --output DP1-1 --auto
, that will results with:
[ 77.691] (II) intel(0): switch to mode 1920x1080@60.0 on DP1-1 using pipe 1, position (0, 0), rotation normal, reflection none
in logs and the monitor will have display.
Notes
- Laptop's LCD is always working correctly (regardless if there is docking station with external monitor or not).
- I am sure that this HW setup was working correctly some time ago, but after system update it started behaving like that.
- Switching to linux-lts from the distro isn't helping (lts is linux 5.4.41-1 at the moment).
- ctrl+alt+f1 and going back to f7 - isn't working in this case, but on console on f1 I can see picture, but switching back to f7 will cause the monitor to go to sleep again.
Appreciate your help in solving this annoying problem. Thank you!