if (level == hwmgr->dpm_level)
                return 0;
 
-       if (hwmgr->hwmgr_func->force_dpm_level == NULL) {
-               pr_info("%s was not implemented.\n", __func__);
-               return 0;
-       }
-
        mutex_lock(&pp_handle->pp_lock);
        pp_dpm_en_umd_pstate(hwmgr, &level);
        hwmgr->request_dpm_level = level;
        hwmgr_handle_task(pp_handle, AMD_PP_TASK_READJUST_POWER_STATE, NULL, NULL);
-       ret = hwmgr->hwmgr_func->force_dpm_level(hwmgr, level);
-       if (!ret)
-               hwmgr->dpm_level = hwmgr->request_dpm_level;
-
        mutex_unlock(&pp_handle->pp_lock);
+
        return 0;
 }
 
 
        hwmgr->power_source = PP_PowerSource_AC;
        hwmgr->pp_table_version = PP_TABLE_V1;
        hwmgr->dpm_level = AMD_DPM_FORCED_LEVEL_AUTO;
+       hwmgr->request_dpm_level = AMD_DPM_FORCED_LEVEL_AUTO;
        hwmgr_init_default_caps(hwmgr);
        hwmgr_set_user_specify_caps(hwmgr);
        hwmgr->fan_ctrl_is_in_default_mode = true;
 
        }
 
        phm_notify_smc_display_config_after_ps_adjustment(hwmgr);
-       phm_force_dpm_levels(hwmgr, hwmgr->dpm_level);
+       if (!phm_force_dpm_levels(hwmgr, hwmgr->request_dpm_level))
+               hwmgr->dpm_level = hwmgr->request_dpm_level;
+
        phm_reset_power_profile_state(hwmgr);
+
        return 0;
 }