From 34e2a64ce00c219d64b8169b774661d5727c45c7 Mon Sep 17 00:00:00 2001 From: Pascal VITOUX Date: Fri, 27 Nov 2020 16:54:59 +0000 Subject: [PATCH] xfree86: fix gtf support detection for EDID 1.4 According to the "VESA Enhanced EDID Standard", all GTF compliant displays are continuous frequency. The GTF support flags in 'Display Range Limits Descriptor' cannot be used if the display is a non-continuous frequency multi-mode display. Closes #1105 Signed-off-by: Pascal VITOUX Fixes: 6a79a737 ("xfree86: add drm modes on non-GTF panels") Reviewed-by: Aaron Ma aaron.ma@canonical.com --- hw/xfree86/ddc/interpret_edid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c index 19630471c..7259d2192 100644 --- a/hw/xfree86/ddc/interpret_edid.c +++ b/hw/xfree86/ddc/interpret_edid.c @@ -768,7 +768,7 @@ gtf_supported(xf86MonPtr mon) } else { for (i = 0; i < DET_TIMINGS; i++) { struct detailed_monitor_section *det_timing_des = &(mon->det_mon[i]); - if (det_timing_des && (det_timing_des->type == DS_RANGES) && + if (det_timing_des && (det_timing_des->type == DS_RANGES) && (mon->features.msc & 0x1) && (det_timing_des->section.ranges.display_range_timing_flags == DR_DEFAULT_GTF || det_timing_des->section.ranges.display_range_timing_flags == DR_SECONDARY_GTF)) return TRUE;