All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible
@ 2015-09-23 14:11 Maarten Lankhorst
  2015-09-23 14:11 ` [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+ Maarten Lankhorst
  2015-09-25 11:11 ` [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible Jani Nikula
  0 siblings, 2 replies; 6+ messages in thread
From: Maarten Lankhorst @ 2015-09-23 14:11 UTC (permalink / raw
  To: intel-gfx; +Cc: Jani Nikula

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@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@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
Reported-and-tested-by: Emil Renner Berthing <kernel@esmil.dk>
Tested-by: Andreas Reis <andreas.reis@gmail.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 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

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+.
  2015-09-23 14:11 [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible Maarten Lankhorst
@ 2015-09-23 14:11 ` Maarten Lankhorst
  2015-09-25 11:08   ` Jani Nikula
  2015-10-13 12:38   ` Jani Nikula
  2015-09-25 11:11 ` [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible Jani Nikula
  1 sibling, 2 replies; 6+ messages in thread
From: Maarten Lankhorst @ 2015-09-23 14:11 UTC (permalink / raw
  To: intel-gfx; +Cc: stable

On skylake and broxton the old registers are no longer in use.
Instead it uses universal planes, fix primary_get_hw to use the
correct registers.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: stable@vger.kernel.org #v4.2+
---
 drivers/gpu/drm/i915/intel_display.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 854896e4794e..92c96c34085d 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15097,7 +15097,10 @@ static bool primary_get_hw_state(struct intel_plane *plane)
 {
 	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
 
-	return I915_READ(DSPCNTR(plane->plane)) & DISPLAY_PLANE_ENABLE;
+	if (INTEL_INFO(dev_priv)->gen >= 9)
+		return I915_READ(PLANE_CTL(plane->plane, 0)) & PLANE_CTL_ENABLE;
+	else
+		return I915_READ(DSPCNTR(plane->plane)) & DISPLAY_PLANE_ENABLE;
 }
 
 /* FIXME read out full plane state for all planes */
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+.
  2015-09-23 14:11 ` [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+ Maarten Lankhorst
@ 2015-09-25 11:08   ` Jani Nikula
  2015-10-13 12:38   ` Jani Nikula
  1 sibling, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2015-09-25 11:08 UTC (permalink / raw
  To: Maarten Lankhorst, intel-gfx

On Wed, 23 Sep 2015, Maarten Lankhorst <maarten.lankhorst@linux.intel.com> wrote:
> On skylake and broxton the old registers are no longer in use.
> Instead it uses universal planes, fix primary_get_hw to use the
> correct registers.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: stable@vger.kernel.org #v4.2+

SKL/BXT have only preliminary support in v4.2, so I'm not queuing
SKL/BXT specific fixes there. v4.3 is another matter.

BR,
Jani.



> ---
>  drivers/gpu/drm/i915/intel_display.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 854896e4794e..92c96c34085d 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -15097,7 +15097,10 @@ static bool primary_get_hw_state(struct intel_plane *plane)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  
> -	return I915_READ(DSPCNTR(plane->plane)) & DISPLAY_PLANE_ENABLE;
> +	if (INTEL_INFO(dev_priv)->gen >= 9)
> +		return I915_READ(PLANE_CTL(plane->plane, 0)) & PLANE_CTL_ENABLE;
> +	else
> +		return I915_READ(DSPCNTR(plane->plane)) & DISPLAY_PLANE_ENABLE;
>  }
>  
>  /* FIXME read out full plane state for all planes */
> -- 
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible
  2015-09-23 14:11 [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible Maarten Lankhorst
  2015-09-23 14:11 ` [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+ Maarten Lankhorst
@ 2015-09-25 11:11 ` Jani Nikula
  2015-09-28  8:48   ` Daniel Vetter
  1 sibling, 1 reply; 6+ messages in thread
From: Jani Nikula @ 2015-09-25 11:11 UTC (permalink / raw
  To: Maarten Lankhorst, intel-gfx

On Wed, 23 Sep 2015, Maarten Lankhorst <maarten.lankhorst@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@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@gmail.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
> Reported-and-tested-by: Emil Renner Berthing <kernel@esmil.dk>
> Tested-by: Andreas Reis <andreas.reis@gmail.com>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

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

commit 721a09f7393de6c28a07516dccd654c6e995944a
Author: Maarten Lankhorst <maarten.lankhorst@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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible
  2015-09-25 11:11 ` [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible Jani Nikula
@ 2015-09-28  8:48   ` Daniel Vetter
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2015-09-28  8:48 UTC (permalink / raw
  To: Jani Nikula; +Cc: intel-gfx

On Fri, Sep 25, 2015 at 02:11:46PM +0300, Jani Nikula wrote:
> On Wed, 23 Sep 2015, Maarten Lankhorst <maarten.lankhorst@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@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@gmail.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
> > Reported-and-tested-by: Emil Renner Berthing <kernel@esmil.dk>
> > Tested-by: Andreas Reis <andreas.reis@gmail.com>
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Daniel, this one is for you. Another version of this is already
> upstream:
> 
> commit 721a09f7393de6c28a07516dccd654c6e995944a
> Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Date:   Tue Sep 15 14:28:54 2015 +0200
> 
>     drm/i915: Add primary plane to mask if it's visible

Why did the commit message not explain that this was a forward port?
</broken-maintainer-record>

Anyway we still seem to have a bit of a mess in the plane reconstruction
code - if intel_find_initial_plane_obj fails we don't shut down the plane,
but an enabled plane without an fb attached will upset the drm core a bit
...

Anyway applied this to dinq (with the forward-port note attached).
-Daniel

> 
> 
> 
> > ---
> >  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
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+.
  2015-09-23 14:11 ` [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+ Maarten Lankhorst
  2015-09-25 11:08   ` Jani Nikula
@ 2015-10-13 12:38   ` Jani Nikula
  1 sibling, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2015-10-13 12:38 UTC (permalink / raw
  To: Maarten Lankhorst, intel-gfx

On Wed, 23 Sep 2015, Maarten Lankhorst <maarten.lankhorst@linux.intel.com> wrote:
> On skylake and broxton the old registers are no longer in use.
> Instead it uses universal planes, fix primary_get_hw to use the
> correct registers.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: stable@vger.kernel.org #v4.2+

Maarten, this patch has no reviews and it no longer applies to v4.3
cleanly. Please rebase and repost if it's still valid.

BR,
Jani.


> ---
>  drivers/gpu/drm/i915/intel_display.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 854896e4794e..92c96c34085d 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -15097,7 +15097,10 @@ static bool primary_get_hw_state(struct intel_plane *plane)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  
> -	return I915_READ(DSPCNTR(plane->plane)) & DISPLAY_PLANE_ENABLE;
> +	if (INTEL_INFO(dev_priv)->gen >= 9)
> +		return I915_READ(PLANE_CTL(plane->plane, 0)) & PLANE_CTL_ENABLE;
> +	else
> +		return I915_READ(DSPCNTR(plane->plane)) & DISPLAY_PLANE_ENABLE;
>  }
>  
>  /* FIXME read out full plane state for all planes */
> -- 
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-10-13 12:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-23 14:11 [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible Maarten Lankhorst
2015-09-23 14:11 ` [PATCH 2/2] drm/i915: Fix primary_get_hw_state for gen9+ Maarten Lankhorst
2015-09-25 11:08   ` Jani Nikula
2015-10-13 12:38   ` Jani Nikula
2015-09-25 11:11 ` [PATCH 1/2] drm/i915: Add primary plane to mask if it's visible Jani Nikula
2015-09-28  8:48   ` Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.