[Intel-gfx] [PATCH v2 05/12] drm/i915: Remove connectors_active from state checking.

Ander Conselvan De Oliveira conselvan2 at gmail.com
Tue Jul 28 06:48:44 PDT 2015


Reviewed-by: Ander Conselvan de Oliveira <conselvan2 at 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.lankhorst at 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,


More information about the Intel-gfx mailing list