aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dp_mst.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp_mst.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c14
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
257static void intel_mst_enable_dp(struct intel_encoder *encoder, 258static 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}