aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch138
1 files changed, 0 insertions, 138 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch
deleted file mode 100644
index 11d0530d..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 66d694efa3ee79ddf831b60c2bd3a26946939ef1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Thu, 24 Aug 2017 12:32:55 +0200
-Subject: [PATCH 0011/4131] drm/amdgpu: fix and cleanup VM ready check
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Stop checking the mapped BO itself, cause that one is
-certainly not a page table.
-
-Additional to that move the code into amdgpu_vm.c
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 33 ++-------------------------------
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 32 ++++++++++++++++++++++++++++++++
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 1 +
- 3 files changed, 35 insertions(+), 31 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
-index 837332e..dea0b75 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
-@@ -125,35 +125,6 @@ int amdgpu_gem_object_open(struct drm_gem_object *obj,
- return 0;
- }
-
--static int amdgpu_gem_vm_check(void *param, struct amdgpu_bo *bo)
--{
-- /* if anything is swapped out don't swap it in here,
-- just abort and wait for the next CS */
-- if (!amdgpu_bo_gpu_accessible(bo))
-- return -ERESTARTSYS;
--
-- if (bo->shadow && !amdgpu_bo_gpu_accessible(bo->shadow))
-- return -ERESTARTSYS;
--
-- return 0;
--}
--
--static bool amdgpu_gem_vm_ready(struct amdgpu_device *adev,
-- struct amdgpu_vm *vm,
-- struct list_head *list)
--{
-- struct ttm_validate_buffer *entry;
--
-- list_for_each_entry(entry, list, head) {
-- struct amdgpu_bo *bo =
-- container_of(entry->bo, struct amdgpu_bo, tbo);
-- if (amdgpu_gem_vm_check(NULL, bo))
-- return false;
-- }
--
-- return !amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_gem_vm_check, NULL);
--}
--
- void amdgpu_gem_object_close(struct drm_gem_object *obj,
- struct drm_file *file_priv)
- {
-@@ -187,7 +158,7 @@ void amdgpu_gem_object_close(struct drm_gem_object *obj,
- if (bo_va && --bo_va->ref_count == 0) {
- amdgpu_vm_bo_rmv(adev, bo_va);
-
-- if (amdgpu_gem_vm_ready(adev, vm, &list)) {
-+ if (amdgpu_vm_ready(adev, vm)) {
- struct dma_fence *fence = NULL;
-
- r = amdgpu_vm_clear_freed(adev, vm, &fence);
-@@ -511,7 +482,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,
- {
- int r = -ERESTARTSYS;
-
-- if (!amdgpu_gem_vm_ready(adev, vm, list))
-+ if (!amdgpu_vm_ready(adev, vm))
- goto error;
-
- r = amdgpu_vm_update_directories(adev, vm);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-index b469c10..f56889b 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -232,6 +232,38 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
- }
-
- /**
-+ * amdgpu_vm_check - helper for amdgpu_vm_ready
-+ */
-+static int amdgpu_vm_check(void *param, struct amdgpu_bo *bo)
-+{
-+ /* if anything is swapped out don't swap it in here,
-+ just abort and wait for the next CS */
-+ if (!amdgpu_bo_gpu_accessible(bo))
-+ return -ERESTARTSYS;
-+
-+ if (bo->shadow && !amdgpu_bo_gpu_accessible(bo->shadow))
-+ return -ERESTARTSYS;
-+
-+ return 0;
-+}
-+
-+/**
-+ * amdgpu_vm_ready - check VM is ready for updates
-+ *
-+ * @adev: amdgpu device
-+ * @vm: VM to check
-+ *
-+ * Check if all VM PDs/PTs are ready for updates
-+ */
-+bool amdgpu_vm_ready(struct amdgpu_device *adev, struct amdgpu_vm *vm)
-+{
-+ if (amdgpu_vm_check(NULL, vm->root.bo))
-+ return false;
-+
-+ return !amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_vm_check, NULL);
-+}
-+
-+/**
- * amdgpu_vm_alloc_levels - allocate the PD/PT levels
- *
- * @adev: amdgpu_device pointer
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
-index 6716355..48ba604 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
-@@ -225,6 +225,7 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm);
- void amdgpu_vm_get_pd_bo(struct amdgpu_vm *vm,
- struct list_head *validated,
- struct amdgpu_bo_list_entry *entry);
-+bool amdgpu_vm_ready(struct amdgpu_device *adev, struct amdgpu_vm *vm);
- int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
- int (*callback)(void *p, struct amdgpu_bo *bo),
- void *param);
---
-2.7.4
-