aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1388-split-pd-and-pt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1388-split-pd-and-pt.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1388-split-pd-and-pt.patch173
1 files changed, 0 insertions, 173 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1388-split-pd-and-pt.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1388-split-pd-and-pt.patch
deleted file mode 100644
index feab431a..00000000
--- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1388-split-pd-and-pt.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-From ba5cca51ebd7a8863b9f40a5756784daedbd1849 Mon Sep 17 00:00:00 2001
-From: Yong Zhao <yong.zhao@amd.com>
-Date: Mon, 4 Apr 2016 17:08:47 -0400
-Subject: [PATCH 1388/4131] split pd and pt
-
-Change-Id: Ia188bb17703711a68fdf1a00a23abc9a8ee86e75
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 64 ++++++------------------
- 1 file changed, 16 insertions(+), 48 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-index f569ff6..66b400f 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-@@ -454,7 +454,7 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
- struct bo_vm_reservation_context {
- struct amdgpu_bo_list_entry kfd_bo;
- unsigned n_vms;
-- struct amdgpu_bo_list_entry **vm_bos;
-+ struct amdgpu_bo_list_entry *vm_pd;
- struct ww_acquire_ctx ticket;
- struct list_head list, duplicates;
- bool reserved;
-@@ -489,11 +489,11 @@ static int reserve_bo_and_vms(struct amdgpu_device *adev, struct amdgpu_bo *bo,
- ctx->n_vms++;
- }
- if (ctx->n_vms == 0)
-- ctx->vm_bos = NULL;
-+ ctx->vm_pd = NULL;
- else {
-- ctx->vm_bos = kzalloc(sizeof(struct amdgpu_bo_list_entry *)
-+ ctx->vm_pd = kzalloc(sizeof(struct amdgpu_bo_list_entry)
- * ctx->n_vms, GFP_KERNEL);
-- if (ctx->vm_bos == NULL)
-+ if (ctx->vm_pd == NULL)
- return -ENOMEM;
- }
-
-@@ -503,13 +503,9 @@ static int reserve_bo_and_vms(struct amdgpu_device *adev, struct amdgpu_bo *bo,
- entry->is_mapped != is_mapped)
- continue;
-
-- ctx->vm_bos[i] = amdgpu_vm_get_bos(adev, entry->bo_va->vm,
-- &ctx->list);
-- if (!ctx->vm_bos[i]) {
-- pr_err("amdkfd: Failed to get bos from vm\n");
-- ret = -ENOMEM;
-- goto out;
-- }
-+ amdgpu_vm_get_pd_bo(entry->bo_va->vm, &ctx->list,
-+ &ctx->vm_pd[i]);
-+ amdgpu_vm_get_pt_bos(entry->bo_va->vm, &ctx->duplicates);
- i++;
- }
-
-@@ -520,14 +516,9 @@ static int reserve_bo_and_vms(struct amdgpu_device *adev, struct amdgpu_bo *bo,
- else
- pr_err("amdkfd: Failed to reserve buffers in ttm\n");
-
--out:
- if (ret) {
-- for (i = 0; i < ctx->n_vms; i++) {
-- if (ctx->vm_bos[i])
-- drm_free_large(ctx->vm_bos[i]);
-- }
-- kfree(ctx->vm_bos);
-- ctx->vm_bos = NULL;
-+ kfree(ctx->vm_pd);
-+ ctx->vm_pd = NULL;
- }
-
- return ret;
-@@ -549,17 +540,11 @@ static void unreserve_bo_and_vms(struct bo_vm_reservation_context *ctx,
- }
- if (ctx->reserved)
- ttm_eu_backoff_reservation(&ctx->ticket, &ctx->list);
-- if (ctx->vm_bos) {
-- unsigned i;
--
-- for (i = 0; i < ctx->n_vms; i++) {
-- if (ctx->vm_bos[i])
-- drm_free_large(ctx->vm_bos[i]);
-- }
-- kfree(ctx->vm_bos);
-+ if (ctx->vm_pd) {
-+ kfree(ctx->vm_pd);
- }
- ctx->reserved = false;
-- ctx->vm_bos = NULL;
-+ ctx->vm_pd = NULL;
- }
-
- /* Must be called with mem->data2.lock held and a BO/VM reservation
-@@ -667,8 +652,6 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev, struct amdgpu_bo *bo,
- goto err_failed_to_pin_pd;
- }
-
-- mutex_lock(&vm->mutex);
--
- /* Update the page directory */
- ret = amdgpu_vm_update_page_directory(adev, vm);
- if (ret != 0) {
-@@ -700,8 +683,6 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev, struct amdgpu_bo *bo,
- goto err_failed_to_vm_clear_invalids;
- }
-
-- mutex_unlock(&vm->mutex);
--
- return 0;
-
- err_failed_to_vm_clear_invalids:
-@@ -709,7 +690,6 @@ static int map_bo_to_gpuvm(struct amdgpu_device *adev, struct amdgpu_bo *bo,
- err_failed_to_update_pts:
- err_failed_vm_clear_freed:
- err_failed_to_update_pd:
-- mutex_unlock(&vm->mutex);
- unpin_bo(vm->page_directory, false);
- err_failed_to_pin_pd:
- unpin_pts(bo_va, vm, false);
-@@ -1046,8 +1026,8 @@ static int unmap_bo_from_gpuvm(struct amdgpu_device *adev,
- struct amdgpu_vm *vm;
- int ret;
- struct ttm_validate_buffer tv;
-- struct amdgpu_bo_list_entry *vm_bos;
- struct ww_acquire_ctx ticket;
-+ struct amdgpu_bo_list_entry vm_pd;
- struct list_head list, duplicates;
-
- INIT_LIST_HEAD(&list);
-@@ -1058,20 +1038,15 @@ static int unmap_bo_from_gpuvm(struct amdgpu_device *adev,
- tv.shared = true;
- list_add(&tv.head, &list);
-
-- vm_bos = amdgpu_vm_get_bos(adev, vm, &list);
-- if (!vm_bos) {
-- pr_err("amdkfd: Failed to get bos from vm\n");
-- ret = -ENOMEM;
-- goto err_failed_to_get_bos;
-- }
-+ amdgpu_vm_get_pd_bo(vm, &list, &vm_pd);
-
- ret = ttm_eu_reserve_buffers(&ticket, &list, false, &duplicates);
- if (ret) {
- pr_err("amdkfd: Failed to reserve buffers in ttm\n");
-- goto err_failed_to_ttm_reserve;
-+ return ret;
- }
-
-- mutex_lock(&vm->mutex);
-+ amdgpu_vm_get_pt_bos(vm, &duplicates);
-
- /*
- * The previously "released" BOs are really released and their VAs are
-@@ -1085,16 +1060,9 @@ static int unmap_bo_from_gpuvm(struct amdgpu_device *adev,
-
- amdgpu_vm_clear_invalids(adev, vm, NULL);
-
-- mutex_unlock(&vm->mutex);
--
- ttm_eu_backoff_reservation(&ticket, &list);
-- drm_free_large(vm_bos);
-
- return 0;
--err_failed_to_ttm_reserve:
-- drm_free_large(vm_bos);
--err_failed_to_get_bos:
-- return ret;
- }
-
- static bool is_mem_on_local_device(struct kgd_dev *kgd,
---
-2.7.4
-