drm/amd/display: Set ignore_msa_timing flag for freesync modes
authorSylvia Tsai <sylvia.tsai@amd.com>
Thu, 9 Feb 2017 21:35:39 +0000 (16:35 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 26 Sep 2017 21:14:23 +0000 (17:14 -0400)
- Set ignore_msa_timing_param to 1 only for modes that can support freesync

Signed-off-by: Sylvia Tsai <sylvia.tsai@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/modules/freesync/freesync.c

index 1ee732768f6ec92e99d83c512d328458418ef892..b00b1df71f3eaf0e8e245cef67884ae990db40dd 100644 (file)
@@ -262,7 +262,11 @@ bool mod_freesync_add_stream(struct mod_freesync *mod_freesync,
                                        enable_for_video = false;
                }
 
-               if (caps->supported)
+               unsigned int nom_refresh_rate_micro_hz = (unsigned int)
+                               (((unsigned long long) core_stream->public.timing.pix_clk_khz) * 1000ULL * 1000ULL * 1000ULL
+                               / core_stream->public.timing.h_total / core_stream->public.timing.v_total);
+
+               if (caps->supported && nom_refresh_rate_micro_hz >= caps->min_refresh_in_micro_hz && nom_refresh_rate_micro_hz <= caps->max_refresh_in_micro_hz)
                        core_stream->public.ignore_msa_timing_param = 1;
 
                core_freesync->num_entities++;