aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0340-drm-amdgpu-Fix-compute-VM-BO-params-after-rebase-v2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0340-drm-amdgpu-Fix-compute-VM-BO-params-after-rebase-v2.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0340-drm-amdgpu-Fix-compute-VM-BO-params-after-rebase-v2.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0340-drm-amdgpu-Fix-compute-VM-BO-params-after-rebase-v2.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0340-drm-amdgpu-Fix-compute-VM-BO-params-after-rebase-v2.patch
new file mode 100644
index 00000000..cd4d6a70
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0340-drm-amdgpu-Fix-compute-VM-BO-params-after-rebase-v2.patch
@@ -0,0 +1,56 @@
+From 32b6858f52a2c275c9609eec48ee2c3f51dab251 Mon Sep 17 00:00:00 2001
+From: Felix Kuehling <Felix.Kuehling@amd.com>
+Date: Wed, 5 Sep 2018 20:19:54 -0400
+Subject: [PATCH 0340/2940] drm/amdgpu: Fix compute VM BO params after rebase
+ v2
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The intent of two commits was lost in the last rebase:
+
+810955b drm/amdgpu: Fix acquiring VM on large-BAR systems
+b5d21aa drm/amdgpu: Don't use shadow BO for compute context
+
+This commit restores the original behaviour:
+* Don't set AMDGPU_GEM_CREATE_NO_CPU_ACCESS for page directories
+ to allow them to be reused for compute VMs
+* Don't create shadow BOs for page tables in compute VMs
+
+v2: move more logic into amdgpu_vm_bo_param
+
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Tested-by: Kent Russell <Kent.Russell@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index 3403e969a267..4896460a8f81 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+@@ -590,9 +590,8 @@ static void amdgpu_vm_bo_param(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ AMDGPU_GEM_CREATE_CPU_GTT_USWC;
+ if (vm->use_cpu_for_update)
+ bp->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
+- else
+- bp->flags |= AMDGPU_GEM_CREATE_SHADOW |
+- AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
++ else if (!vm->root.base.bo || vm->root.base.bo->shadow)
++ bp->flags |= AMDGPU_GEM_CREATE_SHADOW;
+ bp->type = ttm_bo_type_kernel;
+ if (vm->root.base.bo)
+ bp->resv = vm->root.base.bo->tbo.resv;
+@@ -2772,6 +2771,8 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ vm->last_update = NULL;
+
+ amdgpu_vm_bo_param(adev, vm, adev->vm_manager.root_level, &bp);
++ if (vm_context == AMDGPU_VM_CONTEXT_COMPUTE)
++ bp.flags &= ~AMDGPU_GEM_CREATE_SHADOW;
+ r = amdgpu_bo_create(adev, &bp, &root);
+ if (r)
+ goto error_free_sched_entity;
+--
+2.17.1
+