lkml.org 
[lkml]   [2010]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] drm/i915: Fix LVDS fixed-mode regression from 219adae1
    Date
    Commit 219adae1 cached the EDID found during LVDS init, but in the
    process prevented the init routine from discovering the preferred
    fixed-mode for the panel. This was causing us to guess the correct mode,
    which sometimes is wide of the mark.

    Reported-by: Jon Masters <jonathan@jonmasters.org>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    ---
    drivers/gpu/drm/i915/intel_lvds.c | 16 +++++++++++-----
    1 files changed, 11 insertions(+), 5 deletions(-)

    diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
    index f1a6499..4324a32 100644
    --- a/drivers/gpu/drm/i915/intel_lvds.c
    +++ b/drivers/gpu/drm/i915/intel_lvds.c
    @@ -481,11 +481,8 @@ static int intel_lvds_get_modes(struct drm_connector *connector)
    struct drm_device *dev = connector->dev;
    struct drm_display_mode *mode;

    - if (intel_lvds->edid) {
    - drm_mode_connector_update_edid_property(connector,
    - intel_lvds->edid);
    + if (intel_lvds->edid)
    return drm_add_edid_modes(connector, intel_lvds->edid);
    - }

    mode = drm_mode_duplicate(dev, intel_lvds->fixed_mode);
    if (mode == 0)
    @@ -939,7 +936,16 @@ void intel_lvds_init(struct drm_device *dev)
    */
    intel_lvds->edid = drm_get_edid(connector,
    &dev_priv->gmbus[pin].adapter);
    -
    + if (intel_lvds->edid) {
    + if (drm_add_edid_modes(connector,
    + intel_lvds->edid)) {
    + drm_mode_connector_update_edid_property(connector,
    + intel_lvds->edid);
    + } else {
    + kfree(intel_lvds->edid);
    + intel_lvds->edid = NULL;
    + }
    + }
    if (!intel_lvds->edid) {
    /* Didn't get an EDID, so
    * Set wide sync ranges so we get all modes
    --
    1.7.2.3


    \
     
     \ /
      Last update: 2010-11-09 00:27    [W:0.022 / U:30.956 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site