drm/edid: Select DMT timing if EDID's display feature not support GTF
Lee, Shawn C
shawn.c.lee at intel.com
Mon Oct 7 06:01:56 UTC 2019
On Tue, Aug 19, 2019, Ville Syrjälä wrote:
>On Tue, Aug 06, 2019 at 07:30:21PM +0800, Lee Shawn C wrote:
>> Refer to EDID 1.3 spec, display FEATURE (byte 18h) bit #0 said
>> "If this bit is set to 1, the display supports timings based on the
>> GTF standard using default GTF parameter values".
>>
>> And EDID 1.4 spec shows "If bit 0 is set to 0, then the display
>> is noncontinuous frequency (multi-mode) and is only specified to accept
>> the video timing formats that are listed in BASE EDID and certain
>> EXTENSION Blocks.
>>
>> When display feature did not support CVT or GFT2 and monitor's EDID version
>> greater than or equal to "1.2". DRM driver would select GTF as default
>> for standard timing calculation. It may generated some video timing
>> that can't display properly by external monitor.
>>
>> For example. When driver retrieved "0xD1 0xFC" (FHD, 120Hz) and
>> "0xD1 0xE8" (FHD, 100Hz) from "Standard Timings". GTF formula
>> would generate video timing like below. It already over monitor's
>> spec to cause black screen issue.
>> "1920x1080" 120 368881 1920 2072 2288 2656 1080 1081 1084 1157 0x0 0x6
>> "1920x1080" 100 301992 1920 2072 2280 2640 1080 1081 1084 1144 0x0 0x6
>>
>> Cc: Jani Nikula <jani.nikula at intel.com>
>> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>> Cc: Adam Jackson <ajax at redhat.com>
>> Cc: Cooper Chiou <cooper.chiou at intel.com>
>> Signed-off-by: Lee Shawn C <shawn.c.lee at intel.com>
>> ---
>> drivers/gpu/drm/drm_edid.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>> index 82a4ceed3fcf..f6a3d2d993c7 100644
>> --- a/drivers/gpu/drm/drm_edid.c
>> +++ b/drivers/gpu/drm/drm_edid.c
>> @@ -2089,7 +2089,9 @@ static int standard_timing_level(struct edid *edid)
>> return LEVEL_CVT;
>> if (drm_gtf2_hbreak(edid))
>> return LEVEL_GTF2;
>> - return LEVEL_GTF;
>> + if (edid->revision == 3 && (edid->features & DRM_EDID_FEATURE_DEFAULT_GTF))
>> + return LEVEL_GTF;
>
>While the oldest EDID spec I have is 1.3, sources on the interwebs
>suggest that older revisions already had the "default GTF" flag here.
>So I think we can omit the revision check.
>
I'm sorry I miss this comment and already push pathc v2. Thanks!
>> +
>> }
>> return LEVEL_DMT;
>> }
>> --
>> 2.17.1
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list