diff options
| author | Asad Kamal <[email protected]> | 2024-10-04 09:42:54 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2024-10-15 15:18:42 +0000 |
| commit | 2a90ae75f9487bd6adfaa3dd7f7ae3f15b50f28e (patch) | |
| tree | 15ca7b7ffc9e1c0811fa4c44982f0124ee77046c | |
| parent | drm/amd/pm: Update SMUv13.0.6 PMFW headers (diff) | |
| download | kernel-2a90ae75f9487bd6adfaa3dd7f7ae3f15b50f28e.tar.gz kernel-2a90ae75f9487bd6adfaa3dd7f7ae3f15b50f28e.zip | |
drm/amd/pm: Fill pcie recov cntr to metrics 1.6
Fill pcie other end recovery counter to metrics 1.6
v2: Add separate function to check recovery counter support
Signed-off-by: Asad Kamal <[email protected]>
Reviewed-by: Lijo Lazar <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
| -rw-r--r-- | drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c index 52f3c537bb3f..91297590f006 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c @@ -108,6 +108,18 @@ static inline bool smu_v13_0_6_is_unified_metrics(struct smu_context *smu) smu->smc_fw_version <= 0x4556900; } +static inline bool smu_v13_0_6_is_other_end_count_available(struct smu_context *smu) +{ + switch (amdgpu_ip_version(smu->adev, MP1_HWIP, 0)) { + case IP_VERSION(13, 0, 6): + return smu->smc_fw_version >= 0x557600; + case IP_VERSION(13, 0, 14): + return smu->smc_fw_version >= 0x05550E00; + default: + return false; + } +} + struct mca_bank_ipid { enum amdgpu_mca_ip ip; uint16_t hwid; @@ -2417,6 +2429,10 @@ static ssize_t smu_v13_0_6_get_gpu_metrics(struct smu_context *smu, void **table metrics_x->PCIeNAKSentCountAcc; gpu_metrics->pcie_nak_rcvd_count_acc = metrics_x->PCIeNAKReceivedCountAcc; + if (smu_v13_0_6_is_other_end_count_available(smu)) + gpu_metrics->pcie_lc_perf_other_end_recovery = + metrics_x->PCIeOtherEndRecoveryAcc; + } gpu_metrics->system_clock_counter = ktime_get_boottime_ns(); |
