Use PrepareMp1ForUnload for mode1 reset and PrepareMp1ForShutdown for baco reset. Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> --- .../gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c index e16d6654692f..c3d2b32f0b66 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c @@ -3756,6 +3756,7 @@ static int vega20_disable_dpm_tasks(struct pp_hwmgr *hwmgr) static int vega20_power_off_asic(struct pp_hwmgr *hwmgr) { struct vega20_hwmgr *data = (struct vega20_hwmgr *)(hwmgr->backend); + struct amdgpu_device *adev = hwmgr->adev; int result; result = vega20_disable_dpm_tasks(hwmgr); @@ -3764,10 +3765,19 @@ static int vega20_power_off_asic(struct pp_hwmgr *hwmgr) ); data->water_marks_bitmap &= ~(WaterMarksLoaded); - PP_ASSERT_WITH_CODE((result = smum_send_msg_to_smc(hwmgr, - PPSMC_MSG_PrepareMp1ForUnload)) == 0, - "[PrepareMp1ForUnload] Failed!", - return result); + if (amdgpu_asic_reset_method(adev) == AMD_RESET_METHOD_MODE1) { + PP_ASSERT_WITH_CODE((result = + smum_send_msg_to_smc(hwmgr, + PPSMC_MSG_PrepareMp1ForUnload)) == 0, + "[PrepareMp1ForUnload] Failed!", + return result); + } else { + PP_ASSERT_WITH_CODE((result = + smum_send_msg_to_smc(hwmgr, + PPSMC_MSG_PrepareMp1ForShutdown)) == 0, + "[PrepareMp1ForUnload] Failed!", + return result); + } return result; } -- 2.20.1 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx