If you are building or testing the Linux 7.2 kernel on Fedora 44 (or other distros) with high-end RDNA 3 (RX 7800 XT) or RDNA 4 (RX 9070 XT) graphics cards (two other, RX9060XT and RX9070 are working fine) and experiencing black screen when KDE Plasma / Wayland attempts to initialize (while TTY/Ctrl+Alt+F2 still works), I found the root cause and a flawless hardware workaround.
The Symptom/Log:
The kernel shows infinite timing controller loops right before the freeze:
“amdgpu 0000:03:00.0: [drm] REG_WAIT timeout 1us * 150000 tries - optc401_disable_crtc”
Followed by:
“workqueue: name exceeds WQ_NAME_LEN. Truncating to: hdmi_frl_status_polling_workque”
The Cause:
The Linux 7.2 amdgpu module features a severe link-training race condition loop inside its newly rewritten HDMI 2.1 Fixed Rate Link (FRL) status polling workqueue engine when encountering certain monitor HDR metadata profiles. The Output Timing Generator (OTG) gets permanently stuck in a busy loop, locking out Plasma Login Manager Wayland .
The Fix/Workaround:
Do not use a native HDMI-to-HDMI cable. Instead, use a DisplayPort-to-HDMI adapter (or a native DisplayPort cable) connected directly to the GPU’s DisplayPort output.
By forcing the signal through the DisplayPort protocol pipeline, the driver completely skips the buggy native HDMI FRL polling engine, allowing the display timing registers to pass immediately without hitting the 150k register stall loop. Everything logs in cleanly with HDR functional.
Just a heads-up for anyone who would want to hold up on updating to kernel 7.2: Testing for 7.2 just passed on Bodhi and should be available within the next 24 hours.
BTW, I have tested amdgpu.dcdebugmask=0x10, 0x12, and 0x600. Those did not help. Rebuilt the kernel without CONFIG_DRM_AMDGPU_SI and CONFIG_DRM_AMDGPU_CIK as well. That didn’t help either.
With the DP-HDMI adapters both systems now work just fine. No other problems. The only problem is HDMI port and that does not glitch with all AMD cards. This is gonna be hard to fix, I guess.