Wrong DP ports and refresh rates after MST reset. MCLK is stuck at 100%
Brief summary of the problem:
When DP MST configuration is reset (such as: going out of sleep, power off/on both monitors, reset the MST splitter, reconnect the MST splitter to the laptop):
- Monitors get connected through different DP ports which breaks GNOME monitor layout
- Refresh rates get different for two identical monitors
- MCLK is stuck at 1.00G (max value) resulting in 29.0 W power consumption in idle mode
- Also noticed that in this mode Gnome Night Light does not work (it does not change the gamma of the monitors)
Hardware description:
- Radeon RX 6800M is set as primary GPU and connected through USB-C to 3*DP MST splitter to two 4k 60Hz monitors
- GPU: 03:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT / 6800M] [1002:73df] (rev c3)
- MST splitter: USB-C® to MST Hub with Triple DisplayPort™ & PD
- Display(s): 2 * PHL 328E1 PHLC204 3840x2160 697x392mm 31.5-inch
- Full hw-probe with logs: PROBE-ID
System information:
- Distro name and Version: Manjaro 21.2.3
- Kernel version: Linux 5.16.7-1-MANJARO SMP PREEMPT Sun Feb 6 12:22:29 UTC 2022 x86_64 GNU/Linux
- AMD official driver version: N/A
How to reproduce the issue:
- Preconditions: laptop is shut down, USB-C MST splitter is connected to laptop and both monitors
- Cold boot the laptop, login into GNOME Wayland session, run
sudo radeontop -b 3
notice the memory clock is 0.10G and changes when windows are open/resized - Go to Settings -> Displays, configure the layout and apply
- Open ~/.config/monitors.xml (first configuration). Notice that external monitors are connected to the DP-3, DP-4 and have the same refresh rate 59.996623992919922
- Provided output of drm_info (drm_info_variable_mclk.txt) and amdgpu_mst_topology (amdgpu_mst_topology_variable_mclk.txt)
- Reset the MST splitter through the reset button, or unplug the power of both monitors and then plug them in again
- Notice that the monitor layout is lost and memory clock is fixed at 1.00G
- Go to Settings -> Displays, configure the layout again and apply
- Open ~/.config/monitors.xml (second configuration). Notice that external monitors are now connected to the DP-5, DP-6 and have different refresh rate 59.995990753173828 and 59.996051788330078 respectively
- Provided output of drm_info (drm_info_fixed_mclk.txt) and amdgpu_mst_topology (amdgpu_mst_topology_fixed_mclk.txt)
Attached files:
- Current boot journal: manjaro-log-helper.logs