Reviewed-by: Ander Conselvan de Oliveira <conselv...@gmail.com>

On Mon, 2015-07-27 at 14:35 +0200, Maarten Lankhorst wrote:
> 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.lankho...@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 21 ++++++++++-----------
>  1 file changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 59eb6db10740..fbb257d4728c 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12728,9 +12728,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;
> @@ -12750,18 +12747,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,
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to