https://bugzilla.kernel.org/show_bug.cgi?id=210429
Bug ID: 210429 Summary: AMDGPU - DRM connector force-probe after DPMS causes monitor to reconnect Product: Drivers Version: 2.5 Kernel Version: 5.4.80 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) Assignee: drivers_video-dri@kernel-bugs.osdl.org Reporter: jordanleppert@gmail.com Regression: No
This is with a Vega64 card, connected to two monitors via DisplayPort 1.2.
When the connector is force-probed with a call to drmModeGetConnector, this is causing the connection to the monitor to disconnect, and reconnect.
I'm seeing this issue using Wayland, specifically a wlroots based compositor. This patch to wlroots (which unfortunately needs to be reverted) stopped the problem happening: https://github.com/swaywm/wlroots/pull/2482/files
https://bugzilla.kernel.org/show_bug.cgi?id=210429
--- Comment #1 from jordanleppert@gmail.com --- This is also a problem when using xorg-server, after monitors wake up from DPMS they reconnect (causing issues in whatever DE I'm using, such as all windows moving to one monitor).
If I can recreate the issue with a BASH command I'll post it, I've tried the below command but for some reason it doesn't reproduce the problem:
echo detect | sudo tee /sys/class/drm/card0-DP-1/status | sudo tee /sys/class/drm/card0-DP-2/status
https://bugzilla.kernel.org/show_bug.cgi?id=210429
--- Comment #2 from jordanleppert@gmail.com --- Here are logs using Wayfire (a wlroots compositor), note the disconnect immediately after modesetting. The DPMS sleep happened at 15:46:45, and the wakeup at 15:46:54.
DD 22-12-20 15:46:45.685 - [backend/drm/drm.c:1075] Reallocating CRTCs DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1086] State before reallocation: DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1092] 'DP-1' crtc=0 state=3 desired_enabled=0 DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1092] 'DP-2' crtc=1 state=3 desired_enabled=1 DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1092] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1092] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1143] State after reallocation: DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1150] 'DP-1' crtc=0 state=3 desired_enabled=0 DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1150] 'DP-2' crtc=1 state=3 desired_enabled=1 DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1150] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:45.686 - [backend/drm/drm.c:1150] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1075] Reallocating CRTCs DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1086] State before reallocation: DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1092] 'DP-1' crtc=0 state=3 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1092] 'DP-2' crtc=1 state=3 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1092] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1092] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1143] State after reallocation: DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1150] 'DP-1' crtc=0 state=3 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1150] 'DP-2' crtc=1 state=3 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1150] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:45.719 - [backend/drm/drm.c:1150] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 II 22-12-20 15:46:54.467 - [backend/drm/drm.c:793] connector DP-1: Modesetting with '3840x2160@59997mHz' DD 22-12-20 15:46:54.467 - [backend/drm/drm.c:679] connector DP-1: Initializing renderer II 22-12-20 15:46:54.483 - [backend/drm/drm.c:793] connector DP-2: Modesetting with '3840x2160@59997mHz' DD 22-12-20 15:46:54.483 - [backend/drm/drm.c:679] connector DP-2: Initializing renderer II 22-12-20 15:46:56.808 - [backend/drm/drm.c:1219] Scanning DRM connectors on /dev/dri/card0 II 22-12-20 15:46:56.810 - [backend/drm/drm.c:1388] 'DP-2' disconnected DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1075] Reallocating CRTCs DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1086] State before reallocation: DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1092] 'DP-1' crtc=0 state=3 desired_enabled=1 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1092] 'DP-2' crtc=1 state=3 desired_enabled=0 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1092] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1092] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1143] State after reallocation: DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1150] 'DP-1' crtc=0 state=3 desired_enabled=1 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1150] 'DP-2' crtc=1 state=3 desired_enabled=0 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1150] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1150] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.907 - [backend/drm/drm.c:1049] connector DP-2: De-allocating CRTC 1 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1075] Reallocating CRTCs DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1086] State before reallocation: DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1092] 'DP-1' crtc=0 state=3 desired_enabled=1 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1092] 'DP-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1092] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1092] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1143] State after reallocation: DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1150] 'DP-1' crtc=0 state=3 desired_enabled=1 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1150] 'DP-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1150] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1150] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:56.908 - [backend/drm/drm.c:1442] No connector for CRTC 49 II 22-12-20 15:46:57.102 - [backend/drm/drm.c:1219] Scanning DRM connectors on /dev/dri/card0 II 22-12-20 15:46:57.102 - [backend/drm/drm.c:1388] 'DP-1' disconnected DD 22-12-20 15:46:57.173 - [backend/drm/drm.c:1075] Reallocating CRTCs DD 22-12-20 15:46:57.173 - [backend/drm/drm.c:1086] State before reallocation: DD 22-12-20 15:46:57.173 - [backend/drm/drm.c:1092] 'DP-1' crtc=0 state=3 desired_enabled=0 DD 22-12-20 15:46:57.173 - [backend/drm/drm.c:1092] 'DP-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.173 - [backend/drm/drm.c:1092] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.173 - [backend/drm/drm.c:1092] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1143] State after reallocation: DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1150] 'DP-1' crtc=0 state=3 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1150] 'DP-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1150] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1150] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1049] connector DP-1: De-allocating CRTC 0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1075] Reallocating CRTCs DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1086] State before reallocation: DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1092] 'DP-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1092] 'DP-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1092] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.174 - [backend/drm/drm.c:1092] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.175 - [backend/drm/drm.c:1143] State after reallocation: DD 22-12-20 15:46:57.175 - [backend/drm/drm.c:1150] 'DP-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.175 - [backend/drm/drm.c:1150] 'DP-2' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.175 - [backend/drm/drm.c:1150] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0 DD 22-12-20 15:46:57.175 - [backend/drm/drm.c:1150] 'HDMI-A-2' crtc=-1 state=0 desired_enabled=0
dri-devel@lists.freedesktop.org