diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 18 | 
1 files changed, 10 insertions, 8 deletions
| diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index f192f58708c2..ffe5f8430957 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -5725,8 +5725,11 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,  	if (!fixed_mode && dev_priv->vbt.lfp_lvds_vbt_mode) {  		fixed_mode = drm_mode_duplicate(dev,  					dev_priv->vbt.lfp_lvds_vbt_mode); -		if (fixed_mode) +		if (fixed_mode) {  			fixed_mode->type |= DRM_MODE_TYPE_PREFERRED; +			connector->display_info.width_mm = fixed_mode->width_mm; +			connector->display_info.height_mm = fixed_mode->height_mm; +		}  	}  	mutex_unlock(&dev->mode_config.mutex); @@ -5923,9 +5926,9 @@ fail:  	return false;  } -void -intel_dp_init(struct drm_device *dev, -	      i915_reg_t output_reg, enum port port) +bool intel_dp_init(struct drm_device *dev, +		   i915_reg_t output_reg, +		   enum port port)  {  	struct drm_i915_private *dev_priv = dev->dev_private;  	struct intel_digital_port *intel_dig_port; @@ -5935,7 +5938,7 @@ intel_dp_init(struct drm_device *dev,  	intel_dig_port = kzalloc(sizeof(*intel_dig_port), GFP_KERNEL);  	if (!intel_dig_port) -		return; +		return false;  	intel_connector = intel_connector_alloc();  	if (!intel_connector) @@ -5992,7 +5995,7 @@ intel_dp_init(struct drm_device *dev,  	if (!intel_dp_init_connector(intel_dig_port, intel_connector))  		goto err_init_connector; -	return; +	return true;  err_init_connector:  	drm_encoder_cleanup(encoder); @@ -6000,8 +6003,7 @@ err_encoder_init:  	kfree(intel_connector);  err_connector_alloc:  	kfree(intel_dig_port); - -	return; +	return false;  }  void intel_dp_mst_suspend(struct drm_device *dev) | 
