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.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 983553cf8b74..3e4be5a3becd 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -173,6 +173,11 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder)
173 return; 173 return;
174 } 174 }
175 175
176 /* MST encoders are bound to a crtc, not to a connector,
177 * force the mapping here for get_hw_state.
178 */
179 found->encoder = encoder;
180
176 DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links); 181 DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
177 intel_mst->port = found->port; 182 intel_mst->port = found->port;
178 183
@@ -400,7 +405,7 @@ static const struct drm_encoder_funcs intel_dp_mst_enc_funcs = {
400 405
401static bool intel_dp_mst_get_hw_state(struct intel_connector *connector) 406static bool intel_dp_mst_get_hw_state(struct intel_connector *connector)
402{ 407{
403 if (connector->encoder) { 408 if (connector->encoder && connector->base.state->crtc) {
404 enum pipe pipe; 409 enum pipe pipe;
405 if (!connector->encoder->get_hw_state(connector->encoder, &pipe)) 410 if (!connector->encoder->get_hw_state(connector->encoder, &pipe))
406 return false; 411 return false;