Re: Bogus video resolution in Linux 3.5-rc4

From: Takashi Iwai
Date: Mon Jun 25 2012 - 15:24:00 EST


At Mon, 25 Jun 2012 19:40:48 +0200,
Sven Joachim wrote:
>
> Am 25.06.2012 um 17:53 schrieb Takashi Iwai:
>
> > Looking at the EDID data, the problem is likely that your monitor
> > doesn't give the proper preferred mode.
> > What does xrandr output show?
>
> ,----
> | Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
> | DVI-I-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
> | 1280x1024 75.0* 60.0
> | 1024x768 75.1 75.0 70.1 60.0
> | 832x624 74.6
> | 800x600 72.2 75.0 60.3 56.2
> | 640x480 72.8 75.0 66.7 60.0 59.9
> | VGA-1 disconnected (normal left inverted right x axis y axis)
> `----
>
> I should note that the monitor is actually connected via VGA, not DVI.
> This seems to be similar to https://bugs.freedesktop.org/50830, but
> since it never caused any real problems for me, I didn't bother.
>
> > And, does the patch below help?
>
> Somewhat: at least I get 1280x1024 again, but at 60 rather than 75 Hz.

I guess it worked casually because 1280x1024@75 was the highest
resolution / rate, so it was picked up as the preferred mode...

> The xrandr command shows various bogus modes.

Can't these values be displayed on your monitor at all?
If they can be displayed, they are valid modes, not really bogus.
After all, they are values that EDID of your montor advertises as
available ranges.


Takashi

> ,----
> | Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
> | DVI-I-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
> | 1280x1024 60.0*+ 75.0
> | 1680x945 60.0
> | 1400x1050 60.0
> | 1600x900 60.0
> | 1440x900 75.0 59.9
> | 1280x960 60.0
> | 1366x768 60.0
> | 1360x768 60.0
> | 1280x800 74.9 59.8
> | 1152x864 75.0
> | 1280x768 74.9 59.9
> | 1024x768 75.1 75.0 70.1 60.0
> | 1024x576 60.0
> | 832x624 74.6
> | 800x600 72.2 75.0 60.3 56.2
> | 848x480 60.0
> | 640x480 75.0 72.8 72.8 66.7 60.0 59.9
> | VGA-1 disconnected (normal left inverted right x axis y axis)
> `----
>
> Cheers,
> Sven
>
>
> > ---
> > 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);
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/