|
@@ -5660,6 +5660,11 @@ static int gfx_v8_0_set_powergating_state(void *handle,
|
|
if (amdgpu_sriov_vf(adev))
|
|
if (amdgpu_sriov_vf(adev))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+ if (adev->pg_flags & (AMD_PG_SUPPORT_GFX_SMG |
|
|
|
|
+ AMD_PG_SUPPORT_RLC_SMU_HS |
|
|
|
|
+ AMD_PG_SUPPORT_CP |
|
|
|
|
+ AMD_PG_SUPPORT_GFX_DMG))
|
|
|
|
+ adev->gfx.rlc.funcs->enter_safe_mode(adev);
|
|
switch (adev->asic_type) {
|
|
switch (adev->asic_type) {
|
|
case CHIP_CARRIZO:
|
|
case CHIP_CARRIZO:
|
|
case CHIP_STONEY:
|
|
case CHIP_STONEY:
|
|
@@ -5709,7 +5714,11 @@ static int gfx_v8_0_set_powergating_state(void *handle,
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ if (adev->pg_flags & (AMD_PG_SUPPORT_GFX_SMG |
|
|
|
|
+ AMD_PG_SUPPORT_RLC_SMU_HS |
|
|
|
|
+ AMD_PG_SUPPORT_CP |
|
|
|
|
+ AMD_PG_SUPPORT_GFX_DMG))
|
|
|
|
+ adev->gfx.rlc.funcs->exit_safe_mode(adev);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|