Enhancing EDID quirk functionality

Adam Jackson ajax at redhat.com
Thu May 3 12:42:32 PDT 2012


On 5/3/12 2:01 PM, Ian Pilcher wrote:

> The patch does the following:

This looks good, thank you for taking it on.

> * Changes the vendor field of struct edid_quirk to an array, rather
>    than a pointer.  (This has already been sent to the dri-devel list.)
> * Adds two new quirks EDID_QUIRK_DISABLE_INFOFRAMES and
>    EDID_QUIRK_NO_AUDIO. This first quirk causes drm_detect_hdmi_monitor
>    to return false; the second   causes drm_detect_monitor_audio to
>    return false.
> * Logs the EDID vendor and model of connected monitors.
> * Adds an edid_quirks parameter to the drm module, for user-defined
>    quirks.

I'd like to see documentation for the bit values of the quirks as well. 
And, ideally, this would also have some runtime API for manipulating the 
quirk list, so that way you can test new quirks without needing a reboot 
cycle.

To close the loop all the way on that I'd also want to be able to scrape 
the quirk list back out from that API, but that's not completely clean 
right now.  We're being a little cavalier with the quirk list as it 
stands because we don't differentiate among phy layers, and I can easily 
imagine a monitor that needs a quirk on DVI but where the same quirk on 
the same monitors' VGA would break it.  I don't think this has caused 
problems yet, but.

> With this patch, my display works when I add
> drm.edid_quirks=GSM:0x563f:0x180 to my kernel command line.  (0x80,
> EDID_QUIRK_DISABLE_INFOFRAMES, makes it work with the nouveau driver;
> 0x100, EDID_QUIRK_NO_AUDIO, makes it work with the i915 driver.  I.e.,
> the i915 driver is sending audio InfoFrames even when
> drm_detect_hdmi_monitor returns false; bug?)

InfoFrames are not valid for non-HDMI sinks, so yes, I'd call that a bug.

Your original bug report is a little strange, particularly:

https://bugzilla.redhat.com/attachment.cgi?id=572790

Where the EDID for DP-1 appears to be truncated: the "extension" field 
(second byte from the end) is 1 as you'd expect for an HDMI monitor, but 
there's no extension block.  How big of a file do you get from 
/sys/class/drm/*/edid for that port?

- ajax


More information about the dri-devel mailing list