diff options
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index f6a72cbb152d..5666e89288d3 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -44,7 +44,7 @@ | |||
44 | struct intel_lvds { | 44 | struct intel_lvds { |
45 | struct intel_encoder base; | 45 | struct intel_encoder base; |
46 | 46 | ||
47 | bool edid_good; | 47 | struct edid *edid; |
48 | 48 | ||
49 | int fitting_mode; | 49 | int fitting_mode; |
50 | u32 pfit_control; | 50 | u32 pfit_control; |
@@ -475,14 +475,12 @@ static int intel_lvds_get_modes(struct drm_connector *connector) | |||
475 | { | 475 | { |
476 | struct intel_lvds *intel_lvds = intel_attached_lvds(connector); | 476 | struct intel_lvds *intel_lvds = intel_attached_lvds(connector); |
477 | struct drm_device *dev = connector->dev; | 477 | struct drm_device *dev = connector->dev; |
478 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
479 | struct drm_display_mode *mode; | 478 | struct drm_display_mode *mode; |
480 | 479 | ||
481 | if (intel_lvds->edid_good) { | 480 | if (intel_lvds->edid) { |
482 | int ret = intel_ddc_get_modes(connector, | 481 | drm_mode_connector_update_edid_property(connector, |
483 | &dev_priv->gmbus[GMBUS_PORT_PANEL].adapter); | 482 | intel_lvds->edid); |
484 | if (ret) | 483 | return drm_add_edid_modes(connector, intel_lvds->edid); |
485 | return ret; | ||
486 | } | 484 | } |
487 | 485 | ||
488 | mode = drm_mode_duplicate(dev, intel_lvds->fixed_mode); | 486 | mode = drm_mode_duplicate(dev, intel_lvds->fixed_mode); |
@@ -906,11 +904,10 @@ void intel_lvds_init(struct drm_device *dev) | |||
906 | * Attempt to get the fixed panel mode from DDC. Assume that the | 904 | * Attempt to get the fixed panel mode from DDC. Assume that the |
907 | * preferred mode is the right one. | 905 | * preferred mode is the right one. |
908 | */ | 906 | */ |
909 | intel_lvds->edid_good = true; | 907 | intel_lvds->edid = drm_get_edid(connector, |
910 | if (!intel_ddc_get_modes(connector, &dev_priv->gmbus[GMBUS_PORT_PANEL].adapter)) | 908 | &dev_priv->gmbus[GMBUS_PORT_PANEL].adapter); |
911 | intel_lvds->edid_good = false; | ||
912 | 909 | ||
913 | if (!intel_lvds->edid_good) { | 910 | if (!intel_lvds->edid) { |
914 | /* Didn't get an EDID, so | 911 | /* Didn't get an EDID, so |
915 | * Set wide sync ranges so we get all modes | 912 | * Set wide sync ranges so we get all modes |
916 | * handed to valid_mode for checking | 913 | * handed to valid_mode for checking |