This function becomes obsolete and may be removed.

Signed-off-by: Arunpravin <arunpravin.paneersel...@amd.com>
---
 drivers/gpu/drm/drm_buddy.c | 101 ------------------------------------
 include/drm/drm_buddy.h     |   4 --
 2 files changed, 105 deletions(-)

diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
index f5f299dd9131..138e9f1a7340 100644
--- a/drivers/gpu/drm/drm_buddy.c
+++ b/drivers/gpu/drm/drm_buddy.c
@@ -457,107 +457,6 @@ int drm_buddy_alloc(struct drm_buddy_mm *mm,
        return err;
 }
 
-/*
- * Allocate range. Note that it's safe to chain together multiple alloc_ranges
- * with the same blocks list.
- *
- * Intended for pre-allocating portions of the address space, for example to
- * reserve a block for the initial framebuffer or similar, hence the 
expectation
- * here is that drm_buddy_alloc() is still the main vehicle for
- * allocations, so if that's not the case then the drm_mm range allocator is
- * probably a much better fit, and so you should probably go use that instead.
- */
-int drm_buddy_alloc_range(struct drm_buddy_mm *mm,
-                         struct list_head *blocks,
-                         u64 start, u64 size)
-{
-       struct drm_buddy_block *block;
-       struct drm_buddy_block *buddy;
-       LIST_HEAD(allocated);
-       LIST_HEAD(dfs);
-       u64 end;
-       int err;
-       int i;
-
-       if (size < mm->chunk_size)
-               return -EINVAL;
-
-       if (!IS_ALIGNED(size | start, mm->chunk_size))
-               return -EINVAL;
-
-       if (range_overflows(start, size, mm->size))
-               return -EINVAL;
-
-       for (i = 0; i < mm->n_roots; ++i)
-               list_add_tail(&mm->roots[i]->tmp_link, &dfs);
-
-       end = start + size - 1;
-
-       do {
-               u64 block_start;
-               u64 block_end;
-
-               block = list_first_entry_or_null(&dfs,
-                                                struct drm_buddy_block,
-                                                tmp_link);
-               if (!block)
-                       break;
-
-               list_del(&block->tmp_link);
-
-               block_start = drm_buddy_block_offset(block);
-               block_end = block_start + drm_buddy_block_size(mm, block) - 1;
-
-               if (!overlaps(start, end, block_start, block_end))
-                       continue;
-
-               if (drm_buddy_block_is_allocated(block)) {
-                       err = -ENOSPC;
-                       goto err_free;
-               }
-
-               if (contains(start, end, block_start, block_end)) {
-                       if (!drm_buddy_block_is_free(block)) {
-                               err = -ENOSPC;
-                               goto err_free;
-                       }
-
-                       mark_allocated(block);
-                       mm->avail -= drm_buddy_block_size(mm, block);
-                       list_add_tail(&block->link, &allocated);
-                       continue;
-               }
-
-               if (!drm_buddy_block_is_split(block)) {
-                       err = split_block(mm, block);
-                       if (unlikely(err))
-                               goto err_undo;
-               }
-
-               list_add(&block->right->tmp_link, &dfs);
-               list_add(&block->left->tmp_link, &dfs);
-       } while (1);
-
-       list_splice_tail(&allocated, blocks);
-       return 0;
-
-err_undo:
-       /*
-        * We really don't want to leave around a bunch of split blocks, since
-        * bigger is better, so make sure we merge everything back before we
-        * free the allocated blocks.
-        */
-       buddy = get_buddy(block);
-       if (buddy &&
-           (drm_buddy_block_is_free(block) &&
-            drm_buddy_block_is_free(buddy)))
-               __drm_buddy_free(mm, block);
-
-err_free:
-       drm_buddy_free_list(mm, &allocated);
-       return err;
-}
-
 void drm_buddy_block_print(struct drm_buddy_mm *mm,
                           struct drm_buddy_block *block,
                           struct drm_printer *p)
diff --git a/include/drm/drm_buddy.h b/include/drm/drm_buddy.h
index c64fd4062cb6..ebf03d151845 100644
--- a/include/drm/drm_buddy.h
+++ b/include/drm/drm_buddy.h
@@ -144,10 +144,6 @@ int drm_buddy_alloc(struct drm_buddy_mm *mm,
                    struct list_head *blocks,
                    unsigned long flags);
 
-int drm_buddy_alloc_range(struct drm_buddy_mm *mm,
-                          struct list_head *blocks,
-                          u64 start, u64 size);
-
 void drm_buddy_free(struct drm_buddy_mm *mm, struct drm_buddy_block *block);
 
 void drm_buddy_free_list(struct drm_buddy_mm *mm, struct list_head *objects);
-- 
2.25.1

Reply via email to