drm/amd/pm: skip to set mp1 unload state in special case

set mp1 unload state will cause the SMC FW can't accept any SMU message,
skip to set mp1 unload state to avoid following case fail:
- runtime pm case.
- gpu reset case.

Fixes: 72aeb6ee0c ("drm/amd/pm: fix driver reload SMC firmware fail issue for smu13")
Signed-off-by: Yang Wang <KevinYang.Wang@amd.com>
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Yang Wang 2022-06-10 11:48:04 +08:00 committed by Alex Deucher
parent 8748de873f
commit 51c45e450f

View File

@ -1415,12 +1415,13 @@ static int smu_disable_dpms(struct smu_context *smu)
switch (adev->ip_versions[MP1_HWIP][0]) {
case IP_VERSION(13, 0, 0):
case IP_VERSION(13, 0, 7):
ret = smu_set_mp1_state(smu, PP_MP1_STATE_UNLOAD);
if (ret) {
dev_err(adev->dev, "Fail set mp1 state to UNLOAD!\n");
return ret;
if (!(adev->in_runpm || amdgpu_in_reset(adev))) {
ret = smu_set_mp1_state(smu, PP_MP1_STATE_UNLOAD);
if (ret) {
dev_err(adev->dev, "Fail set mp1 state to UNLOAD!\n");
return ret;
}
}
return 0;
default:
break;