I just attached this patch to https://bugzilla.redhat.com/show_bug.cgi?id=806091, along with the following comments:
This is the "first draft" of an EDID quirk-based approach to solving this problem. I intend to perform a bit of cleanup and break it up into a series of separate patches, but I'm posting it here for any comments about the approach. The patch does the following: * 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. 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?) Thoughts? -- ======================================================================== Ian Pilcher arequipeno at gmail.com "If you're going to shift my paradigm ... at least buy me dinner first." ======================================================================== -------------- next part -------------- A non-text attachment was scrubbed... Name: edid_quirks_all.patch Type: text/x-patch Size: 9610 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20120503/13c5436e/attachment-0001.bin>