diff options
author | Ben Widawsky <benjamin.widawsky@intel.com> | 2013-12-17 23:06:00 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-01-22 03:58:26 -0500 |
commit | f0a9f74c0d735bc1b5a2811fe73c99604394374e (patch) | |
tree | d9cacf6c1c9dfb376fe41a7cb0316b26dcf141dd /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | 8b78f0e588e22c3d5a8cd3ac260023ae7f942828 (diff) |
drm/i915: Fix disabled semaphores
The ring will emit too many if semaphores are disabled since we do not
add the correct number to num_dwords anymore.
This was introduced:
commit 52ed23253b68e1cf154b03d91bed619504cf955b
Author: Ben Widawsky <benjamin.widawsky@intel.com>
Date: Mon Dec 16 20:50:38 2013 -0800
drm/i915: Don't emit mbox updates without semaphores
FWIW, the bug was fixed later in the series.
/me hangs head in shame.
Daniel: Also note that we should have merged the read-only semaphore
modparam before this patch.
Reported-by: Kenneth Graunke <kenneth@whitecape.org>
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 | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 8fcb32a02cb4..b7f1742caf87 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -673,10 +673,12 @@ gen6_add_request(struct intel_ring_buffer *ring) | |||
673 | if (ret) | 673 | if (ret) |
674 | return ret; | 674 | return ret; |
675 | 675 | ||
676 | for_each_ring(useless, dev_priv, i) { | 676 | if (i915_semaphore_is_enabled(dev)) { |
677 | u32 mbox_reg = ring->signal_mbox[i]; | 677 | for_each_ring(useless, dev_priv, i) { |
678 | if (mbox_reg != GEN6_NOSYNC) | 678 | u32 mbox_reg = ring->signal_mbox[i]; |
679 | update_mboxes(ring, mbox_reg); | 679 | if (mbox_reg != GEN6_NOSYNC) |
680 | update_mboxes(ring, mbox_reg); | ||
681 | } | ||
680 | } | 682 | } |
681 | 683 | ||
682 | intel_ring_emit(ring, MI_STORE_DWORD_INDEX); | 684 | intel_ring_emit(ring, MI_STORE_DWORD_INDEX); |