From daff875e031e0449c9e6cfae35b86f037fa4bf29 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Mon, 20 Apr 2020 16:19:40 -0700 Subject: More hotfixes --- ...ng-during-perform-system-reboot-and-reset.patch | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch (limited to '0003-drm-amdgpu-fix-the-hw-hang-during-perform-system-reboot-and-reset.patch') 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 +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 +Tested-by: Mengbing Wang +Tested-by: Paul Menzel +Acked-by: Alex Deucher +Signed-off-by: Alex Deucher +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + 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 + -- cgit v1.2.1