diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4299-drm-amdgpu-abstract-bo_base-init-function.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4299-drm-amdgpu-abstract-bo_base-init-function.patch | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4299-drm-amdgpu-abstract-bo_base-init-function.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4299-drm-amdgpu-abstract-bo_base-init-function.patch deleted file mode 100644 index e731b739..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4299-drm-amdgpu-abstract-bo_base-init-function.patch +++ /dev/null @@ -1,148 +0,0 @@ -From 7791169a4e436b4414797b2cc9ae40c5290c26ee Mon Sep 17 00:00:00 2001 -From: Chunming Zhou <david1.zhou@amd.com> -Date: Tue, 24 Apr 2018 12:14:39 +0800 -Subject: [PATCH 4299/5725] drm/amdgpu: abstract bo_base init function -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I6eb1f509c83fc0c5f03563afd230bbcd9308a3d0 -Signed-off-by: Chunming Zhou <david1.zhou@amd.com> -Reviewed-by: Christian König <christian.koenig@amd.com> -Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 73 ++++++++++++++++++---------------- - 1 file changed, 38 insertions(+), 35 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c -index edf2559..dd84ed4 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c -@@ -94,6 +94,36 @@ struct amdgpu_prt_cb { - struct dma_fence_cb cb; - }; - -+static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base, -+ struct amdgpu_vm *vm, -+ struct amdgpu_bo *bo) -+{ -+ base->vm = vm; -+ base->bo = bo; -+ INIT_LIST_HEAD(&base->bo_list); -+ INIT_LIST_HEAD(&base->vm_status); -+ -+ if (!bo) -+ return; -+ list_add_tail(&base->bo_list, &bo->va); -+ -+ if (bo->tbo.resv != vm->root.base.bo->tbo.resv) -+ return; -+ -+ if (bo->preferred_domains & -+ amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type)) -+ return; -+ -+ /* -+ * we checked all the prerequisites, but it looks like this per vm bo -+ * is currently evicted. add the bo to the evicted list to make sure it -+ * is validated on next vm use to avoid fault. -+ * */ -+ spin_lock(&vm->status_lock); -+ list_move_tail(&base->vm_status, &vm->evicted); -+ spin_unlock(&vm->status_lock); -+} -+ - /** - * amdgpu_vm_level_shift - return the addr shift for each level - * -@@ -447,11 +477,9 @@ static int amdgpu_vm_alloc_levels(struct amdgpu_device *adev, - */ - pt->parent = amdgpu_bo_ref(parent->base.bo); - -- entry->base.vm = vm; -- entry->base.bo = pt; -- list_add_tail(&entry->base.bo_list, &pt->va); -+ amdgpu_vm_bo_base_init(&entry->base, vm, pt); - spin_lock(&vm->status_lock); -- list_add(&entry->base.vm_status, &vm->relocated); -+ list_move(&entry->base.vm_status, &vm->relocated); - spin_unlock(&vm->status_lock); - } - -@@ -1871,36 +1899,12 @@ struct amdgpu_bo_va *amdgpu_vm_bo_add(struct amdgpu_device *adev, - if (bo_va == NULL) { - return NULL; - } -- bo_va->base.vm = vm; -- bo_va->base.bo = bo; -- INIT_LIST_HEAD(&bo_va->base.bo_list); -- INIT_LIST_HEAD(&bo_va->base.vm_status); -+ amdgpu_vm_bo_base_init(&bo_va->base, vm, bo); - - bo_va->ref_count = 1; - INIT_LIST_HEAD(&bo_va->valids); - INIT_LIST_HEAD(&bo_va->invalids); - -- if (!bo) -- return bo_va; -- -- list_add_tail(&bo_va->base.bo_list, &bo->va); -- -- if (bo->tbo.resv != vm->root.base.bo->tbo.resv) -- return bo_va; -- -- if (bo->preferred_domains & -- amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type)) -- return bo_va; -- -- /* -- * We checked all the prerequisites, but it looks like this per VM BO -- * is currently evicted. add the BO to the evicted list to make sure it -- * is validated on next VM use to avoid fault. -- * */ -- spin_lock(&vm->status_lock); -- list_move_tail(&bo_va->base.vm_status, &vm->evicted); -- spin_unlock(&vm->status_lock); -- - return bo_va; - } - -@@ -2419,6 +2423,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, - int vm_context, unsigned int pasid) - { - struct amdgpu_bo_param bp; -+ struct amdgpu_bo *root; - const unsigned align = min(AMDGPU_VM_PTB_ALIGN_SIZE, - AMDGPU_VM_PTE_COUNT(adev) * 8); - unsigned ring_instance; -@@ -2480,23 +2485,21 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, - bp.flags = flags; - bp.type = ttm_bo_type_kernel; - bp.resv = NULL; -- r = amdgpu_bo_create(adev, &bp, &vm->root.base.bo); -+ r = amdgpu_bo_create(adev, &bp, &root); - if (r) - goto error_free_sched_entity; - -- r = amdgpu_bo_reserve(vm->root.base.bo, true); -+ r = amdgpu_bo_reserve(root, true); - if (r) - goto error_free_root; - -- r = amdgpu_vm_clear_bo(adev, vm, vm->root.base.bo, -+ r = amdgpu_vm_clear_bo(adev, vm, root, - adev->vm_manager.root_level, - vm->pte_support_ats); - if (r) - goto error_unreserve; - -- vm->root.base.vm = vm; -- list_add_tail(&vm->root.base.bo_list, &vm->root.base.bo->va); -- list_add_tail(&vm->root.base.vm_status, &vm->evicted); -+ amdgpu_vm_bo_base_init(&vm->root.base, vm, root); - amdgpu_bo_unreserve(vm->root.base.bo); - - if (pasid) { --- -2.7.4 - |