]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd: Remove second call to set_power_limit()
authorMario Limonciello <mario.limonciello@amd.com>
Thu, 9 Oct 2025 20:59:05 +0000 (15:59 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 13 Oct 2025 18:14:35 +0000 (14:14 -0400)
The min/max limits only make sense for default PPT. Restructure
smu_set_power_limit() to only use them in that case.

Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c

index 1c5f37cd5b7535fcf27281a9c57dbef3bbd054a8..a55f94b91bc92eb52ee762254151021d497e7168 100644 (file)
@@ -2966,20 +2966,17 @@ static int smu_set_power_limit(void *handle, uint32_t limit_type, uint32_t limit
        if (!smu->pm_enabled || !smu->adev->pm.dpm_enabled)
                return -EOPNOTSUPP;
 
-       if (limit_type != SMU_DEFAULT_PPT_LIMIT)
-               if (smu->ppt_funcs->set_power_limit)
-                       return smu->ppt_funcs->set_power_limit(smu, limit_type, limit);
-
-       if ((limit > smu->max_power_limit) || (limit < smu->min_power_limit)) {
-               dev_err(smu->adev->dev,
-                       "New power limit (%d) is out of range [%d,%d]\n",
-                       limit, smu->min_power_limit, smu->max_power_limit);
-               return -EINVAL;
+       if (limit_type == SMU_DEFAULT_PPT_LIMIT) {
+               if (!limit)
+                       limit = smu->current_power_limit;
+               if ((limit > smu->max_power_limit) || (limit < smu->min_power_limit)) {
+                       dev_err(smu->adev->dev,
+                               "New power limit (%d) is out of range [%d,%d]\n",
+                               limit, smu->min_power_limit, smu->max_power_limit);
+                       return -EINVAL;
+               }
        }
 
-       if (!limit)
-               limit = smu->current_power_limit;
-
        if (smu->ppt_funcs->set_power_limit) {
                ret = smu->ppt_funcs->set_power_limit(smu, limit_type, limit);
                if (!ret && !(smu->user_dpm_profile.flags & SMU_DPM_USER_PROFILE_RESTORE))