aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1046-drm-amdgpu-try-to-find-BO-VAs-only-for-the-BOs-in-th.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1046-drm-amdgpu-try-to-find-BO-VAs-only-for-the-BOs-in-th.patch')
-rw-r--r--meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1046-drm-amdgpu-try-to-find-BO-VAs-only-for-the-BOs-in-th.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1046-drm-amdgpu-try-to-find-BO-VAs-only-for-the-BOs-in-th.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1046-drm-amdgpu-try-to-find-BO-VAs-only-for-the-BOs-in-th.patch
new file mode 100644
index 00000000..4c17920d
--- /dev/null
+++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/1046-drm-amdgpu-try-to-find-BO-VAs-only-for-the-BOs-in-th.patch
@@ -0,0 +1,61 @@
+From 0a3a60dfd57c57df2c90954c3892c16d4b892f51 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Tue, 5 Jan 2016 16:03:39 +0100
+Subject: [PATCH 1046/1050] drm/amdgpu: try to find BO VAs only for the BOs in
+ the list
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The other ones don't have any VAs assigned anyway or are uninteresting to us.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 91b18eb..d48455c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -290,8 +290,6 @@ static u64 amdgpu_cs_get_threshold_for_moves(struct amdgpu_device *adev)
+ int amdgpu_cs_list_validate(struct amdgpu_cs_parser *p,
+ struct list_head *validated)
+ {
+- struct amdgpu_fpriv *fpriv = p->filp->driver_priv;
+- struct amdgpu_vm *vm = &fpriv->vm;
+ struct amdgpu_bo_list_entry *lobj;
+ u64 initial_bytes_moved;
+ int r;
+@@ -300,7 +298,6 @@ int amdgpu_cs_list_validate(struct amdgpu_cs_parser *p,
+ struct amdgpu_bo *bo = lobj->robj;
+ uint32_t domain;
+
+- lobj->bo_va = amdgpu_vm_bo_find(vm, bo);
+ if (bo->pin_count)
+ continue;
+
+@@ -374,6 +371,19 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
+ goto error_validate;
+
+ r = amdgpu_cs_list_validate(p, &p->validated);
++ if (r)
++ goto error_validate;
++
++ if (p->bo_list) {
++ struct amdgpu_vm *vm = &fpriv->vm;
++ unsigned i;
++
++ for (i = 0; i < p->bo_list->num_entries; i++) {
++ struct amdgpu_bo *bo = p->bo_list->array[i].robj;
++
++ p->bo_list->array[i].bo_va = amdgpu_vm_bo_find(vm, bo);
++ }
++ }
+
+ error_validate:
+ if (r)
+--
+1.9.1
+