[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