diff options
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-.patch | 57 |
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 + |