[PATCH 14/21] drm/amd/display: fix LFC tearing at top of screen

Harry Wentland harry.wentland at amd.com
Tue Apr 10 21:10:42 UTC 2018

From: Anthony Koo <Anthony.Koo at amd.com>

Tearing occurred because new VTOTAL MIN/MAX was being programmed
too early.
The flip can happen within the VUPDATE high region, and the new min/max
would take effect immediately. But this means that frame is not variable
anymore, and tearing would occur when the flip actually happens.

The fixed insert duration should be programmed on the first VUPDATE
interrupt instead.

Signed-off-by: Anthony Koo <Anthony.Koo at amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr at amd.com>
Acked-by: Harry Wentland <harry.wentland at amd.com>
 drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
index abd5c9374eb3..daad60ec1ce3 100644
--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -371,12 +371,6 @@ static void apply_below_the_range(struct core_freesync *core_freesync,
 		in_out_vrr->btr.frames_to_insert = frames_to_insert;
 		in_out_vrr->btr.frame_counter = frames_to_insert;
-		in_out_vrr->adjust.v_total_min =
-			calc_v_total_from_duration(stream, in_out_vrr,
-				in_out_vrr->btr.inserted_duration_in_us);
-		in_out_vrr->adjust.v_total_max =
-				in_out_vrr->adjust.v_total_min;

More information about the amd-gfx mailing list