diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_dvo.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_dvo.c | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c index 5cd09034519b..307ed8ae9a19 100644 --- a/drivers/gpu/drm/i915/display/intel_dvo.c +++ b/drivers/gpu/drm/i915/display/intel_dvo.c @@ -324,6 +324,7 @@ static int intel_dvo_get_modes(struct drm_connector *connector)  	struct drm_i915_private *dev_priv = to_i915(connector->dev);  	const struct drm_display_mode *fixed_mode =  		to_intel_connector(connector)->panel.fixed_mode; +	int num_modes;  	/*  	 * We should probably have an i2c driver get_modes function for those @@ -331,21 +332,22 @@ static int intel_dvo_get_modes(struct drm_connector *connector)  	 * (TV-out, for example), but for now with just TMDS and LVDS,  	 * that's not the case.  	 */ -	intel_ddc_get_modes(connector, -			    intel_gmbus_get_adapter(dev_priv, GMBUS_PIN_DPC)); -	if (!list_empty(&connector->probed_modes)) -		return 1; +	num_modes = intel_ddc_get_modes(connector, +					intel_gmbus_get_adapter(dev_priv, GMBUS_PIN_DPC)); +	if (num_modes) +		return num_modes;  	if (fixed_mode) {  		struct drm_display_mode *mode; +  		mode = drm_mode_duplicate(connector->dev, fixed_mode);  		if (mode) {  			drm_mode_probed_add(connector, mode); -			return 1; +			num_modes++;  		}  	} -	return 0; +	return num_modes;  }  static const struct drm_connector_funcs intel_dvo_connector_funcs = {  |