On Mon, Apr 14, 2014 at 08:24:31PM +0300, Imre Deak wrote: > While checking the error capture path I noticed that this register is > read twice for GEN2, so fix this and also move the read where it's done > for other platforms. > > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gpu_error.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c > index 4865ade..ba79b59 100644 > --- a/drivers/gpu/drm/i915/i915_gpu_error.c > +++ b/drivers/gpu/drm/i915/i915_gpu_error.c > @@ -1053,9 +1053,6 @@ static void i915_capture_reg_state(struct drm_i915_private *dev_priv, > error->gfx_mode = I915_READ(GFX_MODE); > } > > - if (IS_GEN2(dev)) > - error->ier = I915_READ16(IER); > - > /* 2: Registers which belong to multiple generations */ > if (INTEL_INFO(dev)->gen >= 7) > error->forcewake = I915_READ(FORCEWAKE_MT); > @@ -1079,7 +1076,10 @@ static void i915_capture_reg_state(struct drm_i915_private *dev_priv, > if (HAS_PCH_SPLIT(dev)) > error->ier = I915_READ(DEIER) | I915_READ(GTIER); > else { > - error->ier = I915_READ(IER); > + if (IS_GEN2(dev)) > + error->ier = I915_READ16(IER); > + else > + error->ier = I915_READ(IER); > for_each_pipe(pipe) > error->pipestat[pipe] = I915_READ(PIPESTAT(pipe)); > } The IER handling seems fairly bogus all around. On VLV and PCH platforms we smash both the display and GT IER into the same u32. So probably no one can make any sense of the result. Also I don't know why we try to dump only these two interrupt registers but not the others. So seems like there's more work that needs to be done here. > -- > 1.8.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx