aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2236-drm-amdgpu-forward-operation-context-to-ttm_bo_mem_s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2236-drm-amdgpu-forward-operation-context-to-ttm_bo_mem_s.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2236-drm-amdgpu-forward-operation-context-to-ttm_bo_mem_s.patch113
1 files changed, 113 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2236-drm-amdgpu-forward-operation-context-to-ttm_bo_mem_s.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2236-drm-amdgpu-forward-operation-context-to-ttm_bo_mem_s.patch
new file mode 100644
index 00000000..8dd26d22
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2236-drm-amdgpu-forward-operation-context-to-ttm_bo_mem_s.patch
@@ -0,0 +1,113 @@
+From 7f01eea17e6d70cac0718c554a286ae3d23f2b96 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Wed, 26 Apr 2017 16:44:41 +0200
+Subject: [PATCH 2236/4131] drm/amdgpu: forward operation context to
+ ttm_bo_mem_space
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This way we can finally use some more stats.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
+Tested-by: Michel Dänzer <michel.daenzer@amd.com>
+Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 30 ++++++++++++------------------
+ 1 file changed, 12 insertions(+), 18 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+index 7c5b127..60f8842 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+@@ -509,12 +509,10 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo,
+ return r;
+ }
+
+-static int amdgpu_move_vram_ram(struct ttm_buffer_object *bo,
+- bool evict, bool interruptible,
+- bool no_wait_gpu,
++static int amdgpu_move_vram_ram(struct ttm_buffer_object *bo, bool evict,
++ struct ttm_operation_ctx *ctx,
+ struct ttm_mem_reg *new_mem)
+ {
+- struct ttm_operation_ctx ctx = { interruptible, no_wait_gpu };
+ struct amdgpu_device *adev;
+ struct ttm_mem_reg *old_mem = &bo->mem;
+ struct ttm_mem_reg tmp_mem;
+@@ -532,7 +530,7 @@ static int amdgpu_move_vram_ram(struct ttm_buffer_object *bo,
+ placements.fpfn = 0;
+ placements.lpfn = 0;
+ placements.flags = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT;
+- r = ttm_bo_mem_space(bo, &placement, &tmp_mem, &ctx);
++ r = ttm_bo_mem_space(bo, &placement, &tmp_mem, ctx);
+ if (unlikely(r)) {
+ return r;
+ }
+@@ -546,22 +544,20 @@ static int amdgpu_move_vram_ram(struct ttm_buffer_object *bo,
+ if (unlikely(r)) {
+ goto out_cleanup;
+ }
+- r = amdgpu_move_blit(bo, true, no_wait_gpu, &tmp_mem, old_mem);
++ r = amdgpu_move_blit(bo, true, ctx->no_wait_gpu, &tmp_mem, old_mem);
+ if (unlikely(r)) {
+ goto out_cleanup;
+ }
+- r = ttm_bo_move_ttm(bo, interruptible, no_wait_gpu, new_mem);
++ r = ttm_bo_move_ttm(bo, ctx->interruptible, ctx->no_wait_gpu, new_mem);
+ out_cleanup:
+ ttm_bo_mem_put(bo, &tmp_mem);
+ return r;
+ }
+
+-static int amdgpu_move_ram_vram(struct ttm_buffer_object *bo,
+- bool evict, bool interruptible,
+- bool no_wait_gpu,
++static int amdgpu_move_ram_vram(struct ttm_buffer_object *bo, bool evict,
++ struct ttm_operation_ctx *ctx,
+ struct ttm_mem_reg *new_mem)
+ {
+- struct ttm_operation_ctx ctx = { interruptible, no_wait_gpu };
+ struct amdgpu_device *adev;
+ struct ttm_mem_reg *old_mem = &bo->mem;
+ struct ttm_mem_reg tmp_mem;
+@@ -579,15 +575,15 @@ static int amdgpu_move_ram_vram(struct ttm_buffer_object *bo,
+ placements.fpfn = 0;
+ placements.lpfn = 0;
+ placements.flags = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT;
+- r = ttm_bo_mem_space(bo, &placement, &tmp_mem, &ctx);
++ r = ttm_bo_mem_space(bo, &placement, &tmp_mem, ctx);
+ if (unlikely(r)) {
+ return r;
+ }
+- r = ttm_bo_move_ttm(bo, interruptible, no_wait_gpu, &tmp_mem);
++ r = ttm_bo_move_ttm(bo, ctx->interruptible, ctx->no_wait_gpu, &tmp_mem);
+ if (unlikely(r)) {
+ goto out_cleanup;
+ }
+- r = amdgpu_move_blit(bo, true, no_wait_gpu, new_mem, old_mem);
++ r = amdgpu_move_blit(bo, true, ctx->no_wait_gpu, new_mem, old_mem);
+ if (unlikely(r)) {
+ goto out_cleanup;
+ }
+@@ -637,12 +633,10 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
+
+ if (old_mem->mem_type == TTM_PL_VRAM &&
+ new_mem->mem_type == TTM_PL_SYSTEM) {
+- r = amdgpu_move_vram_ram(bo, evict, ctx->interruptible,
+- ctx->no_wait_gpu, new_mem);
++ r = amdgpu_move_vram_ram(bo, evict, ctx, 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, ctx->interruptible,
+- ctx->no_wait_gpu, new_mem);
++ r = amdgpu_move_ram_vram(bo, evict, ctx, new_mem);
+ } else {
+ r = amdgpu_move_blit(bo, evict, ctx->no_wait_gpu,
+ new_mem, old_mem);
+--
+2.7.4
+