diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index f192f58708c2..79cf2d5f5a20 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -4977,9 +4977,6 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) | |||
4977 | intel_display_power_get(dev_priv, power_domain); | 4977 | intel_display_power_get(dev_priv, power_domain); |
4978 | 4978 | ||
4979 | if (long_hpd) { | 4979 | if (long_hpd) { |
4980 | /* indicate that we need to restart link training */ | ||
4981 | intel_dp->train_set_valid = false; | ||
4982 | |||
4983 | intel_dp_long_pulse(intel_dp->attached_connector); | 4980 | intel_dp_long_pulse(intel_dp->attached_connector); |
4984 | if (intel_dp->is_mst) | 4981 | if (intel_dp->is_mst) |
4985 | ret = IRQ_HANDLED; | 4982 | ret = IRQ_HANDLED; |
@@ -5725,8 +5722,11 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, | |||
5725 | if (!fixed_mode && dev_priv->vbt.lfp_lvds_vbt_mode) { | 5722 | if (!fixed_mode && dev_priv->vbt.lfp_lvds_vbt_mode) { |
5726 | fixed_mode = drm_mode_duplicate(dev, | 5723 | fixed_mode = drm_mode_duplicate(dev, |
5727 | dev_priv->vbt.lfp_lvds_vbt_mode); | 5724 | dev_priv->vbt.lfp_lvds_vbt_mode); |
5728 | if (fixed_mode) | 5725 | if (fixed_mode) { |
5729 | fixed_mode->type |= DRM_MODE_TYPE_PREFERRED; | 5726 | fixed_mode->type |= DRM_MODE_TYPE_PREFERRED; |
5727 | connector->display_info.width_mm = fixed_mode->width_mm; | ||
5728 | connector->display_info.height_mm = fixed_mode->height_mm; | ||
5729 | } | ||
5730 | } | 5730 | } |
5731 | mutex_unlock(&dev->mode_config.mutex); | 5731 | mutex_unlock(&dev->mode_config.mutex); |
5732 | 5732 | ||
@@ -5923,9 +5923,9 @@ fail: | |||
5923 | return false; | 5923 | return false; |
5924 | } | 5924 | } |
5925 | 5925 | ||
5926 | void | 5926 | bool intel_dp_init(struct drm_device *dev, |
5927 | intel_dp_init(struct drm_device *dev, | 5927 | i915_reg_t output_reg, |
5928 | i915_reg_t output_reg, enum port port) | 5928 | enum port port) |
5929 | { | 5929 | { |
5930 | struct drm_i915_private *dev_priv = dev->dev_private; | 5930 | struct drm_i915_private *dev_priv = dev->dev_private; |
5931 | struct intel_digital_port *intel_dig_port; | 5931 | struct intel_digital_port *intel_dig_port; |
@@ -5935,7 +5935,7 @@ intel_dp_init(struct drm_device *dev, | |||
5935 | 5935 | ||
5936 | intel_dig_port = kzalloc(sizeof(*intel_dig_port), GFP_KERNEL); | 5936 | intel_dig_port = kzalloc(sizeof(*intel_dig_port), GFP_KERNEL); |
5937 | if (!intel_dig_port) | 5937 | if (!intel_dig_port) |
5938 | return; | 5938 | return false; |
5939 | 5939 | ||
5940 | intel_connector = intel_connector_alloc(); | 5940 | intel_connector = intel_connector_alloc(); |
5941 | if (!intel_connector) | 5941 | if (!intel_connector) |
@@ -5992,7 +5992,7 @@ intel_dp_init(struct drm_device *dev, | |||
5992 | if (!intel_dp_init_connector(intel_dig_port, intel_connector)) | 5992 | if (!intel_dp_init_connector(intel_dig_port, intel_connector)) |
5993 | goto err_init_connector; | 5993 | goto err_init_connector; |
5994 | 5994 | ||
5995 | return; | 5995 | return true; |
5996 | 5996 | ||
5997 | err_init_connector: | 5997 | err_init_connector: |
5998 | drm_encoder_cleanup(encoder); | 5998 | drm_encoder_cleanup(encoder); |
@@ -6000,8 +6000,7 @@ err_encoder_init: | |||
6000 | kfree(intel_connector); | 6000 | kfree(intel_connector); |
6001 | err_connector_alloc: | 6001 | err_connector_alloc: |
6002 | kfree(intel_dig_port); | 6002 | kfree(intel_dig_port); |
6003 | 6003 | return false; | |
6004 | return; | ||
6005 | } | 6004 | } |
6006 | 6005 | ||
6007 | void intel_dp_mst_suspend(struct drm_device *dev) | 6006 | void intel_dp_mst_suspend(struct drm_device *dev) |