diff options
author | Ben Widawsky <benjamin.widawsky@intel.com> | 2013-12-16 23:50:38 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-12-17 03:56:29 -0500 |
commit | 52ed23253b68e1cf154b03d91bed619504cf955b (patch) | |
tree | fc48ef8e78dba246466d1771218f82475c153cfa /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | 0e79284d138d01a794cb860af5c4d2c0eb8f6fda (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.c | 11 |
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]; |