aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-11-22 15:35:24 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-11-26 04:27:55 -0500
commit67e5871be82fec1451801d448b51d9a403d1ffac (patch)
tree973f16debeeee5678268e502b827f704f9d973f0 /drivers/gpu/drm/i915/intel_ringbuffer.c
parent5ed1678206a392ac509cd1f6415df74b9008aa9a (diff)
drm/i915: Drop forcewake w/a for missed interrupts/seqno on Sandybridge
I believe, and an evening of i-g-t, that our original workaround for the missed interrupts on Sandybridge, that of holding forcewake whilst we wait for an interrupts, is no longer required. This leaves us dependent on the second workaround of forcing an UC read of the ACTHD before reading back the seqno from the snooped HWS. Dropping the forcewake should allow us to conserve a little power, not much as the GPU is meant to be busy whilst we wait for it! Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index b65f4d77e3ed..69589e4f957f 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1032,11 +1032,6 @@ gen6_ring_get_irq(struct intel_ring_buffer *ring)
1032 if (!dev->irq_enabled) 1032 if (!dev->irq_enabled)
1033 return false; 1033 return false;
1034 1034
1035 /* It looks like we need to prevent the gt from suspending while waiting
1036 * for an notifiy irq, otherwise irqs seem to get lost on at least the
1037 * blt/bsd rings on ivb. */
1038 gen6_gt_force_wake_get(dev_priv);
1039
1040 spin_lock_irqsave(&dev_priv->irq_lock, flags); 1035 spin_lock_irqsave(&dev_priv->irq_lock, flags);
1041 if (ring->irq_refcount++ == 0) { 1036 if (ring->irq_refcount++ == 0) {
1042 if (HAS_L3_DPF(dev) && ring->id == RCS) 1037 if (HAS_L3_DPF(dev) && ring->id == RCS)
@@ -1068,8 +1063,6 @@ gen6_ring_put_irq(struct intel_ring_buffer *ring)
1068 ilk_disable_gt_irq(dev_priv, ring->irq_enable_mask); 1063 ilk_disable_gt_irq(dev_priv, ring->irq_enable_mask);
1069 } 1064 }
1070 spin_unlock_irqrestore(&dev_priv->irq_lock, flags); 1065 spin_unlock_irqrestore(&dev_priv->irq_lock, flags);
1071
1072 gen6_gt_force_wake_put(dev_priv);
1073} 1066}
1074 1067
1075static bool 1068static bool