diff mbox series

[v2,7/7] drm/i915/display: Generate PSR frame change event on cursor update

Message ID 20241101062728.3865980-8-jouni.hogander@intel.com (mailing list archive)
State New
Headers show
Series Use trans push mechanism to generate frame change event | expand

Commit Message

Hogander, Jouni Nov. 1, 2024, 6:27 a.m. UTC
On LunarLake and onwards we are using vrr send push mechanism to trigger
frame change event. Due to this we need to trigger it using
intel_vrr_psr_send_push provided by VRR code on legacy cursor update.

Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
---
 drivers/gpu/drm/i915/display/intel_cursor.c | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
index 9ba77970dab7..5617781e9c58 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -25,6 +25,7 @@ 
 #include "intel_psr.h"
 #include "intel_psr_regs.h"
 #include "intel_vblank.h"
+#include "intel_vrr.h"
 #include "skl_watermark.h"
 
 /* Cursor formats */
@@ -798,6 +799,7 @@  intel_legacy_cursor_update(struct drm_plane *_plane,
 		to_intel_crtc_state(crtc->base.state);
 	struct intel_crtc_state *new_crtc_state;
 	struct intel_vblank_evade_ctx evade;
+	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 	int ret;
 
 	/*
@@ -917,6 +919,9 @@  intel_legacy_cursor_update(struct drm_plane *_plane,
 		intel_plane_disable_arm(NULL, plane, crtc_state);
 	}
 
+	if (crtc_state->has_psr)
+		intel_vrr_psr_send_push(crtc, cpu_transcoder);
+
 	local_irq_enable();
 
 	intel_psr_unlock(crtc_state);