]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/pm: Make static table support conditional
authorLijo Lazar <lijo.lazar@amd.com>
Mon, 4 Aug 2025 05:04:06 +0000 (10:34 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 4 Aug 2025 18:44:55 +0000 (14:44 -0400)
Add PMFW version check for static table support on SMU v13.0.6 VFs.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Yang Wang <kevinyang.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c

index 148941d7ba51ef12d77b418b17cec96409e2d9c4..a0ce108aab4450048915513cac6fec5be553930c 100644 (file)
@@ -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)) ||