Panel never blanks: ana38401 disable/unprepare are deliberate no-ops #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
When Plasma puts the display to sleep the panel stays lit. DRM does its part correctly — the connector reports
dpms: Off,enabled: disabled— but the panel driver ignores it.Root cause (two things stack)
1.
disable/unprepareare intentionally empty (drivers/gpu/drm/panel/panel-samsung-ana38401.c):Deliberate, from the era when the panel init was fragile and a display-off could not be recovered from (see the dark-panel post-mortem, MAINLINE-NOTES 2026-08-19/20).
2. It's an emissive AMOLED, so brightness is the light — there is no backlight to cut — and
disabledoesn't touch brightness either. Every pixel keeps emitting.Brightness is not a usable substitute — measured
Writing
0to/sys/class/backlight/panel/brightnessreturnsEINVAL, reads back 0, and the screen stays lit (visually confirmed).ana38401_bl_update_status()snaps any requested level to the nearest entry inana38401_br_levels[], whose lowest isbl = 10— the dimmest stock level, not off. There is no zero/off entry, so brightness cannot blank the panel.Fix
Send display-off (
28h) indisableand display-on (29h) inenable— and only those. Specifically not sleep-in (10h), and no re-init:28h/29hgate emission only. They do not clear GRAM, drop the TCON config, or disturb the DSI link, so there is nothing to re-initialize afterwards.Why this matters beyond the annoyance
Test plan (do NOT test blind)
If
29hfails to bring the panel back, the result is a dark panel — the exact recovery scenario that cost several sessions. So:28h/29hwired intodisable/enable.gts6l-reboot console) and SD autoboot in place, so a failure is diagnosable rather than a black rectangle.dpmson the connector directly before letting Plasma's idle timer drive it.29halone is insufficient: haveenablefall through to the known-good full init path.Deliberately not attempted live during the 2026-08-21 session for that reason.