]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/i915/display: Evade scanline 0 as well if PSR1 or PSR2 is enabled
authorJouni Högander <jouni.hogander@intel.com>
Thu, 13 Feb 2025 06:48:01 +0000 (08:48 +0200)
committerJouni Högander <jouni.hogander@intel.com>
Fri, 14 Feb 2025 06:37:49 +0000 (08:37 +0200)
commit801d827d80f6d8a574dee0f87e367167e2b6d80b
tree1f6cf736d18f3cffc077302a29b6465a8f5b480a
parent20d6343bf4576674756067a0c59be49526cad072
drm/i915/display: Evade scanline 0 as well if PSR1 or PSR2 is enabled

PIPEDSL is reading as 0 when in SRDENT(PSR1) or DEEP_SLEEP(PSR2). On
wake-up scanline counting starts from vblank_start - 1. We don't know if
wake-up is already ongoing when evasion starts. In worst case PIPEDSL could
start reading valid value right after checking the scanline. In this
scenario we wouldn't have enough time to write all registers. To tackle
this evade scanline 0 as well. As a drawback we have 1 frame delay in flip
when waking up.

v2:
  - use intel_dsb_emit_wait_dsl
  - add evasion of scanline 0 also for Panel Replay

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250213064804.2077127-11-jouni.hogander@intel.com
drivers/gpu/drm/i915/display/intel_dsb.c