[PATCH v4 0/6] Use trans push mechanism to generate frame change event
Jouni Högander
jouni.hogander at intel.com
Fri Jul 11 09:08:52 UTC 2025
Currently we are using "automatic" frame change event generation. The
event is generated by any access to plane or pipe registers.
We have option to use "PSR PR Frame Change Enable" bit in TRANS_PUSH
register to enable frame change event generation only when doing trans
push. When this bit is set "automatic" frame change event generation
doesn't work anymore. Benfit from this is more controled updates send
by PSR HW.
This patch set is taking trans push mechanism into use.
v4:
- add intel_psr_use_trans_push to query if TRANS_PUSH is used
- set DSB_SKIP_WAITS_EN chicken bit when TRANS_PUSH is used
- Wait for vblank in case of PSR is using trans push
v3:
- use rmw when enabling disabling transh push for PSR or VRR
- rely on crtc_state->has_psr/has_vrr to keep trans push enabled
- modify frontbuffer flush/invalidate to use disable/enable also for
SU/SF on recent platforms.
- send push before waiting for vblank
v2: implement intel_vrr_trans_push_enabled_set_clear and use that
instead of rmw
Jouni Högander (6):
drm/i915/psr: Do not trigger Frame Change events from frontbuffer
flush
drm/i915/psr: Add TRANS_PUSH register bit definition for PSR
drm/i915/psr: Add intel_psr_use_trans_push to query if TRANS_PUSH is
used
drm/i915/vrr: Prepare to Use TRANS_PUSH mechanism for PSR frame change
drm/i915/dsb: Set DSB_SKIP_WAITS_EN chicken bit for LunarLake and
onwards
drm/i915/display: Wait for vblank in case of PSR is using trans push
drivers/gpu/drm/i915/display/intel_crtc.c | 4 +-
drivers/gpu/drm/i915/display/intel_display.c | 20 +++++++++-
drivers/gpu/drm/i915/display/intel_dsb.c | 15 +++++--
drivers/gpu/drm/i915/display/intel_psr.c | 30 ++++++++++----
drivers/gpu/drm/i915/display/intel_psr.h | 1 +
drivers/gpu/drm/i915/display/intel_vrr.c | 39 +++++++++++++------
drivers/gpu/drm/i915/display/intel_vrr.h | 1 +
drivers/gpu/drm/i915/display/intel_vrr_regs.h | 1 +
8 files changed, 86 insertions(+), 25 deletions(-)
--
2.43.0
More information about the Intel-xe
mailing list