6600 XT does not recognize DisplayPort monitors connected after system boot
I'm using two of the DisplayPorts on this card, connected two different monitors, each through a DisplayPort -> DVI cable and its own multi-source DVI switch. As long as each switch source is selected to the 6600 XT during system boot (specifically, during amdgpu kernel driver initialization), everything works as expected. If either switch is selected to a different source during kernel driver initialization, then that DisplayPort is flagged as "disconnected", and remains so even when I later manually select the 6600 XT source. This is even the case when I boot into text mode while one of the monitors is on a different source, switch it back to the 6600 XT, and then load a graphical environment (e.g. by running startx or lightdm)--- I continue to see "AMDGPU(0): Output DisplayPort-1 disconnected" in the Xorg startup log, even though DP-1 was indeed connected before any Xorg process started.
Expected behavior: the status of each DisplayPort would be re-polled at least every time the Xorg amdgpu_drv.so module is loaded. Ideally, the driver would even recognize monitor "hotplug" events after X is running. I recently switched this machine to an AMD GPU from a GeForce 1080 running the proprietary NVidia driver, which was capable of detecting and handling the same (albeit on DVI ports rather than DP) monitor on/off events.
Hardware: AMD Ryzen 1700 CPU
MSI X470 motherboard, 64GB RAM
Radeon XT 6600 GPU (Navi 23)
Samsung 21" monitors connected via Geffen 4x1 DVI switches
Software: Linux 6.1.25, running the in-tree amdgpu driver, built into the kernel (not a loadable module). I also saw the same behavior under 6.1.23.
Xorg 1.21.1.8 (normal X11, not Wayland)
Similar issues: This might be another symptom of the fundamental DisplayPort implementation deficiencies described in #2441, #2442 (closed), #2462 (closed), or #2472. It sounds very similar to #2359, but I do not have any amdgpu errors listed in dmesg (or /var/log/messages or /var/log/debug), just the "Output DisplayPort-1 disconnected" messages even though the monitor is physically connected (and on, and switched to the 6600 XT input).
Steps to reproduce:
- Connect monitors to two of the DisplayPorts on the 6600 XT.
- Switch one monitor on, keep the other off (or selected to a different source).
- Boot the machine to a console login prompt
- Turn on the second monitor and select the correct input for the 6600 XT
- Start an X11 session (e.g. via sddm/lightdm/startx/startplasma)
- Observe that the second monitor continues to show no input signal.
- If under KDE, observe that the Desktop Settings tool shows only a single monitor connected.
- Observe "DP-1 disconnected" in /var/log/Xorg.0.log
- While leaving second monitor on, reboot system.
- Observe the second monitor shows a copy of the system startup messages.
- Start an X11 session.
- Observe that the second monitor forms part of the X11 desktop.
- Observe "Output DisplayPort-1 connected" (and relevant modelines, etc.) in /var/log/Xorg.0.log.