| From b794a83e5cfb7b0e210f3d9eb8d65d64d37e0e95 Mon Sep 17 00:00:00 2001 |
| From: Ben Widawsky <benjamin.widawsky@intel.com> |
| Date: Mon, 12 Aug 2013 16:53:04 -0700 |
| Subject: drm/i915: Get VECS semaphore info on error |
| |
| Ideally we could use for_each_ring with the ring flags as I've done a |
| couple times |
| (http://lists.freedesktop.org/archives/intel-gfx/2013-June/029450.html). |
| Until Daniel merges that patch though, we can just use this. |
| |
| Cc: Mika Kuoppala <mika.kuoppala@intel.com> |
| Signed-off-by: Ben Widawsky <ben@bwidawsk.net> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit 4e5aabfd3106cfd68694db416e271996aadf114a) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/i915_gpu_error.c | 11 +++++++++++ |
| 1 file changed, 11 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c |
| index 60393cb9a7c7..558e568d5b45 100644 |
| --- a/drivers/gpu/drm/i915/i915_gpu_error.c |
| +++ b/drivers/gpu/drm/i915/i915_gpu_error.c |
| @@ -243,6 +243,11 @@ static void i915_ring_error_state(struct drm_i915_error_state_buf *m, |
| err_printf(m, " SYNC_1: 0x%08x [last synced 0x%08x]\n", |
| error->semaphore_mboxes[ring][1], |
| error->semaphore_seqno[ring][1]); |
| + if (HAS_VEBOX(dev)) { |
| + err_printf(m, " SYNC_2: 0x%08x [last synced 0x%08x]\n", |
| + error->semaphore_mboxes[ring][2], |
| + error->semaphore_seqno[ring][2]); |
| + } |
| } |
| err_printf(m, " seqno: 0x%08x\n", error->seqno[ring]); |
| err_printf(m, " waiting: %s\n", yesno(error->waiting[ring])); |
| @@ -682,6 +687,12 @@ static void i915_record_ring_state(struct drm_device *dev, |
| error->semaphore_seqno[ring->id][1] = ring->sync_seqno[1]; |
| } |
| |
| + if (HAS_VEBOX(dev)) { |
| + error->semaphore_mboxes[ring->id][2] = |
| + I915_READ(RING_SYNC_2(ring->mmio_base)); |
| + error->semaphore_seqno[ring->id][2] = ring->sync_seqno[2]; |
| + } |
| + |
| if (INTEL_INFO(dev)->gen >= 4) { |
| error->faddr[ring->id] = I915_READ(RING_DMA_FADD(ring->mmio_base)); |
| error->ipeir[ring->id] = I915_READ(RING_IPEIR(ring->mmio_base)); |
| -- |
| 1.8.5.rc3 |
| |