aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2013-12-16 23:50:38 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-12-17 03:56:29 -0500
commit52ed23253b68e1cf154b03d91bed619504cf955b (patch)
treefc48ef8e78dba246466d1771218f82475c153cfa /drivers/gpu/drm/i915/intel_ringbuffer.c
parent0e79284d138d01a794cb860af5c4d2c0eb8f6fda (diff)
drm/i915: Don't emit mbox updates without semaphores
Aside from the fact that it leaves confusing dumps on error capture, it is entirely unnecessary, and potentially harmful in cases like BDW, where the instruction has changed. In reality (seemingly), this will have no behavioral impact. Signed-off-by: Ben Widawsky <ben@bwidawsk.net> 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.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index e05a0216cd9b..b106984c722a 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -663,14 +663,15 @@ gen6_add_request(struct intel_ring_buffer *ring)
663 struct drm_device *dev = ring->dev; 663 struct drm_device *dev = ring->dev;
664 struct drm_i915_private *dev_priv = dev->dev_private; 664 struct drm_i915_private *dev_priv = dev->dev_private;
665 struct intel_ring_buffer *useless; 665 struct intel_ring_buffer *useless;
666 int i, ret; 666 int i, ret, num_dwords = 4;
667 667
668 ret = intel_ring_begin(ring, ((I915_NUM_RINGS-1) * 668 if (i915_semaphore_is_enabled(dev))
669 MBOX_UPDATE_DWORDS) + 669 num_dwords += ((I915_NUM_RINGS-1) * MBOX_UPDATE_DWORDS);
670 4); 670#undef MBOX_UPDATE_DWORDS
671
672 ret = intel_ring_begin(ring, num_dwords);
671 if (ret) 673 if (ret)
672 return ret; 674 return ret;
673#undef MBOX_UPDATE_DWORDS
674 675
675 for_each_ring(useless, dev_priv, i) { 676 for_each_ring(useless, dev_priv, i) {
676 u32 mbox_reg = ring->signal_mbox[i]; 677 u32 mbox_reg = ring->signal_mbox[i];