| From 4da0d6277fbfe80921f03df487c0f682c656e6fc Mon Sep 17 00:00:00 2001 |
| From: Prike Liang <Prike.Liang@amd.com> |
| Date: Mon, 13 Apr 2020 21:41:14 +0800 |
| Subject: [PATCH] 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |
| index 83fd9fb61d6a..9cf9cb820913 100644 |
| --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |
| +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |
| @@ -2046,6 +2046,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) |
| -- |
| 2.7.4 |
| |