aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2031-drm-amdgpu-linear-validate-first-then-bind-to-GART.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2031-drm-amdgpu-linear-validate-first-then-bind-to-GART.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2031-drm-amdgpu-linear-validate-first-then-bind-to-GART.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2031-drm-amdgpu-linear-validate-first-then-bind-to-GART.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2031-drm-amdgpu-linear-validate-first-then-bind-to-GART.patch
new file mode 100644
index 00000000..06cb71f3
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2031-drm-amdgpu-linear-validate-first-then-bind-to-GART.patch
@@ -0,0 +1,52 @@
+From fcb98f216a4fc03328c7abf79084acffb6a0bcb8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Mon, 16 Oct 2017 10:32:04 +0200
+Subject: [PATCH 2031/4131] drm/amdgpu: linear validate first then bind to GART
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For VM emulation for old UVD/VCE we need to validate the BO with linear
+VRAM flag set first and then eventually bind it to GART.
+
+Validating with linear VRAM flag set can move the BO to GART making
+UVD/VCE read/write from an unbound GART BO.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+CC: stable@vger.kernel.org
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 6794670..e84b63a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -1631,14 +1631,14 @@ int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser,
+ if (READ_ONCE((*bo)->tbo.resv->lock.ctx) != &parser->ticket)
+ return -EINVAL;
+
+- r = amdgpu_ttm_bind(&(*bo)->tbo, &(*bo)->tbo.mem);
+- if (unlikely(r))
+- return r;
+-
+- if ((*bo)->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)
+- return 0;
++ if (!((*bo)->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)) {
++ (*bo)->flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
++ amdgpu_ttm_placement_from_domain(*bo, (*bo)->allowed_domains);
++ r = ttm_bo_validate(&(*bo)->tbo, &(*bo)->placement, false,
++ false);
++ if (r)
++ return r;
++ }
+
+- (*bo)->flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
+- amdgpu_ttm_placement_from_domain(*bo, (*bo)->allowed_domains);
+- return ttm_bo_validate(&(*bo)->tbo, &(*bo)->placement, false, false);
++ return amdgpu_ttm_bind(&(*bo)->tbo, &(*bo)->tbo.mem);
+ }
+--
+2.7.4
+