[PATCH v3 2/4] drm/i915/display: Send push before waiting vblanks

Jouni Högander jouni.hogander at intel.com
Fri May 23 11:05:53 UTC 2025


If PSR is enabled our HW might be still in sleep when performing wait
vblanks on DSB. Now as we are switching to using VRR send push as
"Frame Change" event for PSR we are observing these timeouts as only
"Frame Change" event is VRR send push.

Fix this by triggering doing VRR send push before waiting vblank.

Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index c894e4d0d488..d072e38ddadd 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7240,9 +7240,8 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state,
 					   new_crtc_state);
 
 		if (!new_crtc_state->dsb_color_vblank) {
-			intel_dsb_wait_vblanks(new_crtc_state->dsb_commit, 1);
-
 			intel_vrr_send_push(new_crtc_state->dsb_commit, new_crtc_state);
+			intel_dsb_wait_vblanks(new_crtc_state->dsb_commit, 1);
 			intel_dsb_wait_vblank_delay(state, new_crtc_state->dsb_commit);
 			intel_vrr_check_push_sent(new_crtc_state->dsb_commit, new_crtc_state);
 			intel_dsb_interrupt(new_crtc_state->dsb_commit);
-- 
2.43.0



More information about the Intel-xe mailing list