On Mon, Oct 07, 2019 at 09:51:27PM +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
> 
> v2: Just confirm GTF flag and omit the revision check.
> 
> Cc: Jani Nikula <jani.nik...@intel.com>
> Cc: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
> Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
> Cc: Adam Jackson <a...@redhat.com>
> Cc: Cooper Chiou <cooper.ch...@intel.com>
> Signed-off-by: Lee Shawn C <shawn.c....@intel.com>
> ---
>  drivers/gpu/drm/drm_edid.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 5aee0ebc200e..26eb04820b52 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -2193,7 +2193,8 @@ static int standard_timing_level(struct edid *edid)
>                       return LEVEL_CVT;
>               if (drm_gtf2_hbreak(edid))
>                       return LEVEL_GTF2;
> -             return LEVEL_GTF;
> +             if (edid->features & DRM_EDID_FEATURE_DEFAULT_GTF)
> +                     return LEVEL_GTF;

lgtm. Thanks. Pushed to drm-misc-next.

>       }
>       return LEVEL_DMT;
>  }
> -- 
> 2.17.1

-- 
Ville Syrjälä
Intel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to