git: drm: Implement simple broken EDID override by loading firmware (v16)
Francois Tigeot
ftigeot at crater.dragonflybsd.org
Thu Nov 26 00:36:09 PST 2015
commit 819060d54b19321f7f9f213e90c1b8d3dc87a45e
Author: zrj <rimvydas.jasinskas at gmail.com>
Date: Fri Nov 20 13:59:41 2015 +0200
drm: Implement simple broken EDID override by loading firmware (v16)
Main differences between this variant and its gpl analogue:
* permissive license;
* no builtin generic EDID data blocks;
Generic EDID firmware can be used from new dports/sysutils/devedid-data port.
Still it is better to use monitor specific EDID block, either by modifying
generic variants or repairing dumped one or even better extracting from
working identical monitor if it is available (look for hex dump in Xorg.0.log).
Make sure that used fw.bin at least has correct resolutions and valid checksum.
This can be done with sysutils/edid-decode utility.
Tested with broken lcd panel returning corrupted EDID block on dvi port:
* radeonkms R7 240, dvi and dvi2hdmi cable adapter
echo 'drm.edid_firmware="DVI-D-1:edidfw_repaired"' >> /boot/loader.conf
* i915 Haswell i7-4712MQ laptop, dvi2hdmi cable adapter
echo 'drm.edid_firmware="HDMI-A-1:edidfw_1920x1080"' >> /boot/loader.conf
echo 'drm.video.hdmia1="e" # force enable on i915' >> /boot/loader.conf
While here, document tunables: drm.video.<connector> and new drm.edid_firmware.
Summary of changes:
share/man/man4/drm.4 | 52 ++++++++++
sys/conf/files | 1 +
sys/dev/drm/drm/Makefile | 1 +
sys/dev/drm/drm_edid_load.c | 170 +++++++++++++++++++++++++++++++++
sys/dev/drm/include/drm/drm_os_linux.h | 3 +
5 files changed, 227 insertions(+)
create mode 100644 sys/dev/drm/drm_edid_load.c
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/819060d54b19321f7f9f213e90c1b8d3dc87a45e
--
DragonFly BSD source repository
More information about the Commits
mailing list