summaryrefslogtreecommitdiff
path: root/0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2020-04-20 14:49:23 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2020-04-20 14:49:23 -0700
commitd0bdefda6fb23178605b5a3086af15816e3de28c (patch)
tree5e2c379ef4ff70e320f88c377e5646c1a1a56539 /0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch
parentApply hotfix (diff)
downloadlinux-d0bdefda6fb23178605b5a3086af15816e3de28c.tar.xz
More hotfixes
Diffstat (limited to '0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch')
-rw-r--r--0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch b/0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch
new file mode 100644
index 0000000..bbe177a
--- /dev/null
+++ b/0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch
@@ -0,0 +1,39 @@
+From 1f8782c04f587b9e0901f7736c112814dd0dcc47 Mon Sep 17 00:00:00 2001
+From: Prike Liang <Prike.Liang@amd.com>
+Date: Mon, 13 Apr 2020 21:41:14 +0800
+Subject: drm/amdgpu: fix the hw hang during perform system reboot and reset
+
+commit b2a7e9735ab2864330be9d00d7f38c961c28de5d upstream.
+
+The system reboot failed as some IP blocks enter power gate before perform
+hw resource destory. Meanwhile use unify interface to set device CGPG to ungate
+state can simplify the amdgpu poweroff or reset ungate guard.
+
+Fixes: 487eca11a321ef ("drm/amdgpu: fix gfx hang during suspend with video playback (v2)")
+Signed-off-by: Prike Liang <Prike.Liang@amd.com>
+Tested-by: Mengbing Wang <Mengbing.Wang@amd.com>
+Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index 48e2863461b7..c8bf9cb3cebf 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -2285,6 +2285,8 @@ static int amdgpu_device_ip_suspend_phase1(struct amdgpu_device *adev)
+ {
+ int i, r;
+
++ amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE);
++ amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);
+
+ for (i = adev->num_ip_blocks - 1; i >= 0; i--) {
+ if (!adev->ip_blocks[i].status.valid)
+--
+cgit v1.2.3-1-gf6bb5
+