diff options
author | Paulo Zanoni | 2013-03-07 00:03:13 +0100 |
---|---|---|
committer | Daniel Vetter | 2013-03-17 21:29:10 +0100 |
commit | 51889b35224cb05b5a9d187f3ebf872653ae06d2 (patch) | |
tree | 508fb9ca97d1e3898cdde4012e37e8edb8e0a844 /drivers/gpu/drm/i915/intel_display.c | |
parent | drm/i915: capture the correct cursor registers on IVB (diff) | |
download | kernel-qcow2-linux-51889b35224cb05b5a9d187f3ebf872653ae06d2.tar.gz kernel-qcow2-linux-51889b35224cb05b5a9d187f3ebf872653ae06d2.tar.xz kernel-qcow2-linux-51889b35224cb05b5a9d187f3ebf872653ae06d2.zip |
drm/i915: there's no DSPSIZE register on gen4+
So don't read it when capturing the error state. This solves some
"unclaimed register" messages on Haswell when we hang the GPU.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 1dc6c18f3970..1e706769de66 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -9346,7 +9346,8 @@ intel_display_capture_error_state(struct drm_device *dev) error->plane[i].control = I915_READ(DSPCNTR(i)); error->plane[i].stride = I915_READ(DSPSTRIDE(i)); - error->plane[i].size = I915_READ(DSPSIZE(i)); + if (INTEL_INFO(dev)->gen <= 3) + error->plane[i].size = I915_READ(DSPSIZE(i)); error->plane[i].pos = I915_READ(DSPPOS(i)); error->plane[i].addr = I915_READ(DSPADDR(i)); if (INTEL_INFO(dev)->gen >= 4) { @@ -9390,7 +9391,8 @@ intel_display_print_error_state(struct seq_file *m, seq_printf(m, "Plane [%d]:\n", i); seq_printf(m, " CNTR: %08x\n", error->plane[i].control); seq_printf(m, " STRIDE: %08x\n", error->plane[i].stride); - seq_printf(m, " SIZE: %08x\n", error->plane[i].size); + if (INTEL_INFO(dev)->gen <= 3) + seq_printf(m, " SIZE: %08x\n", error->plane[i].size); seq_printf(m, " POS: %08x\n", error->plane[i].pos); seq_printf(m, " ADDR: %08x\n", error->plane[i].addr); if (INTEL_INFO(dev)->gen >= 4) { |