Bogus video resolution in Linux 3.5-rc4

Takashi Iwai tiwai at suse.de
Mon Jun 25 08:57:55 PDT 2012


At Mon, 25 Jun 2012 17:53:12 +0200,
Takashi Iwai wrote:
> 
> And, does the patch below help?

BTW, the patch below contains the possible generic fix.
It seems that EDID_QUIRK_FIRST_DETAILED_PREFERRED handling is missing
from the beginning.  So I wrote it just from what I can imagine from
the comment:
  /* Monitor forgot to set the first detailed is preferred bit. */
  #define EDID_QUIRK_FIRST_DETAILED_PREFERRED	(1 << 5)

Adam, is my interpretation correct?


Takashi

> 
> 
> Takashi
> 
> ---
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 5873e48..dab8580 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -116,6 +116,7 @@ static struct edid_quirk {
>  
>  	/* Proview AY765C */
>  	{ "PTS", 765, EDID_QUIRK_FIRST_DETAILED_PREFERRED },
> +	{ "PTS", 793, EDID_QUIRK_FIRST_DETAILED_PREFERRED },
>  
>  	/* Samsung SyncMaster 205BW.  Note: irony */
>  	{ "SAM", 541, EDID_QUIRK_DETAILED_SYNC_PP },
> @@ -1404,7 +1405,9 @@ do_detailed_mode(struct detailed_timing *timing, void *c)
>  		if (!newmode)
>  			return;
>  
> -		if (closure->preferred)
> +		if (closure->preferred ||
> +		    ((closure->quirks & EDID_QUIRK_FIRST_DETAILED_PREFERRED) &&
> +		     !closure->modes))
>  			newmode->type |= DRM_MODE_TYPE_PREFERRED;
>  
>  		drm_mode_probed_add(closure->connector, newmode);


More information about the dri-devel mailing list