drm/amd/pm: only send GmiPwrDnControl msg on master die (v3)
PMFW only returns 0 on master die and sends NACK back on other dies for the message. v2: only send GmiPwrDnControl msg on master die instead of all dies. v3: remove the pointer check for get_socket_id and get_die_id as they should be present on Aldebaran. Signed-off-by: Tao Zhou <tao.zhou1@amd.com> Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
2096b74b1d
commit
15084a8e16
@ -1625,10 +1625,18 @@ static int aldebaran_set_df_cstate(struct smu_context *smu,
|
||||
|
||||
static int aldebaran_allow_xgmi_power_down(struct smu_context *smu, bool en)
|
||||
{
|
||||
return smu_cmn_send_smc_msg_with_param(smu,
|
||||
SMU_MSG_GmiPwrDnControl,
|
||||
en ? 0 : 1,
|
||||
NULL);
|
||||
struct amdgpu_device *adev = smu->adev;
|
||||
|
||||
/* The message only works on master die and NACK will be sent
|
||||
back for other dies, only send it on master die */
|
||||
if (!adev->smuio.funcs->get_socket_id(adev) &&
|
||||
!adev->smuio.funcs->get_die_id(adev))
|
||||
return smu_cmn_send_smc_msg_with_param(smu,
|
||||
SMU_MSG_GmiPwrDnControl,
|
||||
en ? 0 : 1,
|
||||
NULL);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct throttling_logging_label {
|
||||
|
Loading…
Reference in New Issue
Block a user