diff mbox

[8/9] drm/i915: Spruce up assert_sprites_disabled()

Message ID 1370342947-20757-9-git-send-email-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjälä June 4, 2013, 10:49 a.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Make assert_sprites_disabled() operational on all platforms where
we currently have sprite support enabled.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

Comments

Rodrigo Vivi June 5, 2013, 7:39 p.m. UTC | #1
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>

On Tue, Jun 4, 2013 at 7:49 AM,  <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Make assert_sprites_disabled() operational on all platforms where
> we currently have sprite support enabled.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 27 +++++++++++++++++++--------
>  1 file changed, 19 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 9c89ddf..90d02c7 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -1132,19 +1132,30 @@ static void assert_planes_disabled(struct drm_i915_private *dev_priv,
>  static void assert_sprites_disabled(struct drm_i915_private *dev_priv,
>                                     enum pipe pipe)
>  {
> +       struct drm_device *dev = dev_priv->dev;
>         int reg, i;
>         u32 val;
>
> -       if (!IS_VALLEYVIEW(dev_priv->dev))
> -               return;
> -
> -       /* Need to check both planes against the pipe */
> -       for (i = 0; i < dev_priv->num_plane; i++) {
> -               reg = SPCNTR(pipe, i);
> +       if (IS_VALLEYVIEW(dev)) {
> +               for (i = 0; i < dev_priv->num_plane; i++) {
> +                       reg = SPCNTR(pipe, i);
> +                       val = I915_READ(reg);
> +                       WARN((val & SP_ENABLE),
> +                            "sprite %c assertion failure, should be off on pipe %c but is still active\n",
> +                            sprite_name(pipe, i), pipe_name(pipe));
> +               }
> +       } else if (INTEL_INFO(dev)->gen >= 7) {
> +               reg = SPRCTL(pipe);
> +               val = I915_READ(reg);
> +               WARN((val & SPRITE_ENABLE),
> +                    "sprite %c assertion failure, should be off on pipe %c but is still active\n",
> +                    plane_name(pipe), pipe_name(pipe));
> +       } else if (INTEL_INFO(dev)->gen >= 5) {
> +               reg = DVSCNTR(pipe);
>                 val = I915_READ(reg);
> -               WARN((val & SP_ENABLE),
> +               WARN((val & DVS_ENABLE),
>                      "sprite %c assertion failure, should be off on pipe %c but is still active\n",
> -                    sprite_name(pipe, i), pipe_name(pipe));
> +                    plane_name(pipe), pipe_name(pipe));
>         }
>  }
>
> --
> 1.8.1.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Daniel Vetter June 6, 2013, 11:56 a.m. UTC | #2
On Wed, Jun 05, 2013 at 04:39:58PM -0300, Rodrigo Vivi wrote:
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
> 
> On Tue, Jun 4, 2013 at 7:49 AM,  <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Make assert_sprites_disabled() operational on all platforms where
> > we currently have sprite support enabled.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

I guess we eventually need some more abstract hw state readout for planes,
similar to what we have on the output routing side. But this is good
enough for now, so merged.
-Daniel

> > ---
> >  drivers/gpu/drm/i915/intel_display.c | 27 +++++++++++++++++++--------
> >  1 file changed, 19 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index 9c89ddf..90d02c7 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -1132,19 +1132,30 @@ static void assert_planes_disabled(struct drm_i915_private *dev_priv,
> >  static void assert_sprites_disabled(struct drm_i915_private *dev_priv,
> >                                     enum pipe pipe)
> >  {
> > +       struct drm_device *dev = dev_priv->dev;
> >         int reg, i;
> >         u32 val;
> >
> > -       if (!IS_VALLEYVIEW(dev_priv->dev))
> > -               return;
> > -
> > -       /* Need to check both planes against the pipe */
> > -       for (i = 0; i < dev_priv->num_plane; i++) {
> > -               reg = SPCNTR(pipe, i);
> > +       if (IS_VALLEYVIEW(dev)) {
> > +               for (i = 0; i < dev_priv->num_plane; i++) {
> > +                       reg = SPCNTR(pipe, i);
> > +                       val = I915_READ(reg);
> > +                       WARN((val & SP_ENABLE),
> > +                            "sprite %c assertion failure, should be off on pipe %c but is still active\n",
> > +                            sprite_name(pipe, i), pipe_name(pipe));
> > +               }
> > +       } else if (INTEL_INFO(dev)->gen >= 7) {
> > +               reg = SPRCTL(pipe);
> > +               val = I915_READ(reg);
> > +               WARN((val & SPRITE_ENABLE),
> > +                    "sprite %c assertion failure, should be off on pipe %c but is still active\n",
> > +                    plane_name(pipe), pipe_name(pipe));
> > +       } else if (INTEL_INFO(dev)->gen >= 5) {
> > +               reg = DVSCNTR(pipe);
> >                 val = I915_READ(reg);
> > -               WARN((val & SP_ENABLE),
> > +               WARN((val & DVS_ENABLE),
> >                      "sprite %c assertion failure, should be off on pipe %c but is still active\n",
> > -                    sprite_name(pipe, i), pipe_name(pipe));
> > +                    plane_name(pipe), pipe_name(pipe));
> >         }
> >  }
> >
> > --
> > 1.8.1.5
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> 
> 
> -- 
> Rodrigo Vivi
> Blog: http://blog.vivi.eng.br
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 9c89ddf..90d02c7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1132,19 +1132,30 @@  static void assert_planes_disabled(struct drm_i915_private *dev_priv,
 static void assert_sprites_disabled(struct drm_i915_private *dev_priv,
 				    enum pipe pipe)
 {
+	struct drm_device *dev = dev_priv->dev;
 	int reg, i;
 	u32 val;
 
-	if (!IS_VALLEYVIEW(dev_priv->dev))
-		return;
-
-	/* Need to check both planes against the pipe */
-	for (i = 0; i < dev_priv->num_plane; i++) {
-		reg = SPCNTR(pipe, i);
+	if (IS_VALLEYVIEW(dev)) {
+		for (i = 0; i < dev_priv->num_plane; i++) {
+			reg = SPCNTR(pipe, i);
+			val = I915_READ(reg);
+			WARN((val & SP_ENABLE),
+			     "sprite %c assertion failure, should be off on pipe %c but is still active\n",
+			     sprite_name(pipe, i), pipe_name(pipe));
+		}
+	} else if (INTEL_INFO(dev)->gen >= 7) {
+		reg = SPRCTL(pipe);
+		val = I915_READ(reg);
+		WARN((val & SPRITE_ENABLE),
+		     "sprite %c assertion failure, should be off on pipe %c but is still active\n",
+		     plane_name(pipe), pipe_name(pipe));
+	} else if (INTEL_INFO(dev)->gen >= 5) {
+		reg = DVSCNTR(pipe);
 		val = I915_READ(reg);
-		WARN((val & SP_ENABLE),
+		WARN((val & DVS_ENABLE),
 		     "sprite %c assertion failure, should be off on pipe %c but is still active\n",
-		     sprite_name(pipe, i), pipe_name(pipe));
+		     plane_name(pipe), pipe_name(pipe));
 	}
 }