Merge branch 'akpm' (patches from Andrew)
[platform/kernel/linux-rpi.git] / drivers / gpu / drm / i915 / i915_vma.c
index f2d9ed3..bef795e 100644 (file)
@@ -1231,9 +1231,10 @@ int __i915_vma_move_to_active(struct i915_vma *vma, struct i915_request *rq)
        return i915_active_add_request(&vma->active, rq);
 }
 
-int i915_vma_move_to_active(struct i915_vma *vma,
-                           struct i915_request *rq,
-                           unsigned int flags)
+int _i915_vma_move_to_active(struct i915_vma *vma,
+                            struct i915_request *rq,
+                            struct dma_fence *fence,
+                            unsigned int flags)
 {
        struct drm_i915_gem_object *obj = vma->obj;
        int err;
@@ -1254,9 +1255,11 @@ int i915_vma_move_to_active(struct i915_vma *vma,
                        intel_frontbuffer_put(front);
                }
 
-               dma_resv_add_excl_fence(vma->resv, &rq->fence);
-               obj->write_domain = I915_GEM_DOMAIN_RENDER;
-               obj->read_domains = 0;
+               if (fence) {
+                       dma_resv_add_excl_fence(vma->resv, fence);
+                       obj->write_domain = I915_GEM_DOMAIN_RENDER;
+                       obj->read_domains = 0;
+               }
        } else {
                if (!(flags & __EXEC_OBJECT_NO_RESERVE)) {
                        err = dma_resv_reserve_shared(vma->resv, 1);
@@ -1264,8 +1267,10 @@ int i915_vma_move_to_active(struct i915_vma *vma,
                                return err;
                }
 
-               dma_resv_add_shared_fence(vma->resv, &rq->fence);
-               obj->write_domain = 0;
+               if (fence) {
+                       dma_resv_add_shared_fence(vma->resv, fence);
+                       obj->write_domain = 0;
+               }
        }
 
        if (flags & EXEC_OBJECT_NEEDS_FENCE && vma->fence)