Skip to content

Commit daf470b

Browse files
Lijo Lazaralexdeucher
authored andcommitted
drm/amdgpu: Fix wait after reset sequence in S4
For a mode-1 reset done at the end of S4 on PSPv11 dGPUs, only check if TOS is unloaded. Fixes: 32f7374 ("drm/amdgpu: Wait for bootloader after PSPv11 reset") Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/4853 Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 2fb4883) Cc: stable@vger.kernel.org
1 parent e927b36 commit daf470b

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2703,8 +2703,12 @@ static int amdgpu_pmops_freeze(struct device *dev)
27032703
if (r)
27042704
return r;
27052705

2706-
if (amdgpu_acpi_should_gpu_reset(adev))
2707-
return amdgpu_asic_reset(adev);
2706+
if (amdgpu_acpi_should_gpu_reset(adev)) {
2707+
amdgpu_device_lock_reset_domain(adev->reset_domain);
2708+
r = amdgpu_asic_reset(adev);
2709+
amdgpu_device_unlock_reset_domain(adev->reset_domain);
2710+
return r;
2711+
}
27082712
return 0;
27092713
}
27102714

drivers/gpu/drm/amd/amdgpu/psp_v11_0.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,8 @@ static int psp_v11_0_wait_for_bootloader(struct psp_context *psp)
170170
int retry_loop;
171171

172172
/* For a reset done at the end of S3, only wait for TOS to be unloaded */
173-
if (adev->in_s3 && !(adev->flags & AMD_IS_APU) && amdgpu_in_reset(adev))
173+
if ((adev->in_s4 || adev->in_s3) && !(adev->flags & AMD_IS_APU) &&
174+
amdgpu_in_reset(adev))
174175
return psp_v11_wait_for_tos_unload(psp);
175176

176177
for (retry_loop = 0; retry_loop < 20; retry_loop++) {

0 commit comments

Comments
 (0)