Message ID | 1370342947-20757-9-git-send-email-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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 --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)); } }