Commit 9410a377 authored by Anthony Koo's avatar Anthony Koo Committed by Alex Deucher

drm/amd/display: fix LFC tearing at top of screen

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: default avatarAnthony Koo <Anthony.Koo@amd.com>
Reviewed-by: default avatarAric Cyr <Aric.Cyr@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent be922ff7
...@@ -371,12 +371,6 @@ static void apply_below_the_range(struct core_freesync *core_freesync, ...@@ -371,12 +371,6 @@ static void apply_below_the_range(struct core_freesync *core_freesync,
inserted_frame_duration_in_us; inserted_frame_duration_in_us;
in_out_vrr->btr.frames_to_insert = frames_to_insert; in_out_vrr->btr.frames_to_insert = frames_to_insert;
in_out_vrr->btr.frame_counter = 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;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment