aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4338-drm-amdgpu-For-sriov-reset-move-IB-test-into-exclusi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4338-drm-amdgpu-For-sriov-reset-move-IB-test-into-exclusi.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4338-drm-amdgpu-For-sriov-reset-move-IB-test-into-exclusi.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4338-drm-amdgpu-For-sriov-reset-move-IB-test-into-exclusi.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4338-drm-amdgpu-For-sriov-reset-move-IB-test-into-exclusi.patch
new file mode 100644
index 00000000..c7b2de56
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4338-drm-amdgpu-For-sriov-reset-move-IB-test-into-exclusi.patch
@@ -0,0 +1,50 @@
+From 54c3274c63a32a0379f483b14ade2030885ae969 Mon Sep 17 00:00:00 2001
+From: Emily Deng <Emily.Deng@amd.com>
+Date: Thu, 26 Apr 2018 18:02:55 +0800
+Subject: [PATCH 4338/5725] drm/amdgpu: For sriov reset, move IB test into
+ exclusive mode
+
+When put the IB test out of exclusive mode, and do sriov reset,
+the IB test will randomly fail. As out of exclusive mode it uses
+kiq to do read and write registers, but as it has world switch,
+the kiq read and write time will be random, sometimes it will
+beyond the MAX_KIQ_REG_WAIT and then the read or write register
+will fail, which will result the IB test fail.
+
+Signed-off-by: Emily Deng <Emily.Deng@amd.com>
+Reviewed-by: Monk Liu <monk.liu@amd.com>
+Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 30e607e..405d3a8 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -3213,19 +3213,19 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
+
+ /* now we are okay to resume SMC/CP/SDMA */
+ r = amdgpu_device_ip_reinit_late_sriov(adev);
+- amdgpu_virt_release_full_gpu(adev, true);
+ if (r)
+ goto error;
+
+ amdgpu_irq_gpu_reset_resume_helper(adev);
+ r = amdgpu_ib_ring_tests(adev);
++
++error:
++ amdgpu_virt_release_full_gpu(adev, true);
+ if (!r && adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST) {
+ atomic_inc(&adev->vram_lost_counter);
+ r = amdgpu_device_handle_vram_lost(adev);
+ }
+
+-error:
+-
+ return r;
+ }
+
+--
+2.7.4
+