Skip to main content

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

  1. Check kernel logs for DMCUB errors:

    sudo dmesg | grep -E '(DMCUB error|flip_done timed out)'
  2. Check journal for crash timeline:

    journalctl -b -1 | grep -E '(amdgpu|DMCUB|flip_done)' | tail -30
  3. Verify kernel version — regressions are known in 6.12.29+, 6.14.7+, 6.15rc7, and 6.18.x7:

    uname -r

Workarounds & Fixes

SolutionEffectivenessNotes
amdgpu.dcdebugmask=0x10 kernel parameter468Most effectiveDisables 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 parameter8EffectiveMore targeted PSR/Replay disable. Tested by Framework's Mario Limonciello
Disable Night Light / Night Color16May prevent triggersReduces PSR state transitions. Works for some users but not all
Switch to Wayland610Reduces frequencyAvoids X11-specific PSR triggers. Gives better battery life than the dcdebugmask workaround
GPU recovery without reboot4Temporary fixsudo 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 parameter3EffectiveDisables 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.

Footnotes

  1. AMDGPU crashes with 6.18.13-100.fc42.x86_64 — Framework Community 2 3 4 5 6 7 8 9 10

  2. AMDGPU Pageflip screen unresponsive — Arch Linux Forums 2

  3. [amdgpu][drm] ERROR flip_done timed out — Ubuntu Bug #2047154 2 3 4 5 6

  4. FW13 AMD UI freeze — Framework Community 2 3 4 5

  5. System freeze (amdgpu - flip_done timed out) after switch to kernel 6.12 — Manjaro Forum

  6. AI 300 Display locking up incessantly with Fedora 42 Xfce — Framework Community 2 3 4 5 6

  7. FW13 AMD UI freeze — regression report — Framework Community (drm/amd#4238) 2 3

  8. AMD GPU MES Timeouts Causing System Hangs on Framework Laptop 13 (AMD AI 300 Series) — Framework Community 2 3

  9. AMD Drivers Frequently Hanging and Crashing — Framework Community

  10. [PATCH] drm/amd/display: Fix Xorg desktop unresponsive on Replay panel — Framework Community (Mario Limonciello) 2 3

  11. [PATCH v2 2/2] drm/amdgpu: implement page_flip_timeout() support — amd-gfx Mailing List 2