vt switch between X servers broken after mst hub reinitalized
I have two monitors connected to an MST hub.
To reproduce: Start two X sessions. While in one X session, reconnect the MST hub. Mine has a physical "reset" button, that's enough to trigger it too. After the monitors are back, switch to the other X session. The switch will fail and the other X session is completely killed.
[ 30811.548] (EE) AMDGPU(0): failed to set mode: Invalid argument
[ 30811.548] (WW) AMDGPU(0): Failed to set mode on CRTC 0
[ 30811.548] (EE) AMDGPU(0): drmmode_do_crtc_dpms cannot get last vblank counter
[ 30811.549] (EE) AMDGPU(0): failed to set mode: Invalid argument
[ 30811.549] (WW) AMDGPU(0): Failed to set mode on CRTC 1
[ 30811.549] (EE) AMDGPU(0): drmmode_do_crtc_dpms cannot get last vblank counter
[ 30811.550] (EE) AMDGPU(0): Failed to enable any CRTC
[ 30811.550] (EE)
Fatal server error:
[ 30811.550] (EE) EnterVT failed for screen 0
Full log: Xorg.1.log
With modesetting the switch works, but after that switch modesetting is sometimes very confused about which monitor is which and controlling position or on/off state might control the wrong one. Also sometimes one monitor is just black until disabling and enabling it again via randr.
Possibly related: drm/amd#1336 (closed)