diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 40727d4c2919..abfc27b0c2ea 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -1770,7 +1770,7 @@ i915_gem_retire_requests(struct drm_device *dev) | |||
1770 | drm_i915_private_t *dev_priv = dev->dev_private; | 1770 | drm_i915_private_t *dev_priv = dev->dev_private; |
1771 | uint32_t seqno; | 1771 | uint32_t seqno; |
1772 | 1772 | ||
1773 | if (!dev_priv->hw_status_page) | 1773 | if (!dev_priv->hw_status_page || list_empty(&dev_priv->mm.request_list)) |
1774 | return; | 1774 | return; |
1775 | 1775 | ||
1776 | seqno = i915_get_gem_seqno(dev); | 1776 | seqno = i915_get_gem_seqno(dev); |
@@ -1794,6 +1794,12 @@ i915_gem_retire_requests(struct drm_device *dev) | |||
1794 | } else | 1794 | } else |
1795 | break; | 1795 | break; |
1796 | } | 1796 | } |
1797 | |||
1798 | if (unlikely (dev_priv->trace_irq_seqno && | ||
1799 | i915_seqno_passed(dev_priv->trace_irq_seqno, seqno))) { | ||
1800 | i915_user_irq_put(dev); | ||
1801 | dev_priv->trace_irq_seqno = 0; | ||
1802 | } | ||
1797 | } | 1803 | } |
1798 | 1804 | ||
1799 | void | 1805 | void |
@@ -3352,7 +3358,7 @@ i915_dispatch_gem_execbuffer(struct drm_device *dev, | |||
3352 | exec_start = (uint32_t) exec_offset + exec->batch_start_offset; | 3358 | exec_start = (uint32_t) exec_offset + exec->batch_start_offset; |
3353 | exec_len = (uint32_t) exec->batch_len; | 3359 | exec_len = (uint32_t) exec->batch_len; |
3354 | 3360 | ||
3355 | trace_i915_gem_request_submit(dev, dev_priv->mm.next_gem_seqno); | 3361 | trace_i915_gem_request_submit(dev, dev_priv->mm.next_gem_seqno + 1); |
3356 | 3362 | ||
3357 | count = nbox ? nbox : 1; | 3363 | count = nbox ? nbox : 1; |
3358 | 3364 | ||