[Intel-gfx] [PATCH] drm/edid: Adding common CVT inferred modes when monitor allows range limited ones trough EDID.
ajax at redhat.com
Fri Apr 13 18:31:25 CEST 2012
On 4/13/12 11:41 AM, Takashi Iwai wrote:
> At Fri, 13 Apr 2012 11:30:01 -0400, Alex Deucher wrote:
>> One thing to be careful of is that some monitors (especially LCD
>> panels) don't like modes that are not in their EDIDs. As such when
>> you try and set them you often get a wonky display or more often a
>> blank screen. We used to add a lot of inferred modes to the mode list
>> in the xserver which resulted in a lot of blank screens when some odd
>> mode was picked as the best match for a cloned display. The "fix" was
>> to only add the inferred modes on analog monitors which were more
>> likely to be able to support them.
> Thanks, it's good to know!
> Though, I still wonder whether adding inferred modes for 1366x768 or
> 1600x900 would cause any big problems. On such monitors, 1360x768 or
> 1440x900 (or 1680x1050) are usually seen in the supported list.
> Of course, it's never 100% safe. But not so bad odds?
"Mostly working" is a fancy way of saying "broken".
The semantics of the range descriptor are "I can support modes within
these ranges generated by these timing formulas and/or listed in DMT".
That's why we only walk that mode list when we find a range descriptor:
if you _don't_ find a range descriptor then the monitor is explicitly
telling you it doesn't support arbitrary modes over a range.
You can be more aggressive than that if you know your CRTC's scaler can
compensate, in which case you'd run the display at the native mode and
let the scaler translate. The EDID parser is currently not told that
bit of context, and in a sense it really shouldn't; it would be a
function of the CRTC and the DMT list, independent of whether you have
EDID at all.
It's not especially hard to add, I suppose. You'd want to mark modes so
added so the CRTC setup knows to do the appropriate panel magic.
More information about the Intel-gfx