struct amdgpu_device *adev = (struct amdgpu_device *)handle;
        struct ci_power_info *pi = ci_get_pi(adev);
 
-       if (adev->pm.dpm.forced_level & (AMD_DPM_FORCED_LEVEL_AUTO |
-                               AMD_DPM_FORCED_LEVEL_LOW |
-                               AMD_DPM_FORCED_LEVEL_HIGH))
+       if (adev->pm.dpm.forced_level != AMD_DPM_FORCED_LEVEL_MANUAL)
                return -EINVAL;
 
        switch (type) {
 
                return 0;
        }
        mutex_lock(&pp_handle->pp_lock);
-       hwmgr->hwmgr_func->force_clock_level(hwmgr, type, mask);
+       if (hwmgr->dpm_level == AMD_DPM_FORCED_LEVEL_MANUAL)
+               ret = hwmgr->hwmgr_func->force_clock_level(hwmgr, type, mask);
+       else
+               ret = -EINVAL;
        mutex_unlock(&pp_handle->pp_lock);
        return ret;
 }
 
 static int cz_force_clock_level(struct pp_hwmgr *hwmgr,
                enum pp_clock_type type, uint32_t mask)
 {
-       if (hwmgr->dpm_level != AMD_DPM_FORCED_LEVEL_MANUAL)
-               return -EINVAL;
-
        switch (type) {
        case PP_SCLK:
                smum_send_msg_to_smc_with_parameter(hwmgr,
 
 {
        struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
 
-       if (hwmgr->request_dpm_level & (AMD_DPM_FORCED_LEVEL_AUTO |
-                                       AMD_DPM_FORCED_LEVEL_LOW |
-                                       AMD_DPM_FORCED_LEVEL_HIGH))
-               return -EINVAL;
-
        switch (type) {
        case PP_SCLK:
                if (!data->sclk_dpm_key_disabled)
 
 {
        struct vega10_hwmgr *data = (struct vega10_hwmgr *)(hwmgr->backend);
 
-       if (hwmgr->request_dpm_level & (AMD_DPM_FORCED_LEVEL_AUTO |
-                               AMD_DPM_FORCED_LEVEL_LOW |
-                               AMD_DPM_FORCED_LEVEL_HIGH))
-               return -EINVAL;
-
        switch (type) {
        case PP_SCLK:
                data->smc_state_table.gfx_boot_level = mask ? (ffs(mask) - 1) : 0;