Workaround for Linux 7.2 AMDGPU Boot/Plasma Freeze on RX 7800XT / RX 9070XT (DCN 4.0.1 / RDNA3 & RDNA4)

Hi everyone,

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.

Have you reported this to the amdgpu developers and/or the Fedora bug tracker?
Do you have a bugzilla ticket url?

I have now reported to amdgpu gitlab. Since Fedora has not upgraded to 7.2 yet, it is early to report a bug here. I just wanted to give a heads up.

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.

Fedora might get a flood of problems with the users with HDMI cables. I would hold the release. Just a friendly warning.

The software fix is confirmed

I will never stop to believe programmers are magicians. So many variables, so much that could go wrong yet somehow the problem is resolved.

I once programmed a calculator btw :slight_smile:

LOL! That was indeed a remarkably quick fix. I think the fix will be in 7.2.5.

For what it’s worth I am experiencing this issue in 7.2.7. Seems this is fixed in 7.3 and apparently it is not being backported to 7.2?