diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gpu_error.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 1 |
3 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 57715c8e59c6..8bc0b3b42183 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
| @@ -299,6 +299,7 @@ struct drm_i915_error_state { | |||
| 299 | u32 cpu_ring_tail[I915_NUM_RINGS]; | 299 | u32 cpu_ring_tail[I915_NUM_RINGS]; |
| 300 | u32 error; /* gen6+ */ | 300 | u32 error; /* gen6+ */ |
| 301 | u32 err_int; /* gen7 */ | 301 | u32 err_int; /* gen7 */ |
| 302 | u32 bbstate[I915_NUM_RINGS]; | ||
| 302 | u32 instpm[I915_NUM_RINGS]; | 303 | u32 instpm[I915_NUM_RINGS]; |
| 303 | u32 instps[I915_NUM_RINGS]; | 304 | u32 instps[I915_NUM_RINGS]; |
| 304 | u32 extra_instdone[I915_NUM_INSTDONE_REG]; | 305 | u32 extra_instdone[I915_NUM_INSTDONE_REG]; |
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c index 5dde81026471..a8bb213da79f 100644 --- a/drivers/gpu/drm/i915/i915_gpu_error.c +++ b/drivers/gpu/drm/i915/i915_gpu_error.c | |||
| @@ -249,7 +249,8 @@ static void i915_ring_error_state(struct drm_i915_error_state_buf *m, | |||
| 249 | err_printf(m, " INSTDONE: 0x%08x\n", error->instdone[ring]); | 249 | err_printf(m, " INSTDONE: 0x%08x\n", error->instdone[ring]); |
| 250 | if (ring == RCS && INTEL_INFO(dev)->gen >= 4) | 250 | if (ring == RCS && INTEL_INFO(dev)->gen >= 4) |
| 251 | err_printf(m, " BBADDR: 0x%08llx\n", error->bbaddr); | 251 | err_printf(m, " BBADDR: 0x%08llx\n", error->bbaddr); |
| 252 | 252 | if (INTEL_INFO(dev)->gen >= 4) | |
| 253 | err_printf(m, " BB_STATE: 0x%08x\n", error->bbstate[ring]); | ||
| 253 | if (INTEL_INFO(dev)->gen >= 4) | 254 | if (INTEL_INFO(dev)->gen >= 4) |
| 254 | err_printf(m, " INSTPS: 0x%08x\n", error->instps[ring]); | 255 | err_printf(m, " INSTPS: 0x%08x\n", error->instps[ring]); |
| 255 | err_printf(m, " INSTPM: 0x%08x\n", error->instpm[ring]); | 256 | err_printf(m, " INSTPM: 0x%08x\n", error->instpm[ring]); |
| @@ -725,6 +726,7 @@ static void i915_record_ring_state(struct drm_device *dev, | |||
| 725 | error->instps[ring->id] = I915_READ(RING_INSTPS(ring->mmio_base)); | 726 | error->instps[ring->id] = I915_READ(RING_INSTPS(ring->mmio_base)); |
| 726 | if (ring->id == RCS) | 727 | if (ring->id == RCS) |
| 727 | error->bbaddr = I915_READ64(BB_ADDR); | 728 | error->bbaddr = I915_READ64(BB_ADDR); |
| 729 | error->bbstate[ring->id] = I915_READ(RING_BBSTATE(ring->mmio_base)); | ||
| 728 | } else { | 730 | } else { |
| 729 | error->faddr[ring->id] = I915_READ(DMA_FADD_I8XX); | 731 | error->faddr[ring->id] = I915_READ(DMA_FADD_I8XX); |
| 730 | error->ipeir[ring->id] = I915_READ(IPEIR); | 732 | error->ipeir[ring->id] = I915_READ(IPEIR); |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 47de41f1d4b4..9785f7d031a4 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
| @@ -718,6 +718,7 @@ | |||
| 718 | #define NOPID 0x02094 | 718 | #define NOPID 0x02094 |
| 719 | #define HWSTAM 0x02098 | 719 | #define HWSTAM 0x02098 |
| 720 | #define DMA_FADD_I8XX 0x020d0 | 720 | #define DMA_FADD_I8XX 0x020d0 |
| 721 | #define RING_BBSTATE(base) ((base)+0x110) | ||
| 721 | 722 | ||
| 722 | #define ERROR_GEN6 0x040a0 | 723 | #define ERROR_GEN6 0x040a0 |
| 723 | #define GEN7_ERR_INT 0x44040 | 724 | #define GEN7_ERR_INT 0x44040 |
