| From 30614303416b6e256de22a37bb20110f794ea361 Mon Sep 17 00:00:00 2001 |
| From: Amanda Liu <amanda.liu@amd.com> |
| Date: Fri, 6 Dec 2019 15:12:30 -0500 |
| Subject: [PATCH] drm/amd/display: Clear state after exiting fixed active VRR |
| state |
| |
| commit 6f8f76444baf405bacb0591d97549a71a9aaa1ac upstream. |
| |
| [why] |
| Upon exiting a fixed active VRR state, the state isn't cleared. This |
| leads to the variable VRR range to be calculated incorrectly. |
| |
| [how] |
| Set fixed active state to false when updating vrr params |
| |
| Signed-off-by: Amanda Liu <amanda.liu@amd.com> |
| Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> |
| Acked-by: Harry Wentland <harry.wentland@amd.com> |
| Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c |
| index 471135a5439d..19826b9f2583 100644 |
| --- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c |
| +++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c |
| @@ -963,6 +963,7 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync, |
| 2 * in_out_vrr->min_refresh_in_uhz) |
| in_out_vrr->btr.btr_enabled = false; |
| |
| + in_out_vrr->fixed.fixed_active = false; |
| in_out_vrr->btr.btr_active = false; |
| in_out_vrr->btr.inserted_duration_in_us = 0; |
| in_out_vrr->btr.frames_to_insert = 0; |
| @@ -982,6 +983,7 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync, |
| in_out_vrr->adjust.v_total_max = stream->timing.v_total; |
| } else if (in_out_vrr->state == VRR_STATE_ACTIVE_VARIABLE && |
| refresh_range >= MIN_REFRESH_RANGE_IN_US) { |
| + |
| in_out_vrr->adjust.v_total_min = |
| calc_v_total_from_refresh(stream, |
| in_out_vrr->max_refresh_in_uhz); |
| -- |
| 2.7.4 |
| |