AMDGPU PSR/DMCUB Display Freezes (flip_done timed out)
Summary
The AMDGPU driver's Panel Self-Refresh (PSR) and Display Micro-Controller Unit (DMCUB) can cause display freezes on Framework Laptop 13 AMD models and Framework Desktop. The DMCUB firmware hangs, producing flip_done timed out errors in the kernel log and making the display unresponsive. The issue is tracked upstream as drm/amd#4141 and has recurred across multiple kernel versions from 6.12 through 6.18123.
Symptoms
- Display becomes completely unresponsive — mouse cursor may still move briefly, then everything freezes14
- DMCUB error spam in
dmesg1:amdgpu 0000:c1:00.0: [drm] *ERROR* dc_dmub_srv_log_diagnostic_data: DMCUB error - collecting diagnostic data - Pageflip / CRTC timeout in
dmesg1:amdgpu 0000:c1:00.0: [drm] *ERROR* [CRTC:80:crtc-0] flip_done timed out - Compositor warnings — kwin_wayland reports
Pageflip timed out! This is a bug in the amdgpu kernel driver1 - System may become unbearably laggy before fully freezing, or recover after a long delay4
- Sound may continue playing even when the display is frozen5
- Night light / color temperature features (GNOME Night Light, KDE Night Color) appear to trigger the issue16
Affected Models
- Framework Laptop 13 (AMD Ryzen 7040 Series) — most commonly reported147
- Framework Laptop 13 (AMD Ryzen AI 300 Series)8
- Framework Desktop (AMD Ryzen AI Max 300 Series)9
The issue is not Framework-specific — it affects other AMD laptops using the same GPU family (e.g., ThinkPad Z13 with Ryzen 7 PRO 6850U)3.
Root Cause
The root cause is a DMCUB (Display Micro-Controller Unit Bootloader) firmware hang during PSR (Panel Self-Refresh) state transitions. PSR is a power-saving feature that stops sending display data when the screen content is static, instead having the panel self-refresh from its own memory.
When the DMCUB firmware hangs, it can no longer process page flip requests, causing the flip_done timed out errors and freezing the display pipeline23. Several factors increase the likelihood of triggering the hang:
- Night light / color temperature changes — these force PSR exit/re-entry cycles that expose the firmware bug16
- X11 compositors — PSR compatibility with Xorg is particularly problematic; Framework's Mario Limonciello (an AMD employee) confirmed this is "a bug caused by how Xorg vs Wayland work" and submitted a patch to detect X11 and disable PSR automatically610
- Kernel regressions — the bug has been fixed and regressed multiple times. A regression in kernel versions 6.12.29, 6.14.7, and 6.15rc7 caused the issue to reappear7. Users on kernel 6.18.x have again started reporting crashes1
A kernel patch series proposing page_flip_timeout() support was submitted in February 2026 but is still under review11.
Diagnosis
-
Check kernel logs for DMCUB errors:
sudo dmesg | grep -E '(DMCUB error|flip_done timed out)' -
Check journal for crash timeline:
journalctl -b -1 | grep -E '(amdgpu|DMCUB|flip_done)' | tail -30 -
Verify kernel version — regressions are known in 6.12.29+, 6.14.7+, 6.15rc7, and 6.18.x7:
uname -r
Workarounds & Fixes
| Solution | Effectiveness | Notes |
|---|---|---|
amdgpu.dcdebugmask=0x10 kernel parameter468 | Most effective | Disables PSR entirely. Add to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, then run sudo grub2-mkconfig -o /boot/grub2/grub.cfg (BIOS) or sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg (UEFI) |
amdgpu.dcdebugmask=0x610 kernel parameter8 | Effective | More targeted PSR/Replay disable. Tested by Framework's Mario Limonciello |
| Disable Night Light / Night Color16 | May prevent triggers | Reduces PSR state transitions. Works for some users but not all |
| Switch to Wayland610 | Reduces frequency | Avoids X11-specific PSR triggers. Gives better battery life than the dcdebugmask workaround |
| GPU recovery without reboot4 | Temporary fix | sudo cat /sys/kernel/debug/dri/0/amdgpu_gpu_recover (or dri/1/ depending on GPU). Requires SSH access if display is frozen |
amdgpu.runpm=0 kernel parameter3 | Effective | Disables GPU runtime power management. Significantly higher idle power consumption |
Resolution
There is no permanent fix yet. AMD is still investigating the root cause of the DMCUB firmware hangs3. A kernel patch to implement page_flip_timeout() support was proposed in February 2026 as a potential mitigation, but it remains under review on the amd-gfx mailing list11. Separately, a patch to detect X11 and automatically disable PSR was submitted by a Framework engineer10.
Users should apply the amdgpu.dcdebugmask=0x10 workaround and monitor upstream development on drm/amd#41413.
Related
- FW13 AMD UI freeze — Framework Community (original tracking thread)
- AI 300 Display locking up with Fedora 42 Xfce — Framework Community
- AMD GPU MES Timeouts Causing System Hangs on Framework Laptop 13 (AMD AI 300 Series) — Framework Community
- drm/amd#4141 — Upstream bug tracker
- drm/amd#4238 — Kernel regression tracker
- ArchWiki — AMDGPU Troubleshooting