drm/ttm: move ttm_tt_create into ttm_tt.c v2
authorChristian König <christian.koenig@amd.com>
Thu, 22 Feb 2018 07:54:57 +0000 (08:54 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 27 Feb 2018 04:09:46 +0000 (23:09 -0500)
Rename ttm_bo_add_ttm to ttm_tt_create and move it into ttm_tt.c.

v2: separate the cleanup.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Roger He <Hongbo.He@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/ttm/ttm_bo.c
drivers/gpu/drm/ttm/ttm_tt.c
include/drm/ttm/ttm_bo_driver.h

index 4bfa109..ad142a9 100644 (file)
@@ -222,52 +222,6 @@ void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo)
 }
 EXPORT_SYMBOL(ttm_bo_move_to_lru_tail);
 
-/*
- * Call bo->mutex locked.
- */
-static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
-{
-       struct ttm_bo_device *bdev = bo->bdev;
-       int ret = 0;
-       uint32_t page_flags = 0;
-
-       reservation_object_assert_held(bo->resv);
-       bo->ttm = NULL;
-
-       if (bdev->need_dma32)
-               page_flags |= TTM_PAGE_FLAG_DMA32;
-
-       if (bdev->no_retry)
-               page_flags |= TTM_PAGE_FLAG_NO_RETRY;
-
-       switch (bo->type) {
-       case ttm_bo_type_device:
-               if (zero_alloc)
-                       page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC;
-       case ttm_bo_type_kernel:
-               bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
-                                                     page_flags);
-               if (unlikely(bo->ttm == NULL))
-                       ret = -ENOMEM;
-               break;
-       case ttm_bo_type_sg:
-               bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
-                                                     page_flags | TTM_PAGE_FLAG_SG);
-               if (unlikely(bo->ttm == NULL)) {
-                       ret = -ENOMEM;
-                       break;
-               }
-               bo->ttm->sg = bo->sg;
-               break;
-       default:
-               pr_err("Illegal buffer object type\n");
-               ret = -EINVAL;
-               break;
-       }
-
-       return ret;
-}
-
 static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
                                  struct ttm_mem_reg *mem, bool evict,
                                  struct ttm_operation_ctx *ctx)
@@ -295,7 +249,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
        if (!(new_man->flags & TTM_MEMTYPE_FLAG_FIXED)) {
                if (bo->ttm == NULL) {
                        bool zero = !(old_man->flags & TTM_MEMTYPE_FLAG_FIXED);
-                       ret = ttm_bo_add_ttm(bo, zero);
+                       ret = ttm_tt_create(bo, zero);
                        if (ret)
                                goto out_err;
                }
@@ -1134,7 +1088,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
         * We might need to add a TTM.
         */
        if (bo->mem.mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
-               ret = ttm_bo_add_ttm(bo, true);
+               ret = ttm_tt_create(bo, true);
                if (ret)
                        return ret;
        }
index f93cd10..917942d 100644 (file)
 #endif
 
 /**
+ * Allocates a ttm structure for the given BO.
+ */
+int ttm_tt_create(struct ttm_buffer_object *bo, bool zero_alloc)
+{
+       struct ttm_bo_device *bdev = bo->bdev;
+       int ret = 0;
+       uint32_t page_flags = 0;
+
+       reservation_object_assert_held(bo->resv);
+       bo->ttm = NULL;
+
+       if (bdev->need_dma32)
+               page_flags |= TTM_PAGE_FLAG_DMA32;
+
+       if (bdev->no_retry)
+               page_flags |= TTM_PAGE_FLAG_NO_RETRY;
+
+       switch (bo->type) {
+       case ttm_bo_type_device:
+               if (zero_alloc)
+                       page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC;
+       case ttm_bo_type_kernel:
+               bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
+                                                     page_flags);
+               if (unlikely(bo->ttm == NULL))
+                       ret = -ENOMEM;
+               break;
+       case ttm_bo_type_sg:
+               bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
+                                                     page_flags | TTM_PAGE_FLAG_SG);
+               if (unlikely(bo->ttm == NULL)) {
+                       ret = -ENOMEM;
+                       break;
+               }
+               bo->ttm->sg = bo->sg;
+               break;
+       default:
+               pr_err("Illegal buffer object type\n");
+               ret = -EINVAL;
+               break;
+       }
+
+       return ret;
+}
+
+/**
  * Allocates storage for pointers to the pages that back the ttm.
  */
 static int ttm_tt_alloc_page_directory(struct ttm_tt *ttm)
index b338dd0..4312b53 100644 (file)
@@ -611,6 +611,17 @@ ttm_flag_masked(uint32_t *old, uint32_t new, uint32_t mask)
 }
 
 /**
+ * ttm_tt_create
+ *
+ * @bo: pointer to a struct ttm_buffer_object
+ * @zero_alloc: true if allocated pages needs to be zeroed
+ *
+ * Make sure we have a TTM structure allocated for the given BO.
+ * No pages are actually allocated.
+ */
+int ttm_tt_create(struct ttm_buffer_object *bo, bool zero_alloc);
+
+/**
  * ttm_tt_init
  *
  * @ttm: The struct ttm_tt.