You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
j713 (MacBook Air M4): appledrm idle cache freezes a console-only screen (fbcon never swaps) #409
On a J713 whose greeter is a text UI on the framebuffer console (tuigreet on tty1, through appledrm's fbdev emulation), the panel freezes about a second after KMS takes over. The rest of the system keeps running: keyboard input reaches the kernel and the greeter, and writes to /dev/tty1 complete, but nothing new is shown.
Cause
idle_cache_ms (default 1000) has the DCP cache the last frame once nothing has flipped for that long. It was added in aurora-silicon/linux a150a02 "drm/apple: m4: Cache a static frame while nothing is flipping", merged in aurora-silicon/linux#830.
fbcon draws straight into the scanout buffer and never submits a swap, so the DCP never leaves the cached frame. With appledrm.enable_verbose_logging=Y, a console write produces no appledrm or DCP activity at all.
Setting idle_cache_ms=0 at runtime doesn't help on its own, because it "applies from the next swap" and none comes. Forcing a swap restores a live screen straight away:
A compositor that flips regularly is presumably unaffected. This mainly hits console-only screens: text greeters, VTs, a graphical session that fails and falls back to fbcon, and early boot.
Workaround
appledrm.idle_cache_ms=0 on the kernel command line.
Possible fixes
Don't engage the idle cache while the fbdev client (fbcon) owns the CRTC.
Or have fbdev damage wake the DCP from the cached frame, for example a dirty or flush path that schedules a swap when the buffer changes.
Environment
Mac: J713 (MacBook Air 13-inch, M4, 2025), Mac16,12.
Activity
niteria commentedon Nov 7, 2026
Moved to aurora-silicon/linux#1185, which is where this kernel work lives. Sorry for the noise here.