Skip to content

Commit 15084a8

Browse files
Tao Zhoualexdeucher
authored andcommitted
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 <[email protected]> Reviewed-by: Lijo Lazar <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 2096b74 commit 15084a8

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,10 +1625,18 @@ static int aldebaran_set_df_cstate(struct smu_context *smu,
16251625

16261626
static int aldebaran_allow_xgmi_power_down(struct smu_context *smu, bool en)
16271627
{
1628-
return smu_cmn_send_smc_msg_with_param(smu,
1629-
SMU_MSG_GmiPwrDnControl,
1630-
en ? 0 : 1,
1631-
NULL);
1628+
struct amdgpu_device *adev = smu->adev;
1629+
1630+
/* The message only works on master die and NACK will be sent
1631+
back for other dies, only send it on master die */
1632+
if (!adev->smuio.funcs->get_socket_id(adev) &&
1633+
!adev->smuio.funcs->get_die_id(adev))
1634+
return smu_cmn_send_smc_msg_with_param(smu,
1635+
SMU_MSG_GmiPwrDnControl,
1636+
en ? 0 : 1,
1637+
NULL);
1638+
else
1639+
return 0;
16321640
}
16331641

16341642
static const struct throttling_logging_label {

0 commit comments

Comments
 (0)