diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4491-drm-amdgpu-Avoid-invalidate-tlbs-when-gpu-is-on-rese.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4491-drm-amdgpu-Avoid-invalidate-tlbs-when-gpu-is-on-rese.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4491-drm-amdgpu-Avoid-invalidate-tlbs-when-gpu-is-on-rese.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4491-drm-amdgpu-Avoid-invalidate-tlbs-when-gpu-is-on-rese.patch new file mode 100644 index 00000000..2e56d37b --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4491-drm-amdgpu-Avoid-invalidate-tlbs-when-gpu-is-on-rese.patch @@ -0,0 +1,61 @@ +From 1342dd9b236b14c296e97c37da02a60d18e153dd Mon Sep 17 00:00:00 2001 +From: Shaoyun Liu <Shaoyun.Liu@amd.com> +Date: Tue, 8 May 2018 11:48:06 -0400 +Subject: [PATCH 4491/5725] drm/amdgpu: Avoid invalidate tlbs when gpu is on + reset + +Change-Id: Iff018a8b01c9015f2b1e1368d1b1d515e62af6d5 +Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 3 +++ + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 3 +++ + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 5 ++++- + 3 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c +index b04471b..f833437 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c +@@ -822,6 +822,9 @@ static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid) + int vmid; + unsigned int tmp; + ++ if (adev->in_gpu_reset) ++ return -EIO; ++ + for (vmid = 0; vmid < 16; vmid++) { + if (!amdgpu_amdkfd_is_kfd_vmid(adev, vmid)) + continue; +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 d723ae2..0c7c248 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c +@@ -791,6 +791,9 @@ static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid) + int vmid; + unsigned int tmp; + ++ if (adev->in_gpu_reset) ++ return -EIO; ++ + #ifdef V8_SUPPORT_IT_OFFICIAL + struct amdgpu_ring *ring = &adev->gfx.kiq.ring; + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +index a81e301..7af8ee6 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +@@ -989,7 +989,10 @@ static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid) + int vmid; + struct amdgpu_ring *ring = &adev->gfx.kiq.ring; + +- if (ring->ready && (!adev->in_gpu_reset)) ++ if (adev->in_gpu_reset) ++ return -EIO; ++ ++ if (ring->ready) + return invalidate_tlbs_with_kiq(adev, pasid); + + for (vmid = 0; vmid < 16; vmid++) { +-- +2.7.4 + |