[PATCH] drm/edid : calculate vsync and hsync from range limits block according to the EDID 1.4

Jani Nikula jani.nikula at linux.intel.com
Wed May 4 14:31:43 UTC 2016


On Tue, 03 May 2016, Vitaly Prosyak <vitaly.prosyak at amd.com> wrote:
> Do calculation of vsync and hsync from range limits
> EDID block according to the spec. EDID 1.4.
>
> Signed-off-by: Vitaly Prosyak <vitaly.prosyak at amd.com>
> ---
>  drivers/gpu/drm/drm_edid.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 7e49962..601152b 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -1977,11 +1977,11 @@ mode_in_hsync_range(const struct drm_display_mode *mode,
>  	int hsync, hmin, hmax;
>  
>  	hmin = t[7];
> -	if (edid->revision >= 4)
> -	    hmin += ((t[4] & 0x04) ? 255 : 0);
> +	if (edid->revision >= 4 && ((t[4] & 0x0c) == 0x0c))
> +	    hmin += 255 ;
>  	hmax = t[8];
> -	if (edid->revision >= 4)
> -	    hmax += ((t[4] & 0x08) ? 255 : 0);
> +	if (edid->revision >= 4 && (t[4] & 0x08))
> +	    hmax += 255;
>  	hsync = drm_mode_hsync(mode);
>  
>  	return (hsync <= hmax && hsync >= hmin);
> @@ -1994,11 +1994,11 @@ mode_in_vsync_range(const struct drm_display_mode *mode,
>  	int vsync, vmin, vmax;
>  
>  	vmin = t[5];
> -	if (edid->revision >= 4)
> -	    vmin += ((t[4] & 0x01) ? 255 : 0);
> +	if (edid->revision >= 4 && ((t[4] & 0x03) == 0x03))
> +	    vmin += 255;
>  	vmax = t[6];
> -	if (edid->revision >= 4)
> -	    vmax += ((t[4] & 0x02) ? 255 : 0);
> +	if (edid->revision >= 4 && (t[4] & 0x02))
> +	    vmax += 255;

Please fix the indentation to use tabs on the lines you change while
you're at it.

BR,
Jani.


>  	vsync = drm_mode_vrefresh(mode);
>  
>  	return (vsync <= vmax && vsync >= vmin);

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the dri-devel mailing list