drm/amd/pm: Adjust returns when power_profile_mode is not supported
authorMario Limonciello <mario.limonciello@amd.com>
Mon, 1 Nov 2021 21:17:27 +0000 (16:17 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 3 Nov 2021 16:22:07 +0000 (12:22 -0400)
This better aligns that the caller can make a mistake with the buffer
and -EINVAL should be returned, but if the hardware doesn't support
the feature it should be -EOPNOTSUPP.

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

index 9780076..79e5651 100644 (file)
@@ -877,7 +877,9 @@ static int pp_get_power_profile_mode(void *handle, char *buf)
        struct pp_hwmgr *hwmgr = handle;
        int ret;
 
-       if (!hwmgr || !hwmgr->pm_en || !buf)
+       if (!hwmgr || !hwmgr->pm_en)
+               return -EOPNOTSUPP;
+       if (!buf)
                return -EINVAL;
 
        if (hwmgr->hwmgr_func->get_power_profile_mode == NULL) {
@@ -894,7 +896,7 @@ static int pp_get_power_profile_mode(void *handle, char *buf)
 static int pp_set_power_profile_mode(void *handle, long *input, uint32_t size)
 {
        struct pp_hwmgr *hwmgr = handle;
-       int ret = -EINVAL;
+       int ret = -EOPNOTSUPP;
 
        if (!hwmgr || !hwmgr->pm_en)
                return ret;
@@ -906,7 +908,7 @@ static int pp_set_power_profile_mode(void *handle, long *input, uint32_t size)
 
        if (hwmgr->dpm_level != AMD_DPM_FORCED_LEVEL_MANUAL) {
                pr_debug("power profile setting is for manual dpm mode only.\n");
-               return ret;
+               return -EINVAL;
        }
 
        mutex_lock(&hwmgr->smu_lock);