On 10/9/2024 5:44 PM, Asad Kamal wrote: > Fill pcie other end recovery counter to metrics 1.6 > > v2: Add separate function to check recovery counter support > > Signed-off-by: Asad Kamal <asad.kamal@xxxxxxx> > --- > .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > 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; > + } Not sure if some automated script checkers or additional warning flags will complain of missing return statement. Series is - Reviewed-by: Lijo Lazar <lijo.lazar@xxxxxxx> Thanks, Lijo > +} > + > 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();