Merge drm/drm-next into drm-intel-gt-next
[linux-2.6-block.git] / drivers / gpu / drm / i915 / gem / i915_gem_ttm.c
index 107bd0d8d06fab1dbe0b0c8e55a0f52b8315a142..3dc6acfcf4ecd24ee4210cb2cc8eb3f3c0aa930d 100644 (file)
@@ -361,7 +361,6 @@ static bool i915_ttm_eviction_valuable(struct ttm_buffer_object *bo,
                                       const struct ttm_place *place)
 {
        struct drm_i915_gem_object *obj = i915_ttm_to_gem(bo);
-       struct ttm_resource *res = bo->resource;
 
        if (!obj)
                return false;
@@ -378,45 +377,7 @@ static bool i915_ttm_eviction_valuable(struct ttm_buffer_object *bo,
        if (!i915_gem_object_evictable(obj))
                return false;
 
-       switch (res->mem_type) {
-       case I915_PL_LMEM0: {
-               struct ttm_resource_manager *man =
-                       ttm_manager_type(bo->bdev, res->mem_type);
-               struct i915_ttm_buddy_resource *bman_res =
-                       to_ttm_buddy_resource(res);
-               struct drm_buddy *mm = bman_res->mm;
-               struct drm_buddy_block *block;
-
-               if (!place->fpfn && !place->lpfn)
-                       return true;
-
-               GEM_BUG_ON(!place->lpfn);
-
-               /*
-                * If we just want something mappable then we can quickly check
-                * if the current victim resource is using any of the CPU
-                * visible portion.
-                */
-               if (!place->fpfn &&
-                   place->lpfn == i915_ttm_buddy_man_visible_size(man))
-                       return bman_res->used_visible_size > 0;
-
-               /* Real range allocation */
-               list_for_each_entry(block, &bman_res->blocks, link) {
-                       unsigned long fpfn =
-                               drm_buddy_block_offset(block) >> PAGE_SHIFT;
-                       unsigned long lpfn = fpfn +
-                               (drm_buddy_block_size(mm, block) >> PAGE_SHIFT);
-
-                       if (place->fpfn < lpfn && place->lpfn > fpfn)
-                               return true;
-               }
-               return false;
-       } default:
-               break;
-       }
-
-       return true;
+       return ttm_bo_eviction_valuable(bo, place);
 }
 
 static void i915_ttm_evict_flags(struct ttm_buffer_object *bo,
@@ -1275,9 +1236,8 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem,
         * Similarly, in delayed_destroy, we can't call ttm_bo_put()
         * until successful initialization.
         */
-       ret = ttm_bo_init_reserved(&i915->bdev, i915_gem_to_ttm(obj), size,
-                                  bo_type, &i915_sys_placement,
-                                  page_size >> PAGE_SHIFT,
+       ret = ttm_bo_init_reserved(&i915->bdev, i915_gem_to_ttm(obj), bo_type,
+                                  &i915_sys_placement, page_size >> PAGE_SHIFT,
                                   &ctx, NULL, NULL, i915_ttm_bo_destroy);
        if (ret)
                return i915_ttm_err_to_gem(ret);