drm/i915: Do vrr push before sampling the frame counter
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 20 Oct 2021 22:33:37 +0000 (01:33 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 9 Nov 2021 22:18:06 +0000 (00:18 +0200)
Do the vrr push before we sample the frame counter to
know when the commit has been latched. Doing these in the
wrong order could lead us to complete the flip before it
has actually happened.

Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211020223339.669-3-ville.syrjala@linux.intel.com
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
drivers/gpu/drm/i915/display/intel_crtc.c

index 254e671..0f8b48b 100644 (file)
@@ -542,6 +542,9 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
 
        trace_intel_pipe_update_end(crtc, end_vbl_count, scanline_end);
 
+       /* Send VRR Push to terminate Vblank */
+       intel_vrr_send_push(new_crtc_state);
+
        /*
         * Incase of mipi dsi command mode, we need to set frame update
         * request for every commit.
@@ -568,9 +571,6 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
 
        local_irq_enable();
 
-       /* Send VRR Push to terminate Vblank */
-       intel_vrr_send_push(new_crtc_state);
-
        if (intel_vgpu_active(dev_priv))
                return;