From ec5e4f06ab01f1599cce8cfae7087d6439015649 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 8 Nov 2010 23:20:52 +0000 Subject: [PATCH] --- yaml --- r: 221775 b: refs/heads/master c: 3f8ff0e72d75fdbe7f2cba2c4015fd9fdd9e13fd h: refs/heads/master i: 221773: a8007af22bb1580998c81416b20a8c6e1e9ecd86 221771: 584548815efe7182378aa1e09d6acac710f74899 221767: 85a5d3c18eef8ac02f7f820ee68474de65cfae3a 221759: 61fd92e6189722fa440cddec09654c6847edbed0 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/intel_lvds.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 4af053e9d770..1cdaf47ba33e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 08deebf98783d3de553eed2c9b6b8dcc7e168567 +refs/heads/master: 3f8ff0e72d75fdbe7f2cba2c4015fd9fdd9e13fd diff --git a/trunk/drivers/gpu/drm/i915/intel_lvds.c b/trunk/drivers/gpu/drm/i915/intel_lvds.c index f1a649990ea9..4324a326f98e 100644 --- a/trunk/drivers/gpu/drm/i915/intel_lvds.c +++ b/trunk/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