aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4665-drm-amdgpu-reduce-redundant-uvd-context-lost-warning.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4665-drm-amdgpu-reduce-redundant-uvd-context-lost-warning.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4665-drm-amdgpu-reduce-redundant-uvd-context-lost-warning.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4665-drm-amdgpu-reduce-redundant-uvd-context-lost-warning.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4665-drm-amdgpu-reduce-redundant-uvd-context-lost-warning.patch
new file mode 100644
index 00000000..1041a49e
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4665-drm-amdgpu-reduce-redundant-uvd-context-lost-warning.patch
@@ -0,0 +1,53 @@
+From 6a190b81b435736dbf4d2b6f12452132c624717a Mon Sep 17 00:00:00 2001
+From: Le Ma <le.ma@amd.com>
+Date: Wed, 27 Nov 2019 16:51:22 +0800
+Subject: [PATCH 4665/4736] drm/amdgpu: reduce redundant uvd context lost
+ warning message
+
+Move the print out of uvd instance loop in amdgpu_uvd_suspend
+
+v2: drop unnecessary brackets
+v3: grab ras_intr state once for multiple times use
+
+Change-Id: Ifad997debd84763e1b55d668e144b729598f115e
+Signed-off-by: Le Ma <le.ma@amd.com>
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
+index 32128e982e4c..04bc063ba1c7 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
+@@ -349,6 +349,7 @@ int amdgpu_uvd_suspend(struct amdgpu_device *adev)
+ unsigned size;
+ void *ptr;
+ int i, j;
++ bool in_ras_intr = amdgpu_ras_intr_triggered();
+
+ cancel_delayed_work_sync(&adev->uvd.idle_work);
+
+@@ -376,13 +377,15 @@ int amdgpu_uvd_suspend(struct amdgpu_device *adev)
+ return -ENOMEM;
+
+ /* re-write 0 since err_event_athub will corrupt VCPU buffer */
+- if (amdgpu_ras_intr_triggered()) {
+- DRM_WARN("UVD VCPU state may lost due to RAS ERREVENT_ATHUB_INTERRUPT\n");
++ if (in_ras_intr)
+ memset(adev->uvd.inst[j].saved_bo, 0, size);
+- } else {
++ else
+ memcpy_fromio(adev->uvd.inst[j].saved_bo, ptr, size);
+- }
+ }
++
++ if (in_ras_intr)
++ DRM_WARN("UVD VCPU state may lost due to RAS ERREVENT_ATHUB_INTERRUPT\n");
++
+ return 0;
+ }
+
+--
+2.17.1
+