On 10/18/26 5:54 PM, Ramón Jesús Miranda wrote: > When the CRTC is disabled to enter self refresh, dpu_crtc_disable() only > checks old_crtc_state->self_refresh_active, which covers leaving self > refresh, and calls drm_crtc_vblank_off() otherwise. The atomic helper > then expects vblank to remain enabled for a self refresh "disable" and > warns: > > driver disabled vblank in self-refresh > WARNING: drivers/gpu/drm/drm_atomic_helper.c:1296 at > drm_atomic_helper_commit_crtc_disable+0x1c0/0x1f8 [drm_kms_helper] > > Skip drm_crtc_vblank_off() when the new state enters self refresh, as > other drivers supporting self refresh do. drm_crtc_vblank_on() in the > enable path is safe either way, it only drops the reference taken by > drm_crtc_vblank_off(). > > Seen at every boot on a Microsoft Surface Pro 11 (X1E80100, Samsung OLED > eDP panel) with eDP PSR enabled; with this change the warning is gone and > self refresh keeps working. > > Assisted-by: Claude:claude-opus-5-5 > Signed-off-by: Ramón Jesús Miranda <[email protected]> > ---
FWIW this is not enough to get self-refresh to work on the Glymur Zenbook A16 and the 8280-based x13s, the screen stays black if there's no updates (it worked on the latter in the past). Dmitry promised to take a look one day. Konrad
