diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0011-drm-amdgpu-fix-and-cleanup-VM-ready-check.patch b/meta-amd-bsp/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/meta-amd-bsp/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 - |