drm/amd/pm: add support for WINDOW3D profile mode on SMU13.0.0
authorEvan Quan <evan.quan@amd.com>
Tue, 13 Dec 2022 06:28:08 +0000 (14:28 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 20 Dec 2022 17:47:14 +0000 (12:47 -0500)
Add the support for WINDOW3D profile mode as for other profile modes.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c

index 713fb6a..09a0b41 100644 (file)
@@ -240,6 +240,7 @@ static struct cmn2asic_mapping smu_v13_0_0_workload_map[PP_SMC_POWER_PROFILE_COU
        WORKLOAD_MAP(PP_SMC_POWER_PROFILE_VR,                   WORKLOAD_PPLIB_VR_BIT),
        WORKLOAD_MAP(PP_SMC_POWER_PROFILE_COMPUTE,              WORKLOAD_PPLIB_COMPUTE_BIT),
        WORKLOAD_MAP(PP_SMC_POWER_PROFILE_CUSTOM,               WORKLOAD_PPLIB_CUSTOM_BIT),
+       WORKLOAD_MAP(PP_SMC_POWER_PROFILE_WINDOW3D,             WORKLOAD_PPLIB_WINDOW_3D_BIT),
 };
 
 static const uint8_t smu_v13_0_0_throttler_map[] = {
@@ -1544,7 +1545,7 @@ static int smu_v13_0_0_get_power_profile_mode(struct smu_context *smu,
                        title[0], title[1], title[2], title[3], title[4], title[5],
                        title[6], title[7], title[8], title[9]);
 
-       for (i = 0; i <= PP_SMC_POWER_PROFILE_CUSTOM; i++) {
+       for (i = 0; i < PP_SMC_POWER_PROFILE_COUNT; i++) {
                /* conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT */
                workload_type = smu_cmn_to_asic_specific_index(smu,
                                                               CMN2ASIC_MAPPING_WORKLOAD,
@@ -1606,7 +1607,7 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
 
        smu->power_profile_mode = input[size];
 
-       if (smu->power_profile_mode > PP_SMC_POWER_PROFILE_CUSTOM) {
+       if (smu->power_profile_mode >= PP_SMC_POWER_PROFILE_COUNT) {
                dev_err(smu->adev->dev, "Invalid power profile mode %d\n", smu->power_profile_mode);
                return -EINVAL;
        }