drm/i915: gen2: move error capture of IER to its correct place
authorImre Deak <imre.deak@intel.com>
Mon, 14 Apr 2014 17:24:31 +0000 (20:24 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 5 May 2014 07:09:01 +0000 (09:09 +0200)
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@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gpu_error.c

index 282164c7a02d1f93b57781a83715be1d222ea97f..667bb2936e3ba8ba885b3c920c9969bf64f124e3 100644 (file)
@@ -1054,9 +1054,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);
@@ -1080,7 +1077,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));
        }