diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp_mst.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp_mst.c | 7 |
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 | ||
401 | static bool intel_dp_mst_get_hw_state(struct intel_connector *connector) | 406 | static 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; |