aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/1689-drm-amdgpu-Don-t-use-the-invalidate_tlb-package-for-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1689-drm-amdgpu-Don-t-use-the-invalidate_tlb-package-for-.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/1689-drm-amdgpu-Don-t-use-the-invalidate_tlb-package-for-.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1689-drm-amdgpu-Don-t-use-the-invalidate_tlb-package-for-.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1689-drm-amdgpu-Don-t-use-the-invalidate_tlb-package-for-.patch
new file mode 100644
index 00000000..50cf0e0b
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1689-drm-amdgpu-Don-t-use-the-invalidate_tlb-package-for-.patch
@@ -0,0 +1,57 @@
+From e4ab02f964863db646492155f47347b4a36af35a Mon Sep 17 00:00:00 2001
+From: Shaoyun Liu <Shaoyun.Liu@amd.com>
+Date: Fri, 5 May 2017 18:30:59 -0400
+Subject: [PATCH 1689/4131] drm/amdgpu: Don't use the invalidate_tlb package
+ for V8
+
+Poliars test failed with this package, FIJI works fine
+From the CP spec it does not official support the invalidation
+with the specified pasid in the package, so disable it for V8
+
+Change-Id: Iab77bbeb5cd70719102122fe4a61166ced66ac67
+Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+index b07c26f..833eba2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+@@ -766,6 +766,13 @@ static void write_vmid_invalidate_request(struct kgd_dev *kgd, uint8_t vmid)
+ WREG32(mmVM_INVALIDATE_REQUEST, 1 << vmid);
+ }
+
++/*
++ * FIXME: Poliars test failed with this package, FIJI works fine
++ * From the CP spec it does not official support the invalidation
++ * with the specified pasid in the package, so disable it for V8
++ *
++ */
++#ifdef V8_SUPPORT_IT_OFFICIAL
+ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
+ {
+ signed long r;
+@@ -790,15 +797,18 @@ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
+
+ return r;
+ }
+-
++#endif
+ static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
+ int vmid;
++
++#ifdef V8_SUPPORT_IT_OFFICIAL
+ struct amdgpu_ring *ring = &adev->gfx.kiq.ring;
+
+ if (ring->ready)
+ return invalidate_tlbs_with_kiq(adev, pasid);
++#endif
+
+ for (vmid = 0; vmid < 16; vmid++) {
+ if (!amdgpu_amdkfd_is_kfd_vmid(adev, vmid))
+--
+2.7.4
+