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