aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2015-08-27 07:13:31 -0400
committerJani Nikula <jani.nikula@intel.com>2015-09-08 09:16:50 -0400
commite85376cbd23299e4d40bace0cb5ab867b270fdbd (patch)
tree8d171cd1a671c290e2b7f22162048fd6ef37ac02 /drivers/gpu/drm/i915/intel_display.c
parent4e3d1e26c2b2c40ebff69f2825fa862bfcf082d1 (diff)
drm/i915: Fix broken mst get_hw_state.
connector->encoder is initialized as NULL. Fix this by setting it in during pre enable. MST connectors are not read out during initial hw readout, and have no fixed encoder mappings. So it's harmless to return false when the connector has never been assigned to an encoder. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index ca9278be49f7..8cc9264f7809 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -6305,7 +6305,7 @@ static void intel_connector_check_state(struct intel_connector *connector)
6305 connector->base.name); 6305 connector->base.name);
6306 6306
6307 if (connector->get_hw_state(connector)) { 6307 if (connector->get_hw_state(connector)) {
6308 struct drm_encoder *encoder = &connector->encoder->base; 6308 struct intel_encoder *encoder = connector->encoder;
6309 struct drm_connector_state *conn_state = connector->base.state; 6309 struct drm_connector_state *conn_state = connector->base.state;
6310 6310
6311 I915_STATE_WARN(!crtc, 6311 I915_STATE_WARN(!crtc,
@@ -6317,13 +6317,13 @@ static void intel_connector_check_state(struct intel_connector *connector)
6317 I915_STATE_WARN(!crtc->state->active, 6317 I915_STATE_WARN(!crtc->state->active,
6318 "connector is active, but attached crtc isn't\n"); 6318 "connector is active, but attached crtc isn't\n");
6319 6319
6320 if (!encoder) 6320 if (!encoder || encoder->type == INTEL_OUTPUT_DP_MST)
6321 return; 6321 return;
6322 6322
6323 I915_STATE_WARN(conn_state->best_encoder != encoder, 6323 I915_STATE_WARN(conn_state->best_encoder != &encoder->base,
6324 "atomic encoder doesn't match attached encoder\n"); 6324 "atomic encoder doesn't match attached encoder\n");
6325 6325
6326 I915_STATE_WARN(conn_state->crtc != encoder->crtc, 6326 I915_STATE_WARN(conn_state->crtc != encoder->base.crtc,
6327 "attached encoder crtc differs from connector crtc\n"); 6327 "attached encoder crtc differs from connector crtc\n");
6328 } else { 6328 } else {
6329 I915_STATE_WARN(crtc && crtc->state->active, 6329 I915_STATE_WARN(crtc && crtc->state->active,