[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