diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp_mst.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp_mst.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c index 7e3e01607643..77920f1a3da1 100644 --- a/drivers/gpu/drm/i915/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/intel_dp_mst.c | |||
@@ -166,6 +166,8 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder, | |||
166 | struct intel_connector *connector = | 166 | struct intel_connector *connector = |
167 | to_intel_connector(old_conn_state->connector); | 167 | to_intel_connector(old_conn_state->connector); |
168 | 168 | ||
169 | intel_ddi_disable_pipe_clock(old_crtc_state); | ||
170 | |||
169 | /* this can fail */ | 171 | /* this can fail */ |
170 | drm_dp_check_act_status(&intel_dp->mst_mgr); | 172 | drm_dp_check_act_status(&intel_dp->mst_mgr); |
171 | /* and this can also fail */ | 173 | /* and this can also fail */ |
@@ -241,17 +243,16 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder, | |||
241 | connector->port, | 243 | connector->port, |
242 | pipe_config->pbn, | 244 | pipe_config->pbn, |
243 | pipe_config->dp_m_n.tu); | 245 | pipe_config->dp_m_n.tu); |
244 | if (ret == false) { | 246 | if (!ret) |
245 | DRM_ERROR("failed to allocate vcpi\n"); | 247 | DRM_ERROR("failed to allocate vcpi\n"); |
246 | return; | ||
247 | } | ||
248 | |||
249 | 248 | ||
250 | intel_dp->active_mst_links++; | 249 | intel_dp->active_mst_links++; |
251 | temp = I915_READ(DP_TP_STATUS(port)); | 250 | temp = I915_READ(DP_TP_STATUS(port)); |
252 | I915_WRITE(DP_TP_STATUS(port), temp); | 251 | I915_WRITE(DP_TP_STATUS(port), temp); |
253 | 252 | ||
254 | ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr); | 253 | ret = drm_dp_update_payload_part1(&intel_dp->mst_mgr); |
254 | |||
255 | intel_ddi_enable_pipe_clock(pipe_config); | ||
255 | } | 256 | } |
256 | 257 | ||
257 | static void intel_mst_enable_dp(struct intel_encoder *encoder, | 258 | static void intel_mst_enable_dp(struct intel_encoder *encoder, |
@@ -263,7 +264,6 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder, | |||
263 | struct intel_dp *intel_dp = &intel_dig_port->dp; | 264 | struct intel_dp *intel_dp = &intel_dig_port->dp; |
264 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); | 265 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
265 | enum port port = intel_dig_port->base.port; | 266 | enum port port = intel_dig_port->base.port; |
266 | int ret; | ||
267 | 267 | ||
268 | DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links); | 268 | DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links); |
269 | 269 | ||
@@ -274,9 +274,9 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder, | |||
274 | 1)) | 274 | 1)) |
275 | DRM_ERROR("Timed out waiting for ACT sent\n"); | 275 | DRM_ERROR("Timed out waiting for ACT sent\n"); |
276 | 276 | ||
277 | ret = drm_dp_check_act_status(&intel_dp->mst_mgr); | 277 | drm_dp_check_act_status(&intel_dp->mst_mgr); |
278 | 278 | ||
279 | ret = drm_dp_update_payload_part2(&intel_dp->mst_mgr); | 279 | drm_dp_update_payload_part2(&intel_dp->mst_mgr); |
280 | if (pipe_config->has_audio) | 280 | if (pipe_config->has_audio) |
281 | intel_audio_codec_enable(encoder, pipe_config, conn_state); | 281 | intel_audio_codec_enable(encoder, pipe_config, conn_state); |
282 | } | 282 | } |