Merge tag 'drm-next-2021-02-26' of git://anongit.freedesktop.org/drm/drm
[sfrench/cifs-2.6.git] / drivers / gpu / drm / drm_vblank.c
index 30912d8f82a54506bc87255d4a700202cebec6b2..893165eeddf3f4d56b5d6773107f325b29c9496a 100644 (file)
@@ -1006,7 +1006,14 @@ static void send_vblank_event(struct drm_device *dev,
                break;
        }
        trace_drm_vblank_event_delivered(e->base.file_priv, e->pipe, seq);
-       drm_send_event_locked(dev, &e->base);
+       /*
+        * Use the same timestamp for any associated fence signal to avoid
+        * mismatch in timestamps for vsync & fence events triggered by the
+        * same HW event. Frameworks like SurfaceFlinger in Android expects the
+        * retire-fence timestamp to match exactly with HW vsync as it uses it
+        * for its software vsync modeling.
+        */
+       drm_send_event_timestamp_locked(dev, &e->base, now);
 }
 
 /**