summaryrefslogtreecommitdiff
path: root/sys/dev/pci/drm/i915_gem.c
diff options
context:
space:
mode:
authorJonathan Gray <jsg@jsg.id.au>2013-02-28 20:58:06 +1100
committerJonathan Gray <jsg@jsg.id.au>2013-02-28 20:58:06 +1100
commitc40d369b75dfcb27c1d7c1eb33664fb9f3998671 (patch)
tree7dde79ebb56102802ad8f631380ed10adb6c3a12 /sys/dev/pci/drm/i915_gem.c
parent72b29c58a83abaf1e2d67886257f0e959085789d (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.c3
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);
}
/*