[RFC] Re: [PATCH 0/1] drm-set-default-noedid-res.patch

Carsten Emde Carsten.Emde at osadl.org
Mon May 24 13:07:39 PDT 2010


Dave,

>> Some monitors and, more often, kvm switches do not provide working
>> EDID data. KMS based X configurations in recent server versions no
>> longer allow to override the screen resolution which makes it
>> impossible to correctly adapt the screen resolution to the monitor
>> in use. This patch allows to define the fallback screen resolution
>> to something else than the default 1024x768.
> Does video=800x600 not work for you?
I did a lot more tests; apparently, things are even more difficult than
expected.

These are my observations (all with Radeon X1950 and radeon driver):

- On the monitor side:
In addition to the known quirks, the EDID data may not be accessible or
erroneous. The original patch only solved the situation of unavailable
EDID data. A frequent reason of erroneous or unavailable EDID data is
the use of suboptimally designed KVM switches that are unable to probe
the connected monitor and send no or fantasy EDID data.

- On the Xorg side:
Older radeon drivers recognize the options "IgnoreEDID" and "NoDDC".
Using this trick, Xorg can be forced to disregard any EDID data and use
the resolution as specified in xorg.conf.

Less old radeon drivers still recognize the option "IgnoreEDID", but
this does not work any longer, since the option "NoDDC" has been
abandoned. Such drivers rely on correct EDID data.

Current radeon drivers should have the option "CustomEDID" to override
the probed EDID data (at least this is what the manual says), but I
couldn't get it working. The log file insists on saying that the option
"CustomEDID" is not used. These drivers also rely on correct EDID data.


My conclusion is, that the right place to solve the situation is in the
kernel. The attached patch makes the sysfs edid entry writable. If the
name of an existing binary EDID data file in /lib/firmware is supplied
such as

  cd /sys/devices/pci0000:00/0000:00:07.0/0000:05:00.0/drm/card0
  echo dvi_0.bin >card0-DVI-I-1/edid

the related connector will be set to these EDID data. Any probing is
then disabled. To restore the previous behavior and to re-enable monitor
probing, an empty string or a single line delimiter must be sent:

  echo >card0-DVI-I-1/edid

I have tested the patch successfully in a number of different
configurations. When userspace setup tools such as
gnome-display-properties are used, the name and resolution data of the
provided (fake) EDID data are correctly decoded.

When compared to the various X hacks I tried, I find this solution
better, since it solves the problem at a place where it belongs. This is
in line with the observation that EDID related functionality appears to
fade out of X drivers.

Does this make sense?

	Carsten.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: drivers-gpu-drm-allow-to-load-edid-firmware.patch
Type: text/x-patch
Size: 4333 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20100524/8cf772c1/attachment.bin>


More information about the dri-devel mailing list