diff options
| -rw-r--r-- | 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 f1a649990ea9..4324a326f98e 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) | |||
| 481 | struct drm_device *dev = connector->dev; | 481 | struct drm_device *dev = connector->dev; |
| 482 | struct drm_display_mode *mode; | 482 | struct drm_display_mode *mode; |
| 483 | 483 | ||
| 484 | if (intel_lvds->edid) { | 484 | if (intel_lvds->edid) |
| 485 | drm_mode_connector_update_edid_property(connector, | ||
| 486 | intel_lvds->edid); | ||
| 487 | return drm_add_edid_modes(connector, intel_lvds->edid); | 485 | return drm_add_edid_modes(connector, intel_lvds->edid); |
| 488 | } | ||
| 489 | 486 | ||
| 490 | mode = drm_mode_duplicate(dev, intel_lvds->fixed_mode); | 487 | mode = drm_mode_duplicate(dev, intel_lvds->fixed_mode); |
| 491 | if (mode == 0) | 488 | if (mode == 0) |
| @@ -939,7 +936,16 @@ void intel_lvds_init(struct drm_device *dev) | |||
| 939 | */ | 936 | */ |
| 940 | intel_lvds->edid = drm_get_edid(connector, | 937 | intel_lvds->edid = drm_get_edid(connector, |
| 941 | &dev_priv->gmbus[pin].adapter); | 938 | &dev_priv->gmbus[pin].adapter); |
| 942 | 939 | if (intel_lvds->edid) { | |
| 940 | if (drm_add_edid_modes(connector, | ||
| 941 | intel_lvds->edid)) { | ||
| 942 | drm_mode_connector_update_edid_property(connector, | ||
| 943 | intel_lvds->edid); | ||
| 944 | } else { | ||
| 945 | kfree(intel_lvds->edid); | ||
| 946 | intel_lvds->edid = NULL; | ||
| 947 | } | ||
| 948 | } | ||
| 943 | if (!intel_lvds->edid) { | 949 | if (!intel_lvds->edid) { |
| 944 | /* Didn't get an EDID, so | 950 | /* Didn't get an EDID, so |
| 945 | * Set wide sync ranges so we get all modes | 951 | * Set wide sync ranges so we get all modes |
