aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c19
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 @@
44struct intel_lvds { 44struct 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