diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 2220dec3e5d..fe843389c7b 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1157,6 +1157,7 @@ static void i915_record_ring_state(struct drm_device *dev,  	error->acthd[ring->id] = intel_ring_get_active_head(ring);  	error->head[ring->id] = I915_READ_HEAD(ring);  	error->tail[ring->id] = I915_READ_TAIL(ring); +	error->ctl[ring->id] = I915_READ_CTL(ring);  	error->cpu_ring_head[ring->id] = ring->head;  	error->cpu_ring_tail[ring->id] = ring->tail; @@ -1251,6 +1252,16 @@ static void i915_capture_error_state(struct drm_device *dev)  	else  		error->ier = I915_READ(IER); +	if (INTEL_INFO(dev)->gen >= 6) +		error->derrmr = I915_READ(DERRMR); + +	if (IS_VALLEYVIEW(dev)) +		error->forcewake = I915_READ(FORCEWAKE_VLV); +	else if (INTEL_INFO(dev)->gen >= 7) +		error->forcewake = I915_READ(FORCEWAKE_MT); +	else if (INTEL_INFO(dev)->gen == 6) +		error->forcewake = I915_READ(FORCEWAKE); +  	for_each_pipe(pipe)  		error->pipestat[pipe] = I915_READ(PIPESTAT(pipe));  |