[PATCH] drm/edid: Select DMT timing if EDID's display feature not support GTF.

Ville Syrjälä ville.syrjala at linux.intel.com
Mon Aug 19 16:39:53 UTC 2019


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.

> +
>  	}
>  	return LEVEL_DMT;
>  }
> -- 
> 2.17.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Ville Syrjälä
Intel


More information about the dri-devel mailing list