aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_modes.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_modes.c')
-rw-r--r--drivers/gpu/drm/i915/intel_modes.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c
index 3111a1c2731f..9562176defc4 100644
--- a/drivers/gpu/drm/i915/intel_modes.c
+++ b/drivers/gpu/drm/i915/intel_modes.c
@@ -53,9 +53,9 @@ bool intel_ddc_probe(struct intel_encoder *intel_encoder)
53 } 53 }
54 }; 54 };
55 55
56 intel_i2c_quirk_set(intel_encoder->base.dev, true); 56 intel_i2c_quirk_set(intel_encoder->enc.dev, true);
57 ret = i2c_transfer(intel_encoder->ddc_bus, msgs, 2); 57 ret = i2c_transfer(intel_encoder->ddc_bus, msgs, 2);
58 intel_i2c_quirk_set(intel_encoder->base.dev, false); 58 intel_i2c_quirk_set(intel_encoder->enc.dev, false);
59 if (ret == 2) 59 if (ret == 2)
60 return true; 60 return true;
61 61
@@ -65,22 +65,23 @@ bool intel_ddc_probe(struct intel_encoder *intel_encoder)
65/** 65/**
66 * intel_ddc_get_modes - get modelist from monitor 66 * intel_ddc_get_modes - get modelist from monitor
67 * @connector: DRM connector device to use 67 * @connector: DRM connector device to use
68 * @adapter: i2c adapter
68 * 69 *
69 * Fetch the EDID information from @connector using the DDC bus. 70 * Fetch the EDID information from @connector using the DDC bus.
70 */ 71 */
71int intel_ddc_get_modes(struct intel_encoder *intel_encoder) 72int intel_ddc_get_modes(struct drm_connector *connector,
73 struct i2c_adapter *adapter)
72{ 74{
73 struct edid *edid; 75 struct edid *edid;
74 int ret = 0; 76 int ret = 0;
75 77
76 intel_i2c_quirk_set(intel_encoder->base.dev, true); 78 intel_i2c_quirk_set(connector->dev, true);
77 edid = drm_get_edid(&intel_encoder->base, intel_encoder->ddc_bus); 79 edid = drm_get_edid(connector, adapter);
78 intel_i2c_quirk_set(intel_encoder->base.dev, false); 80 intel_i2c_quirk_set(connector->dev, false);
79 if (edid) { 81 if (edid) {
80 drm_mode_connector_update_edid_property(&intel_encoder->base, 82 drm_mode_connector_update_edid_property(connector, edid);
81 edid); 83 ret = drm_add_edid_modes(connector, edid);
82 ret = drm_add_edid_modes(&intel_encoder->base, edid); 84 connector->display_info.raw_edid = NULL;
83 intel_encoder->base.display_info.raw_edid = NULL;
84 kfree(edid); 85 kfree(edid);
85 } 86 }
86 87