]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/gpu/drm/i915/i915_vma.c
drm/i915: Extract reserving space in the GTT to a helper
[mirror_ubuntu-bionic-kernel.git] / drivers / gpu / drm / i915 / i915_vma.c
index df3750d4c907cb4f911e49c2dbc3cf77fdea17b6..b74eeb73ae413cc386616d6cb976aef5a5c8de51 100644 (file)
@@ -419,17 +419,11 @@ i915_vma_insert(struct i915_vma *vma, u64 size, u64 alignment, u64 flags)
                        goto err_unpin;
                }
 
-               vma->node.start = offset;
-               vma->node.size = size;
-               vma->node.color = obj->cache_level;
-               ret = drm_mm_reserve_node(&vma->vm->mm, &vma->node);
-               if (ret) {
-                       ret = i915_gem_evict_for_vma(vma, flags);
-                       if (ret == 0)
-                               ret = drm_mm_reserve_node(&vma->vm->mm, &vma->node);
-                       if (ret)
-                               goto err_unpin;
-               }
+               ret = i915_gem_gtt_reserve(vma->vm, &vma->node,
+                                          size, offset, obj->cache_level,
+                                          flags);
+               if (ret)
+                       goto err_unpin;
        } else {
                ret = i915_gem_gtt_insert(vma->vm, &vma->node,
                                          size, alignment, obj->cache_level,