From: Dave Airlie <airl...@redhat.com>

All the accel moves do the same pattern here, provide a helper

Signed-off-by: Dave Airlie <airl...@redhat.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c    | 28 ++++++++++++++++++++++++++++
 include/drm/ttm/ttm_bo_driver.h |  5 +++++
 2 files changed, 33 insertions(+)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index eb76002aa53d..358d1580dc16 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -1541,3 +1541,31 @@ void ttm_bo_tt_destroy(struct ttm_buffer_object *bo)
        ttm_tt_destroy(bo->bdev, bo->ttm);
        bo->ttm = NULL;
 }
+
+int ttm_bo_create_tt_tmp(struct ttm_buffer_object *bo,
+                        struct ttm_operation_ctx *ctx,
+                        struct ttm_resource *new_mem,
+                        struct ttm_resource *new_temp)
+{
+       struct ttm_place placement_memtype = {
+               .fpfn = 0,
+               .lpfn = 0,
+               .mem_type = TTM_PL_TT,
+               .flags = TTM_PL_MASK_CACHING
+       };
+       struct ttm_placement placement;
+       int ret;
+
+       placement.num_placement = placement.num_busy_placement = 1;
+       placement.placement = placement.busy_placement = &placement_memtype;
+
+       *new_temp = *new_mem;
+       new_temp->mm_node = NULL;
+
+       ret = ttm_bo_mem_space(bo, &placement, new_temp, ctx);
+       if (ret)
+               return ret;
+
+       return 0;
+}
+EXPORT_SYMBOL(ttm_bo_create_tt_tmp);
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index 4a63fec24e90..a7507dfaa89d 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -558,6 +558,11 @@ void ttm_mem_io_free(struct ttm_bo_device *bdev,
 int ttm_bo_move_to_new_tt_mem(struct ttm_buffer_object *bo,
                              struct ttm_operation_ctx *ctx,
                              struct ttm_resource *new_mem);
+
+int ttm_bo_create_tt_tmp(struct ttm_buffer_object *bo,
+                        struct ttm_operation_ctx *ctx,
+                        struct ttm_resource *new_mem,
+                        struct ttm_resource *new_temp);
 /**
  * ttm_bo_move_memcpy
  *
-- 
2.27.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to