diff options
author | Jonathan Gray <jsg@jsg.id.au> | 2013-02-28 20:58:06 +1100 |
---|---|---|
committer | Jonathan Gray <jsg@jsg.id.au> | 2013-02-28 20:58:06 +1100 |
commit | c40d369b75dfcb27c1d7c1eb33664fb9f3998671 (patch) | |
tree | 7dde79ebb56102802ad8f631380ed10adb6c3a12 /sys/dev/pci/drm/i915_gem.c | |
parent | 72b29c58a83abaf1e2d67886257f0e959085789d (diff) |
add some additional i915_add_request calls linux makes
Seems to resolve wait_seqno getting into a state where it is
stuck in the gemwt msleep forever.
Diffstat (limited to 'sys/dev/pci/drm/i915_gem.c')
-rw-r--r-- | sys/dev/pci/drm/i915_gem.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/i915_gem.c b/sys/dev/pci/drm/i915_gem.c index e6778fd295b..3312d20ac8d 100644 --- a/sys/dev/pci/drm/i915_gem.c +++ b/sys/dev/pci/drm/i915_gem.c @@ -2310,6 +2310,9 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data, if (obj->base.write_domain & I915_GEM_GPU_DOMAINS) { ret = i915_gem_flush_ring(obj->ring, 0, obj->base.write_domain); + } else if (obj->ring->outstanding_lazy_request == + obj->last_read_seqno) { + i915_add_request(obj->ring, NULL, NULL); } /* |