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