From: Christian König <christian.koe...@amd.com>

Instead of passing the parameters manually.

Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 21 +++++++++++----------
 drivers/gpu/drm/nouveau/nouveau_bo.c    | 27 ++++++++++++++++-----------
 drivers/gpu/drm/qxl/qxl_ttm.c           |  9 ++++-----
 drivers/gpu/drm/radeon/radeon_ttm.c     | 23 ++++++++++++-----------
 drivers/gpu/drm/ttm/ttm_bo.c            |  3 +--
 drivers/gpu/drm/virtio/virtgpu_ttm.c    |  7 +++----
 include/drm/ttm/ttm_bo_driver.h         |  6 ++----
 7 files changed, 49 insertions(+), 47 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index e386657..061fd5f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -451,10 +451,9 @@ static int amdgpu_move_ram_vram(struct ttm_buffer_object 
*bo,
        return r;
 }
 
-static int amdgpu_bo_move(struct ttm_buffer_object *bo,
-                       bool evict, bool interruptible,
-                       bool no_wait_gpu,
-                       struct ttm_mem_reg *new_mem)
+static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
+                         struct ttm_operation_ctx *ctx,
+                         struct ttm_mem_reg *new_mem)
 {
        struct amdgpu_device *adev;
        struct amdgpu_bo *abo;
@@ -489,19 +488,21 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo,
 
        if (old_mem->mem_type == TTM_PL_VRAM &&
            new_mem->mem_type == TTM_PL_SYSTEM) {
-               r = amdgpu_move_vram_ram(bo, evict, interruptible,
-                                       no_wait_gpu, new_mem);
+               r = amdgpu_move_vram_ram(bo, evict, ctx->interruptible,
+                                       ctx->no_wait_gpu, new_mem);
        } else if (old_mem->mem_type == TTM_PL_SYSTEM &&
                   new_mem->mem_type == TTM_PL_VRAM) {
-               r = amdgpu_move_ram_vram(bo, evict, interruptible,
-                                           no_wait_gpu, new_mem);
+               r = amdgpu_move_ram_vram(bo, evict, ctx->interruptible,
+                                           ctx->no_wait_gpu, new_mem);
        } else {
-               r = amdgpu_move_blit(bo, evict, no_wait_gpu, new_mem, old_mem);
+               r = amdgpu_move_blit(bo, evict, ctx->no_wait_gpu,
+                                    new_mem, old_mem);
        }
 
        if (r) {
 memcpy:
-               r = ttm_bo_move_memcpy(bo, interruptible, no_wait_gpu, new_mem);
+               r = ttm_bo_move_memcpy(bo, ctx->interruptible,
+                                      ctx->no_wait_gpu, new_mem);
                if (r) {
                        return r;
                }
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c 
b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 8486da6..39e328e 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1253,8 +1253,9 @@ nouveau_bo_vm_cleanup(struct ttm_buffer_object *bo,
 }
 
 static int
-nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr,
-               bool no_wait_gpu, struct ttm_mem_reg *new_mem)
+nouveau_bo_move(struct ttm_buffer_object *bo, bool evict,
+               struct ttm_operation_ctx *ctx,
+               struct ttm_mem_reg *new_mem)
 {
        struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
        struct nouveau_bo *nvbo = nouveau_bo(bo);
@@ -1262,7 +1263,7 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, 
bool intr,
        struct nouveau_drm_tile *new_tile = NULL;
        int ret = 0;
 
-       ret = ttm_bo_wait(bo, intr, no_wait_gpu);
+       ret = ttm_bo_wait(bo, ctx->interruptible, ctx->no_wait_gpu);
        if (ret)
                return ret;
 
@@ -1286,22 +1287,26 @@ nouveau_bo_move(struct ttm_buffer_object *bo, bool 
evict, bool intr,
        /* Hardware assisted copy. */
        if (drm->ttm.move) {
                if (new_mem->mem_type == TTM_PL_SYSTEM)
-                       ret = nouveau_bo_move_flipd(bo, evict, intr,
-                                                   no_wait_gpu, new_mem);
+                       ret = nouveau_bo_move_flipd(bo, evict,
+                                                   ctx->interruptible,
+                                                   ctx->no_wait_gpu, new_mem);
                else if (old_mem->mem_type == TTM_PL_SYSTEM)
-                       ret = nouveau_bo_move_flips(bo, evict, intr,
-                                                   no_wait_gpu, new_mem);
+                       ret = nouveau_bo_move_flips(bo, evict,
+                                                   ctx->interruptible,
+                                                   ctx->no_wait_gpu, new_mem);
                else
-                       ret = nouveau_bo_move_m2mf(bo, evict, intr,
-                                                  no_wait_gpu, new_mem);
+                       ret = nouveau_bo_move_m2mf(bo, evict,
+                                                  ctx->interruptible,
+                                                  ctx->no_wait_gpu, new_mem);
                if (!ret)
                        goto out;
        }
 
        /* Fallback to software copy. */
-       ret = ttm_bo_wait(bo, intr, no_wait_gpu);
+       ret = ttm_bo_wait(bo, ctx->interruptible, ctx->no_wait_gpu);
        if (ret == 0)
-               ret = ttm_bo_move_memcpy(bo, intr, no_wait_gpu, new_mem);
+               ret = ttm_bo_move_memcpy(bo, ctx->interruptible,
+                                        ctx->no_wait_gpu, new_mem);
 
 out:
        if (drm->device.info.family < NV_DEVICE_INFO_V0_TESLA) {
diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
index 28fa56e..c35b57b 100644
--- a/drivers/gpu/drm/qxl/qxl_ttm.c
+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
@@ -345,15 +345,14 @@ static void qxl_move_null(struct ttm_buffer_object *bo,
        new_mem->mm_node = NULL;
 }
 
-static int qxl_bo_move(struct ttm_buffer_object *bo,
-                      bool evict, bool interruptible,
-                      bool no_wait_gpu,
+static int qxl_bo_move(struct ttm_buffer_object *bo, bool evict,
+                      struct ttm_operation_ctx *ctx,
                       struct ttm_mem_reg *new_mem)
 {
        struct ttm_mem_reg *old_mem = &bo->mem;
        int ret;
 
-       ret = ttm_bo_wait(bo, interruptible, no_wait_gpu);
+       ret = ttm_bo_wait(bo, ctx->interruptible, ctx->no_wait_gpu);
        if (ret)
                return ret;
 
@@ -362,7 +361,7 @@ static int qxl_bo_move(struct ttm_buffer_object *bo,
                qxl_move_null(bo, new_mem);
                return 0;
        }
-       return ttm_bo_move_memcpy(bo, interruptible, no_wait_gpu,
+       return ttm_bo_move_memcpy(bo, ctx->interruptible, ctx->no_wait_gpu,
                                  new_mem);
 }
 
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c 
b/drivers/gpu/drm/radeon/radeon_ttm.c
index b4bcff5..11611e3 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -393,17 +393,16 @@ static int radeon_move_ram_vram(struct ttm_buffer_object 
*bo,
        return r;
 }
 
-static int radeon_bo_move(struct ttm_buffer_object *bo,
-                       bool evict, bool interruptible,
-                       bool no_wait_gpu,
-                       struct ttm_mem_reg *new_mem)
+static int radeon_bo_move(struct ttm_buffer_object *bo, bool evict,
+                         struct ttm_operation_ctx *ctx,
+                         struct ttm_mem_reg *new_mem)
 {
        struct radeon_device *rdev;
        struct radeon_bo *rbo;
        struct ttm_mem_reg *old_mem = &bo->mem;
        int r;
 
-       r = ttm_bo_wait(bo, interruptible, no_wait_gpu);
+       r = ttm_bo_wait(bo, ctx->interruptible, ctx->no_wait_gpu);
        if (r)
                return r;
 
@@ -433,19 +432,21 @@ static int radeon_bo_move(struct ttm_buffer_object *bo,
 
        if (old_mem->mem_type == TTM_PL_VRAM &&
            new_mem->mem_type == TTM_PL_SYSTEM) {
-               r = radeon_move_vram_ram(bo, evict, interruptible,
-                                       no_wait_gpu, new_mem);
+               r = radeon_move_vram_ram(bo, evict, ctx->interruptible,
+                                       ctx->no_wait_gpu, new_mem);
        } else if (old_mem->mem_type == TTM_PL_SYSTEM &&
                   new_mem->mem_type == TTM_PL_VRAM) {
-               r = radeon_move_ram_vram(bo, evict, interruptible,
-                                           no_wait_gpu, new_mem);
+               r = radeon_move_ram_vram(bo, evict, ctx->interruptible,
+                                           ctx->no_wait_gpu, new_mem);
        } else {
-               r = radeon_move_blit(bo, evict, no_wait_gpu, new_mem, old_mem);
+               r = radeon_move_blit(bo, evict, ctx->no_wait_gpu,
+                                    new_mem, old_mem);
        }
 
        if (r) {
 memcpy:
-               r = ttm_bo_move_memcpy(bo, interruptible, no_wait_gpu, new_mem);
+               r = ttm_bo_move_memcpy(bo, ctx->interruptible,
+                                      ctx->no_wait_gpu, new_mem);
                if (r) {
                        return r;
                }
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index c288852..0c3c06a 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -344,8 +344,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object 
*bo,
                ret = ttm_bo_move_ttm(bo, ctx->interruptible,
                                      ctx->no_wait_gpu, mem);
        else if (bdev->driver->move)
-               ret = bdev->driver->move(bo, evict, ctx->interruptible,
-                                        ctx->no_wait_gpu, mem);
+               ret = bdev->driver->move(bo, evict, ctx, mem);
        else
                ret = ttm_bo_move_memcpy(bo, ctx->interruptible,
                                         ctx->no_wait_gpu, mem);
diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c 
b/drivers/gpu/drm/virtio/virtgpu_ttm.c
index 8b76bf9..bec1cfa 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
@@ -370,14 +370,13 @@ static void virtio_gpu_move_null(struct ttm_buffer_object 
*bo,
        new_mem->mm_node = NULL;
 }
 
-static int virtio_gpu_bo_move(struct ttm_buffer_object *bo,
-                             bool evict, bool interruptible,
-                             bool no_wait_gpu,
+static int virtio_gpu_bo_move(struct ttm_buffer_object *bo, bool evict,
+                             struct ttm_operation_ctx *ctx,
                              struct ttm_mem_reg *new_mem)
 {
        int ret;
 
-       ret = ttm_bo_wait(bo, interruptible, no_wait_gpu);
+       ret = ttm_bo_wait(bo, ctx->interruptible, ctx->no_wait_gpu);
        if (ret)
                return ret;
 
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index fbf6792..a2c368a 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -407,15 +407,13 @@ struct ttm_bo_driver {
         * @bo: the buffer to move
         * @evict: whether this motion is evicting the buffer from
         * the graphics address space
-        * @interruptible: Use interruptible sleeps if possible when sleeping.
-        * @no_wait: whether this should give up and return -EBUSY
-        * if this move would require sleeping
+        * @ctx: context for this move with parameters
         * @new_mem: the new memory region receiving the buffer
         *
         * Move a buffer between two memory regions.
         */
        int (*move)(struct ttm_buffer_object *bo, bool evict,
-                   bool interruptible, bool no_wait_gpu,
+                   struct ttm_operation_ctx *ctx,
                    struct ttm_mem_reg *new_mem);
 
        /**
-- 
2.5.0

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

Reply via email to