amdgpu: when detaching MST hub during suspend, MST will not work after resume (bisected)
Brief summary of the problem:
I am using an AMD Lenovo Thinkpad P14s G2 with a Lenovo Thinkpad Ultra Docking Station attached via USB-C. Connected to the dock is a Dell U2722DE via DisplayPort or Huawei Mateview 28 via Displayport. Since Kernel version 5.18 (and on lts: and 5.15.35), I am encountering the following issue: when detaching the dock while the system is suspended (S3), the monitor attached to the dock will not be recognized if resuming and then re-attaching the dock (this process is a common occurrence when detaching the dock at home and going to workplace, and vice-versa). Detaching the dock again and re-attaching it (with the system running) will lead to the monitor finally being recognized.
I should note that the issue does not occur with some other USB-C to Displayport adapters, e.g. when using an Apple USB-C dongle or directly attaching the notebook to a Huawei Mateview 28 via USB-C with no dock inbetween.
Hardware description:
- CPU: AMD Ryzen 7 Pro 5850U
- GPU:
VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [1002:1638] (rev d1)
- System Memory: 48GB DDR4-3200
- Display(s): external: Dell U2722DE or Huawei Mateview 28 (internal: Lenovo 14" UHD)
- Type of Display Connection: external: DP via Lenovo Ultra Docking Station (USB-C) (internal: eDP)
System information:
- Distro name and Version: Arch Linux
- Kernel version:
Linux archangel 5.19.12-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 28 Sep 2022 13:21:25 +0000 x86_64 GNU/Linux
Also occurs on built-from-source linux-lts v5.15.35, and current linux-lts (v5.15.71).
How to reproduce the issue:
- Start up the system and connect it to the dock/monitor.
- Put the system to sleep.
- Detach the dock.
- Resume the system.
- Attach the dock.
- Notice: the monitor will not be detected.
- Detach the dock.
- Re-attach the dock.
- Notice: the monitor will now be detected.
I have bisected the error on the 5.15-lts branch to the following commit: 6a03581ccffa571bfa1a9f3a097e1a4d7164fd2d (on mainline: https://github.com/torvalds/linux/commit/f4346fb3edf7720db3f7f5e1cab1f667cd024280).
Attached files:
Log files (for system lockups / game freezes / crashes)
- Dmesg log (full log with comments where dock was attached) bug-report-dmesg
- Xorg log Xorg-log-bugreport