On Fri, Mar 15, 2013 at 11:45:47AM -0700, Ben Widawsky wrote: > On Thu, Mar 07, 2013 at 11:34:08AM +0200, Ville Syrj?l? wrote: > > On Wed, Mar 06, 2013 at 08:03:12PM -0300, Paulo Zanoni wrote: > > > From: Paulo Zanoni <paulo.r.zanoni at intel.com> > > > > > > This solves some "unclaimed register" messages when there's a GPU hang > > > on Haswell. > > > > > > Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com> > > > --- > > > drivers/gpu/drm/i915/intel_display.c | 12 +++++++++--- > > > 1 file changed, 9 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > > > index 9a9f6d7..789a95a 100644 > > > --- a/drivers/gpu/drm/i915/intel_display.c > > > +++ b/drivers/gpu/drm/i915/intel_display.c > > > @@ -9336,9 +9336,15 @@ intel_display_capture_error_state(struct drm_device *dev) > > > for_each_pipe(i) { > > > cpu_transcoder = intel_pipe_to_cpu_transcoder(dev_priv, i); > > > > > > - error->cursor[i].control = I915_READ(CURCNTR(i)); > > > - error->cursor[i].position = I915_READ(CURPOS(i)); > > > - error->cursor[i].base = I915_READ(CURBASE(i)); > > > + if (INTEL_INFO(dev)->gen <= 6) { > > > + error->cursor[i].control = I915_READ(CURCNTR(i)); > > > + error->cursor[i].position = I915_READ(CURPOS(i)); > > > + error->cursor[i].base = I915_READ(CURBASE(i)); > > > + } else { > > > + error->cursor[i].control = I915_READ(CURCNTR_IVB(i)); > > > + error->cursor[i].position = I915_READ(CURPOS_IVB(i)); > > > + error->cursor[i].base = I915_READ(CURBASE_IVB(i)); > > > + } > > > > Needs a VLV check. > > Has anyone ever used this to actually debug an issue? > > Ville's right, I suppose (I'm too lazy to find VLV docs). The non-VLV > part of the patch is: > Reviewed-by: Ben Widawsky <ben at bwidawsk.net> Queued for -next with the IS_VLV check added, thanks for the patch. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch