aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3291-drm-amdgpu-use-queue-0-for-kiq-ring.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3291-drm-amdgpu-use-queue-0-for-kiq-ring.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3291-drm-amdgpu-use-queue-0-for-kiq-ring.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3291-drm-amdgpu-use-queue-0-for-kiq-ring.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3291-drm-amdgpu-use-queue-0-for-kiq-ring.patch
new file mode 100644
index 00000000..bc3187fa
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3291-drm-amdgpu-use-queue-0-for-kiq-ring.patch
@@ -0,0 +1,37 @@
+From 4877a39147b6eaf0c400f7f5fa8a3124cab9ab17 Mon Sep 17 00:00:00 2001
+From: Huang Rui <ray.huang@amd.com>
+Date: Fri, 15 Dec 2017 09:33:21 +0800
+Subject: [PATCH 3291/4131] drm/amdgpu: use queue 0 for kiq ring
+
+It must use queue id 0, because CGPG_IDLE/SAVE/LOAD/RUN only can be issued on
+queue 0.
+
+Signed-off-by: Huang Rui <ray.huang@amd.com>
+Acked-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+index dcdd9e3..3116e4d 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+@@ -179,8 +179,12 @@ static int amdgpu_gfx_kiq_acquire(struct amdgpu_device *adev,
+
+ amdgpu_gfx_bit_to_queue(adev, queue_bit, &mec, &pipe, &queue);
+
+- /* Using pipes 2/3 from MEC 2 seems cause problems */
+- if (mec == 1 && pipe > 1)
++ /*
++ * 1. Using pipes 2/3 from MEC 2 seems cause problems.
++ * 2. It must use queue id 0, because CGPG_IDLE/SAVE/LOAD/RUN
++ * only can be issued on queue 0.
++ */
++ if ((mec == 1 && pipe > 1) || queue != 0)
+ continue;
+
+ ring->me = mec + 1;
+--
+2.7.4
+