Add PMFW version check for static table support on SMU v13.0.6 VFs.

Signed-off-by: Lijo Lazar <lijo.la...@amd.com>
---
 .../drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c  | 28 ++++++++++++++-----
 1 file changed, 21 insertions(+), 7 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 ad014b50c300..21cef59dbcce 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
@@ -402,14 +402,28 @@ static void smu_v13_0_6_init_caps(struct smu_context *smu)
                if ((pgm == 7 && fw_ver >= 0x7550E00) ||
                    (pgm == 0 && fw_ver >= 0x00557E00))
                        smu_v13_0_6_cap_set(smu, SMU_CAP(HST_LIMIT_METRICS));
-               if ((pgm == 0 && fw_ver >= 0x00557F01) ||
-                   (pgm == 7 && fw_ver >= 0x7551000)) {
-                       smu_v13_0_6_cap_set(smu, SMU_CAP(STATIC_METRICS));
-                       smu_v13_0_6_cap_set(smu, SMU_CAP(BOARD_VOLTAGE));
+
+               if (amdgpu_sriov_vf(adev)) {
+                       if ((pgm == 0 && fw_ver >= 0x00558000) ||
+                           (pgm == 7 && fw_ver >= 0x7551000)) {
+                               smu_v13_0_6_cap_set(smu,
+                                                   SMU_CAP(STATIC_METRICS));
+                               smu_v13_0_6_cap_set(smu,
+                                                   SMU_CAP(BOARD_VOLTAGE));
+                               smu_v13_0_6_cap_set(smu, SMU_CAP(PLDM_VERSION));
+                       }
+               } else {
+                       if ((pgm == 0 && fw_ver >= 0x00557F01) ||
+                           (pgm == 7 && fw_ver >= 0x7551000)) {
+                               smu_v13_0_6_cap_set(smu,
+                                                   SMU_CAP(STATIC_METRICS));
+                               smu_v13_0_6_cap_set(smu,
+                                                   SMU_CAP(BOARD_VOLTAGE));
+                       }
+                       if ((pgm == 0 && fw_ver >= 0x00558000) ||
+                           (pgm == 7 && fw_ver >= 0x7551000))
+                               smu_v13_0_6_cap_set(smu, SMU_CAP(PLDM_VERSION));
                }
-               if ((pgm == 0 && fw_ver >= 0x00558000) ||
-                   (pgm == 7 && fw_ver >= 0x7551000))
-                       smu_v13_0_6_cap_set(smu, SMU_CAP(PLDM_VERSION));
        }
        if (((pgm == 7) && (fw_ver >= 0x7550700)) ||
            ((pgm == 0) && (fw_ver >= 0x00557900)) ||
-- 
2.49.0

Reply via email to