DP alt mode displays (most often) fail link training if plugged during cold boot
Brief summary of the problem:
I am connecting external displays via a USB4 dock to my System76 Pangolin12*, but most of the time the displays fail link training and my system continues to frequently hang for several seconds while retrying until the displays are unplugged. I say "most of the time", because about 1 in every 10 or so cold boots with the dock and displays plugged in, the displays come up just fine with no errors or warnings.
If I boot up the laptop first without the dock plugged in, then plug in the dock after reaching my login screen, the external displays initialize correctly. At this point if I reboot the laptop with the dock still plugged, they will continue to work.
*Note that this laptop's USB-C port is not USB4 or Thunderbolt compatible, only DP alt mode compatible.
Hardware description:
- CPU:
AMD Ryzen 7 6800U with Radeon Graphics
- GPU:
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt [Radeon 680M] [1002:1681] (rev c1)
- System Memory: 32GiB
- Display(s): Chimei Innolux Corporation 0x1521, Dell Inc. DELL U2410
- Type of Display Connection: eDP, DP over USB4 dock
System information:
- Distro name and Version: Gentoo GNU/Linux
- Kernel version:
Linux fuuko 6.5.6-gentoo-hardened1 #1 SMP Tue Oct 10 09:08:59 EDT 2023 x86_64 AMD Ryzen 7 6800U with Radeon Graphics AuthenticAMD GNU/Linux
- Custom kernel: Gentoo kernel (Kconfig in attached files) with linux-hardened on top, but I can reproduce the issue with and without
linux-hardened
applied - AMD official driver version: N/A
How to reproduce the issue:
- Plug an external dock into the USB Type-C port (which supports DP alt mode, but not Thunderbolt).
- Connect an external display to one of the DP ports on the dock.
- Power on the laptop (System76 Pangolin12) and boot to the OS.
- Observe that the external display fails link training and continues to hang the OS during retries until it is unplugged.
If I instead do the following, then the displays initialize correctly:
- Power on the laptop (System76 Pangolin12) and boot to the OS.
- Connect an external display to one of the DP ports on the dock.
- Plug the external dock into the USB Type-C port (which supports DP alt mode, but not Thunderbolt).
- Observe that the external display initializes correctly.
Attached files:
Log files (for system lockups / game freezes / crashes)
Related: #2667