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;
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,