[Intel-gfx] [PATCH 1/2] drm: Fix EDID detailed timing misc flags decoding

Jesse Barnes jbarnes at virtuousgeek.org
Fri Jun 26 01:50:30 CEST 2009


On Wed, 24 Jun 2009 23:49:02 -0700
Keith Packard <keithp at keithp.com> wrote:
> -	if (pt->misc & DRM_EDID_PT_STEREO) {
> +	if (DRM_EDID_DETAILED_MISC_HAS_STEREO(pt->misc)) {
>  		printk(KERN_WARNING "stereo mode not supported\n");
>  		return NULL;

Looks correct.

>  	}
> -	if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) {
> -		printk(KERN_WARNING "integrated sync not
> supported\n");
> +	if (!(pt->misc & DRM_EDID_DETAILED_MISC_DIGITAL_SYNC)) {
> +		printk(KERN_WARNING "analog sync not supported\n");
> +		return NULL;
> +	}
> +	if (!(pt->misc &
> DRM_EDID_DETAILED_MISC_DIGITAL_SYNC_SEPARATE)) {
> +		printk(KERN_WARNING "digital composite sync not
> supported\n"); return NULL;
>  	}

Is this mixing up the pixel block definition of sync vs the basic
block definition (which has all the composite, green etc bits)?

>  
> @@ -335,16 +339,17 @@ static struct drm_display_mode
> *drm_mode_detailed(struct drm_device *dev, 
>  	drm_mode_set_name(mode);
>  
> -	if (pt->misc & DRM_EDID_PT_INTERLACED)
> +	if (pt->misc & DRM_EDID_DETAILED_MISC_INTERLACED)
>  		mode->flags |= DRM_MODE_FLAG_INTERLACE;

This looks right.

>  
>  	if (quirks & EDID_QUIRK_DETAILED_SYNC_PP) {
> -		pt->misc |= DRM_EDID_PT_HSYNC_POSITIVE |
> DRM_EDID_PT_VSYNC_POSITIVE;
> +		pt->misc |=
> (DRM_EDID_DETAILED_MISC_DIGITAL_HSYNC_POSITIVE |
> +
> DRM_EDID_DETAILED_MISC_DIGITAL_VSYNC_POSITIVE); }

Looks ok, but according to wikipedia hsync+ is 1<<1 and vsync+ is 1<<2
instead.  Other than that the #defines look ok (and I wouldn't trust
wikipedia; iirc it had a few errors when I looked at it last).

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list