diff options
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.patch | 113 |
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 + |