aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2033-drm-amdkfd-Fix-to-use-kiq.ring_lock-instead-of-kiq.r.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2033-drm-amdkfd-Fix-to-use-kiq.ring_lock-instead-of-kiq.r.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2033-drm-amdkfd-Fix-to-use-kiq.ring_lock-instead-of-kiq.r.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2033-drm-amdkfd-Fix-to-use-kiq.ring_lock-instead-of-kiq.r.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2033-drm-amdkfd-Fix-to-use-kiq.ring_lock-instead-of-kiq.r.patch
new file mode 100644
index 00000000..f0a5749b
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2033-drm-amdkfd-Fix-to-use-kiq.ring_lock-instead-of-kiq.r.patch
@@ -0,0 +1,61 @@
+From b52bea1730954ff91580ffbac54ae44533eca548 Mon Sep 17 00:00:00 2001
+From: "Le.Ma" <Le.Ma@amd.com>
+Date: Fri, 20 Oct 2017 10:06:06 +0800
+Subject: [PATCH 2033/4131] drm/amdkfd: Fix to use kiq.ring_lock instead of
+ kiq.ring_mutex
+
+Change-Id: I2cecaf30c15112e1bc2cc08a388a848279350920
+Signed-off-by: Le.Ma <Le.Ma@amd.com>
+Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+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 4c5d39a..3cf283f 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+@@ -798,7 +798,7 @@ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
+ struct dma_fence *f;
+ struct amdgpu_ring *ring = &adev->gfx.kiq.ring;
+
+- mutex_lock(&adev->gfx.kiq.ring_mutex);
++ spin_lock(&adev->gfx.kiq.ring_lock);
+ amdgpu_ring_alloc(ring, 12); /* fence + invalidate_tlbs package*/
+ amdgpu_ring_write(ring, PACKET3(PACKET3_INVALIDATE_TLBS, 0));
+ amdgpu_ring_write(ring,
+@@ -806,7 +806,7 @@ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
+ PACKET3_INVALIDATE_TLBS_PASID(pasid));
+ amdgpu_fence_emit(ring, &f);
+ amdgpu_ring_commit(ring);
+- mutex_unlock(&adev->gfx.kiq.ring_mutex);
++ spin_unlock(&adev->gfx.kiq.ring_lock);
+
+ r = dma_fence_wait(f, false);
+ if (r)
+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 25c3454..b7d3485 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+@@ -972,7 +972,7 @@ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
+ struct dma_fence *f;
+ struct amdgpu_ring *ring = &adev->gfx.kiq.ring;
+
+- mutex_lock(&adev->gfx.kiq.ring_mutex);
++ spin_lock(&adev->gfx.kiq.ring_lock);
+ amdgpu_ring_alloc(ring, 12); /* fence + invalidate_tlbs package*/
+ amdgpu_ring_write(ring, PACKET3(PACKET3_INVALIDATE_TLBS, 0));
+ amdgpu_ring_write(ring,
+@@ -982,7 +982,7 @@ static int invalidate_tlbs_with_kiq(struct amdgpu_device *adev, uint16_t pasid)
+ PACKET3_INVALIDATE_TLBS_FLUSH_TYPE(2));
+ amdgpu_fence_emit(ring, &f);
+ amdgpu_ring_commit(ring);
+- mutex_unlock(&adev->gfx.kiq.ring_mutex);
++ spin_unlock(&adev->gfx.kiq.ring_lock);
+
+ r = dma_fence_wait(f, false);
+ if (r)
+--
+2.7.4
+