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 on trans push. When this bit is set "automatic" frame change event generation doesn't work anymore. This patch set is taking trans push mechanism into use. NOTE: Patches add vrr.trans_push_enabled into intel_crtc and stores trans push vrr and psr enable bits in trans_push_enabled. There is no need for additional locking as it's taken care by psr mutex. v2: implement intel_vrr_trans_push_enabled_set_clear and use that instead of rmw Jouni Högander (7): drm/i915/psr: Add TRANS_PUSH register bit definition for PSR drm/i915/vrr: Do not overwrite TRANS_PUSH PSR Frame Change Enable drm/i915/vrr: Use TRANS_PUSH mechanism for PSR frame change drm/i915/psr: Rename psr_force_hw_tracking_exit as psr_force_exit drm/i915/psr: Simplify frontbuffer invalidate/flush callbacks drm/i915/psr: Add VRR send push interface for PSR usage drm/i915/display: Generate PSR frame change event on cursor update drivers/gpu/drm/i915/display/intel_cursor.c | 5 ++ .../drm/i915/display/intel_display_types.h | 2 + drivers/gpu/drm/i915/display/intel_psr.c | 83 ++++++------------- drivers/gpu/drm/i915/display/intel_vrr.c | 81 ++++++++++++++++-- drivers/gpu/drm/i915/display/intel_vrr.h | 6 ++ drivers/gpu/drm/i915/display/intel_vrr_regs.h | 1 + 6 files changed, 115 insertions(+), 63 deletions(-) -- 2.34.1