Commit 2fb4883b authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

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: 32f73741 ("drm/amdgpu: Wait for bootloader after PSPv11 reset")
Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/4853


Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 054695c0
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2683,8 +2683,12 @@ static int amdgpu_pmops_freeze(struct device *dev)
	if (r)
		return r;

	if (amdgpu_acpi_should_gpu_reset(adev))
		return amdgpu_asic_reset(adev);
	if (amdgpu_acpi_should_gpu_reset(adev)) {
		amdgpu_device_lock_reset_domain(adev->reset_domain);
		r = amdgpu_asic_reset(adev);
		amdgpu_device_unlock_reset_domain(adev->reset_domain);
		return r;
	}
	return 0;
}

+2 −1
Original line number Diff line number Diff line
@@ -170,7 +170,8 @@ static int psp_v11_0_wait_for_bootloader(struct psp_context *psp)
	int retry_loop;

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

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