summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorMaarten Lankhorst2015-08-05 12:37:04 +0200
committerDaniel Vetter2015-08-14 17:50:32 +0200
commit7c60d1984afa482f0648d963206124df6dca325e (patch)
tree4860e23f564dd79be8b3852eeec238136b8b9285 /drivers/gpu/drm/i915/intel_display.c
parentdrm/i915: Remove some unneeded checks from check_crtc_state. (diff)
downloadkernel-qcow2-linux-7c60d1984afa482f0648d963206124df6dca325e.tar.gz
kernel-qcow2-linux-7c60d1984afa482f0648d963206124df6dca325e.tar.xz
kernel-qcow2-linux-7c60d1984afa482f0648d963206124df6dca325e.zip
drm/i915: Remove connectors_active from state checking.
Connectors are updated atomically now, so the only interaction with the encoder is through base.crtc. If it's NULL the encoder's not part of any crtc, and if it's not NULL then active should be equal to crtc_state->active. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index fba9a3c1a388..d7c811f6488e 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12731,9 +12731,6 @@ check_encoder_state(struct drm_device *dev)
encoder->base.base.id,
encoder->base.name);
- I915_STATE_WARN(encoder->connectors_active && !encoder->base.crtc,
- "encoder's active_connectors set, but no crtc\n");
-
for_each_intel_connector(dev, connector) {
if (connector->base.encoder != &encoder->base)
continue;
@@ -12753,18 +12750,20 @@ check_encoder_state(struct drm_device *dev)
I915_STATE_WARN(active && !encoder->base.crtc,
"active encoder with no crtc\n");
- I915_STATE_WARN(encoder->connectors_active != active,
- "encoder's computed active state doesn't match tracked active state "
- "(expected %i, found %i)\n", active, encoder->connectors_active);
-
active = encoder->get_hw_state(encoder, &pipe);
- I915_STATE_WARN(active != encoder->connectors_active,
+
+ if (!encoder->base.crtc) {
+ I915_STATE_WARN(active,
+ "encoder detached but not turned off.\n");
+
+ continue;
+ }
+
+ I915_STATE_WARN(active != encoder->base.crtc->state->active,
"encoder's hw state doesn't match sw tracking "
"(expected %i, found %i)\n",
- encoder->connectors_active, active);
+ encoder->base.crtc->state->active, active);
- if (!encoder->base.crtc)
- continue;
tracked_pipe = to_intel_crtc(encoder->base.crtc)->pipe;
I915_STATE_WARN(active && pipe != tracked_pipe,