[Intel-gfx] [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible

Jani Nikula jani.nikula at intel.com
Fri Sep 25 04:11:46 PDT 2015


On Wed, 23 Sep 2015, Maarten Lankhorst <maarten.lankhorst at linux.intel.com> wrote:
> This fixes the warnings like
>
> "plane A assertion failure, should be disabled but not"
>
> that on the initial modeset during boot. This can happen if
> the primary plane is enabled by the firmware, but inheriting
> it fails because the DMAR is active or for other reasons.
>
> Most likely caused by
>
> commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d
> Author: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Date:   Mon Jun 1 12:49:54 2015 +0200
>
>     drm/i915: update plane state during init
>
> Reported-by: Andreas Reis <andreas.reis at gmail.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
> Reported-and-tested-by: Emil Renner Berthing <kernel at esmil.dk>
> Tested-by: Andreas Reis <andreas.reis at gmail.com>
> Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>

Daniel, this one is for you. Another version of this is already
upstream:

commit 721a09f7393de6c28a07516dccd654c6e995944a
Author: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
Date:   Tue Sep 15 14:28:54 2015 +0200

    drm/i915: Add primary plane to mask if it's visible



> ---
>  drivers/gpu/drm/i915/intel_display.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index c5366b9ff809..854896e4794e 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -15103,11 +15103,15 @@ static bool primary_get_hw_state(struct intel_plane *plane)
>  /* FIXME read out full plane state for all planes */
>  static void readout_plane_state(struct intel_crtc *crtc)
>  {
> +	struct drm_plane *primary = crtc->base.primary;
>  	struct intel_plane_state *plane_state =
> -		to_intel_plane_state(crtc->base.primary->state);
> +		to_intel_plane_state(primary->state);
>  
>  	plane_state->visible =
> -		primary_get_hw_state(to_intel_plane(crtc->base.primary));
> +		primary_get_hw_state(to_intel_plane(primary));
> +
> +	if (plane_state->visible)
> +		crtc->base.state->plane_mask |= 1 << drm_plane_index(primary);
>  }
>  
>  static void intel_modeset_readout_hw_state(struct drm_device *dev)
> -- 
> 2.1.0
>

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list