diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-01-20 20:55:49 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-01-20 20:55:49 -0800 | 
| commit | 9a9284153d965a57edc7162a8e57c14c97f3a935 (patch) | |
| tree | 7e4c66810a98d2eff5953360fd79cd834fe935bd /drivers/gpu/drm/i915/i915_irq.c | |
| parent | ee61abb3223e28a1a14a8429c0319755d20d3e40 (diff) | |
| parent | 014b34409fb2015f63663b6cafdf557fdf289628 (diff) | |
| download | olio-linux-3.10-9a9284153d965a57edc7162a8e57c14c97f3a935.tar.xz olio-linux-3.10-9a9284153d965a57edc7162a8e57c14c97f3a935.zip  | |
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
 "A bunch of intel and radeon fixes, along with two fixes to TTM code.
  The correct fix for the Intel ironlake failure is in this, and should
  make things more stable, along with some misc radeon fixes."
* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  ttm: on move memory failure don't leave a node dangling
  ttm: don't destroy old mm_node on memcpy failure
  Revert "drm/radeon: do not move bo to different placement at each cs"
  drm/i915: fix FORCEWAKE posting reads
  drm/i915: Invalidate the relocation presumed_offsets along the slow path
  drm/i915/eDP: do not write power sequence registers for ghost eDP
  drm/radeon: improve semaphore debugging on lockup
  drm/radeon: allow FP16 color clear registers on r500
  drm/radeon: clear reset flags if engines are idle
  drm/i915: Record DERRMR, FORCEWAKE and RING_CTL in error-state
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));  |