From fe91103d21a4d8cde7d4dbfe30be174693000829 Mon Sep 17 00:00:00 2001 From: Ben Widawsky Date: Thu, 26 Apr 2012 16:03:00 -0700 Subject: [PATCH] --- yaml --- r: 307323 b: refs/heads/master c: be998e2e3945d97ffad3c800ef52fd487868b3e9 h: refs/heads/master i: 307321: 46830ea3662376f00a22358ccfb6d524c94d4985 307319: c9e332b4cfad56e8b898c5eb1db72b646ac1d7ca v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_debugfs.c | 1 + trunk/drivers/gpu/drm/i915/i915_drv.h | 1 + trunk/drivers/gpu/drm/i915/i915_gem.c | 14 -------------- trunk/drivers/gpu/drm/i915/i915_irq.c | 10 ++++++++++ 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index a4e25d4f5011..249825902986 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b2da9fe5d5994a104bbae154590070d698279919 +refs/heads/master: be998e2e3945d97ffad3c800ef52fd487868b3e9 diff --git a/trunk/drivers/gpu/drm/i915/i915_debugfs.c b/trunk/drivers/gpu/drm/i915/i915_debugfs.c index 120db4687a2f..8ed034233e38 100644 --- a/trunk/drivers/gpu/drm/i915/i915_debugfs.c +++ b/trunk/drivers/gpu/drm/i915/i915_debugfs.c @@ -712,6 +712,7 @@ static int i915_error_state(struct seq_file *m, void *unused) error->time.tv_usec); seq_printf(m, "PCI ID: 0x%04x\n", dev->pci_device); seq_printf(m, "EIR: 0x%08x\n", error->eir); + seq_printf(m, "IER: 0x%08x\n", error->ier); seq_printf(m, "PGTBL_ER: 0x%08x\n", error->pgtbl_er); for (i = 0; i < dev_priv->num_fence_regs; i++) diff --git a/trunk/drivers/gpu/drm/i915/i915_drv.h b/trunk/drivers/gpu/drm/i915/i915_drv.h index 2113a1ab9625..e719522cb40b 100644 --- a/trunk/drivers/gpu/drm/i915/i915_drv.h +++ b/trunk/drivers/gpu/drm/i915/i915_drv.h @@ -173,6 +173,7 @@ struct intel_display_error_state; struct drm_i915_error_state { u32 eir; u32 pgtbl_er; + u32 ier; u32 pipestat[I915_MAX_PIPES]; u32 tail[I915_NUM_RINGS]; u32 head[I915_NUM_RINGS]; diff --git a/trunk/drivers/gpu/drm/i915/i915_gem.c b/trunk/drivers/gpu/drm/i915/i915_gem.c index e378204970fd..f194603140c0 100644 --- a/trunk/drivers/gpu/drm/i915/i915_gem.c +++ b/trunk/drivers/gpu/drm/i915/i915_gem.c @@ -1828,7 +1828,6 @@ i915_wait_request(struct intel_ring_buffer *ring, uint32_t seqno) { drm_i915_private_t *dev_priv = ring->dev->dev_private; - u32 ier; int ret = 0; BUG_ON(seqno == 0); @@ -1863,19 +1862,6 @@ i915_wait_request(struct intel_ring_buffer *ring, } if (!i915_seqno_passed(ring->get_seqno(ring), seqno)) { - if (HAS_PCH_SPLIT(ring->dev)) - ier = I915_READ(DEIER) | I915_READ(GTIER); - else if (IS_VALLEYVIEW(ring->dev)) - ier = I915_READ(GTIER) | I915_READ(VLV_IER); - else - ier = I915_READ(IER); - if (!ier) { - DRM_ERROR("something (likely vbetool) disabled " - "interrupts, re-enabling\n"); - ring->dev->driver->irq_preinstall(ring->dev); - ring->dev->driver->irq_postinstall(ring->dev); - } - trace_i915_gem_request_wait_begin(ring, seqno); ring->waiting_seqno = seqno; diff --git a/trunk/drivers/gpu/drm/i915/i915_irq.c b/trunk/drivers/gpu/drm/i915/i915_irq.c index 5c360eeb371b..0acadc5e02d2 100644 --- a/trunk/drivers/gpu/drm/i915/i915_irq.c +++ b/trunk/drivers/gpu/drm/i915/i915_irq.c @@ -1122,6 +1122,16 @@ static void i915_capture_error_state(struct drm_device *dev) error->eir = I915_READ(EIR); error->pgtbl_er = I915_READ(PGTBL_ER); + + if (HAS_PCH_SPLIT(dev)) + error->ier = I915_READ(DEIER) | I915_READ(GTIER); + else if (IS_VALLEYVIEW(dev)) + error->ier = I915_READ(GTIER) | I915_READ(VLV_IER); + else if (IS_GEN2(dev)) + error->ier = I915_READ16(IER); + else + error->ier = I915_READ(IER); + for_each_pipe(pipe) error->pipestat[pipe] = I915_READ(PIPESTAT(pipe));