Skip to content

Commit 11b9a1e

Browse files
Evan Quangregkh
Evan Quan
authored andcommitted
drm/amd/pm: correct the metrics version for SMU 11.0.11/12/13
[ Upstream commit 396beb9 ] Correct the metrics version used for SMU 11.0.11/12/13. Fixes misreported GPU metrics (e.g., fan speed, etc.) depending on which version of SMU firmware is loaded. Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1925 Signed-off-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent 1712b06 commit 11b9a1e

File tree

1 file changed

+44
-13
lines changed

1 file changed

+44
-13
lines changed

drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c

+44-13
Original file line numberDiff line numberDiff line change
@@ -586,12 +586,28 @@ static int sienna_cichlid_get_smu_metrics_data(struct smu_context *smu,
586586
uint16_t average_gfx_activity;
587587
int ret = 0;
588588

589-
if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) &&
590-
(smu->smc_fw_version >= 0x3A4900))
591-
use_metrics_v3 = true;
592-
else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) &&
593-
(smu->smc_fw_version >= 0x3A4300))
594-
use_metrics_v2 = true;
589+
switch (smu->adev->ip_versions[MP1_HWIP][0]) {
590+
case IP_VERSION(11, 0, 7):
591+
if (smu->smc_fw_version >= 0x3A4900)
592+
use_metrics_v3 = true;
593+
else if (smu->smc_fw_version >= 0x3A4300)
594+
use_metrics_v2 = true;
595+
break;
596+
case IP_VERSION(11, 0, 11):
597+
if (smu->smc_fw_version >= 0x412D00)
598+
use_metrics_v2 = true;
599+
break;
600+
case IP_VERSION(11, 0, 12):
601+
if (smu->smc_fw_version >= 0x3B2300)
602+
use_metrics_v2 = true;
603+
break;
604+
case IP_VERSION(11, 0, 13):
605+
if (smu->smc_fw_version >= 0x491100)
606+
use_metrics_v2 = true;
607+
break;
608+
default:
609+
break;
610+
}
595611

596612
ret = smu_cmn_get_metrics_table(smu,
597613
NULL,
@@ -3701,13 +3717,28 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct smu_context *smu,
37013717
uint16_t average_gfx_activity;
37023718
int ret = 0;
37033719

3704-
if ((adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) &&
3705-
(smu->smc_fw_version >= 0x3A4900))
3706-
use_metrics_v3 = true;
3707-
else if ((adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) &&
3708-
(smu->smc_fw_version >= 0x3A4300))
3709-
use_metrics_v2 = true;
3710-
3720+
switch (smu->adev->ip_versions[MP1_HWIP][0]) {
3721+
case IP_VERSION(11, 0, 7):
3722+
if (smu->smc_fw_version >= 0x3A4900)
3723+
use_metrics_v3 = true;
3724+
else if (smu->smc_fw_version >= 0x3A4300)
3725+
use_metrics_v2 = true;
3726+
break;
3727+
case IP_VERSION(11, 0, 11):
3728+
if (smu->smc_fw_version >= 0x412D00)
3729+
use_metrics_v2 = true;
3730+
break;
3731+
case IP_VERSION(11, 0, 12):
3732+
if (smu->smc_fw_version >= 0x3B2300)
3733+
use_metrics_v2 = true;
3734+
break;
3735+
case IP_VERSION(11, 0, 13):
3736+
if (smu->smc_fw_version >= 0x491100)
3737+
use_metrics_v2 = true;
3738+
break;
3739+
default:
3740+
break;
3741+
}
37113742

37123743
ret = smu_cmn_get_metrics_table(smu,
37133744
&metrics_external,

0 commit comments

Comments
 (0)