26 May, 2014

1 commit

  • The 800x600 (SVGA) screen resolution was lacking in the set of
    built-in selectable EDID screen resolutions that can be used to
    repair misbehaving monitor firmware.

    This patch adds the related data set and expands the documentation.
    Note that the SVGA bit occupies a different byte to all the existing
    users of the established timing bits forcing a rework of the
    ESTABLISHED_TIMINGS_BITS macro.

    Tested new EDID on an aged (and misbehaving) industrial LCD panel;
    existing EDIDs still pass edid-decode's checksum checks.

    Signed-off-by: Daniel Thompson
    Cc: Randy Dunlap
    Cc: David Airlie
    Cc: Carsten Emde
    Cc: linux-doc@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Reviewed-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Daniel Thompson
     

12 Apr, 2013

1 commit


20 Jan, 2013

1 commit


20 Mar, 2012

1 commit

  • Broken monitors and/or broken graphic boards may send erroneous or no
    EDID data. This also applies to broken KVM devices that are unable to
    correctly forward the EDID data of the connected monitor but invent
    their own fantasy data.

    This patch allows to specify an EDID data set to be used instead of
    probing the monitor for it. It contains built-in data sets of frequently
    used screen resolutions. In addition, a particular EDID data set may be
    provided in the /lib/firmware directory and loaded via the firmware
    interface. The name is passed to the kernel as module parameter of the
    drm_kms_helper module either when loaded
    options drm_kms_helper edid_firmware=edid/1280x1024.bin
    or as kernel commandline parameter
    drm_kms_helper.edid_firmware=edid/1280x1024.bin

    It is also possible to restrict the usage of a specified EDID data set
    to a particular connector. This is done by prepending the name of the
    connector to the name of the EDID data set using the syntax
    edid_firmware=[:]
    such as, for example,
    edid_firmware=DVI-I-1:edid/1920x1080.bin
    in which case no other connector will be affected.

    The built-in data sets are
    Resolution Name
    --------------------------------
    1024x768 edid/1024x768.bin
    1280x1024 edid/1280x1024.bin
    1680x1050 edid/1680x1050.bin
    1920x1080 edid/1920x1080.bin

    They are ignored, if a file with the same name is available in the
    /lib/firmware directory.

    The built-in EDID data sets are based on standard timings that may not
    apply to a particular monitor and even crash it. Ideally, EDID data of
    the connected monitor should be used. They may be obtained through the
    drm/cardX/cardX-/edid entry in the /sys/devices PCI directory
    of a correctly working graphics adapter.

    It is even possible to specify the name of an EDID data set on-the-fly
    via the /sys/module interface, e.g.
    echo edid/myedid.bin >/sys/module/drm_kms_helper/parameters/edid_firmware
    The new screen mode is considered when the related kernel function is
    called for the first time after the change. Such calls are made when the
    X server is started or when the display settings dialog is opened in an
    already running X server.

    Signed-off-by: Carsten Emde
    Signed-off-by: Dave Airlie

    Carsten Emde