]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/i915/i915_gem_execbuffer.c
drm/i915: Rearrange i915_wait_request() accounting with callers
[karo-tx-linux.git] / drivers / gpu / drm / i915 / i915_gem_execbuffer.c
index e52affdcc125d5585cc3fa45bd25c60aed540084..61365ae22b530f38bd288d57e2edb960457dc2be 100644 (file)
@@ -418,15 +418,6 @@ static void *reloc_iomap(struct drm_i915_gem_object *obj,
        unsigned long offset;
        void *vaddr;
 
-       if (cache->node.allocated) {
-               wmb();
-               ggtt->base.insert_page(&ggtt->base,
-                                      i915_gem_object_get_dma_address(obj, page),
-                                      cache->node.start, I915_CACHE_NONE, 0);
-               cache->page = page;
-               return unmask_page(cache->vaddr);
-       }
-
        if (cache->vaddr) {
                io_mapping_unmap_atomic((void __force __iomem *) unmask_page(cache->vaddr));
        } else {
@@ -466,6 +457,7 @@ static void *reloc_iomap(struct drm_i915_gem_object *obj,
 
        offset = cache->node.start;
        if (cache->node.allocated) {
+               wmb();
                ggtt->base.insert_page(&ggtt->base,
                                       i915_gem_object_get_dma_address(obj, page),
                                       offset, I915_CACHE_NONE, 0);
@@ -1142,7 +1134,8 @@ i915_gem_execbuffer_move_to_gpu(struct drm_i915_gem_request *req,
                if (resv) {
                        ret = i915_sw_fence_await_reservation
                                (&req->submit, resv, &i915_fence_ops,
-                                obj->base.pending_write_domain, 10*HZ,
+                                obj->base.pending_write_domain,
+                                I915_FENCE_TIMEOUT,
                                 GFP_KERNEL | __GFP_NOWARN);
                        if (ret < 0)
                                return ret;