diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_modes.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_modes.c | 29 | 
1 files changed, 21 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c index 7a5238fc1a0..4bc1c0fc342 100644 --- a/drivers/gpu/drm/i915/intel_modes.c +++ b/drivers/gpu/drm/i915/intel_modes.c @@ -33,6 +33,24 @@  #include "i915_drv.h"  /** + * intel_connector_update_modes - update connector from edid + * @connector: DRM connector device to use + * @edid: previously read EDID information + */ +int intel_connector_update_modes(struct drm_connector *connector, +				struct edid *edid) +{ +	int ret; + +	drm_mode_connector_update_edid_property(connector, edid); +	ret = drm_add_edid_modes(connector, edid); +	drm_edid_to_eld(connector, edid); +	kfree(edid); + +	return ret; +} + +/**   * intel_ddc_get_modes - get modelist from monitor   * @connector: DRM connector device to use   * @adapter: i2c adapter @@ -43,17 +61,12 @@ int intel_ddc_get_modes(struct drm_connector *connector,  			struct i2c_adapter *adapter)  {  	struct edid *edid; -	int ret = 0;  	edid = drm_get_edid(connector, adapter); -	if (edid) { -		drm_mode_connector_update_edid_property(connector, edid); -		ret = drm_add_edid_modes(connector, edid); -		drm_edid_to_eld(connector, edid); -		kfree(edid); -	} +	if (!edid) +		return 0; -	return ret; +	return intel_connector_update_modes(connector, edid);  }  static const struct drm_prop_enum_list force_audio_names[] = {  |