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. 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 (4): drm/i915/psr: Do not trigger Frame Change events from frontbuffer flush drm/i915/display: Send push before waiting vblanks drm/i915/psr: Add TRANS_PUSH register bit definition for PSR drm/i915/vrr: Use TRANS_PUSH mechanism for PSR frame change drivers/gpu/drm/i915/display/intel_display.c | 3 +- drivers/gpu/drm/i915/display/intel_psr.c | 24 +++++++++++--- drivers/gpu/drm/i915/display/intel_vrr.c | 33 ++++++++++++++----- drivers/gpu/drm/i915/display/intel_vrr.h | 1 + drivers/gpu/drm/i915/display/intel_vrr_regs.h | 1 + 5 files changed, 46 insertions(+), 16 deletions(-) -- 2.43.0