drm/i915: Remove connectors_active from state checking.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Wed, 5 Aug 2015 10:37:04 +0000 (12:37 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 14 Aug 2015 15:50:32 +0000 (17:50 +0200)
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>
drivers/gpu/drm/i915/intel_display.c

index fba9a3c1a388bcf628429f9e3f860ddec60c70ba..d7c811f6488effd84502cc820841d647fa4506a6 100644 (file)
@@ -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,