|
@@ -2298,6 +2298,7 @@ static int vega10_init_smc_table(struct pp_hwmgr *hwmgr)
|
|
|
(struct phm_ppt_v2_information *)(hwmgr->pptable);
|
|
|
PPTable_t *pp_table = &(data->smc_state_table.pp_table);
|
|
|
struct pp_atomfwctrl_voltage_table voltage_table;
|
|
|
+ struct pp_atomfwctrl_bios_boot_up_values boot_up_values;
|
|
|
|
|
|
result = vega10_setup_default_dpm_tables(hwmgr);
|
|
|
PP_ASSERT_WITH_CODE(!result,
|
|
@@ -2369,6 +2370,24 @@ static int vega10_init_smc_table(struct pp_hwmgr *hwmgr)
|
|
|
return result);
|
|
|
}
|
|
|
|
|
|
+ result = pp_atomfwctrl_get_vbios_bootup_values(hwmgr, &boot_up_values);
|
|
|
+ if (!result) {
|
|
|
+ data->vbios_boot_state.vddc = boot_up_values.usVddc;
|
|
|
+ data->vbios_boot_state.vddci = boot_up_values.usVddci;
|
|
|
+ data->vbios_boot_state.mvddc = boot_up_values.usMvddc;
|
|
|
+ data->vbios_boot_state.gfx_clock = boot_up_values.ulGfxClk;
|
|
|
+ data->vbios_boot_state.mem_clock = boot_up_values.ulUClk;
|
|
|
+ data->vbios_boot_state.soc_clock = boot_up_values.ulSocClk;
|
|
|
+ if (0 != boot_up_values.usVddc) {
|
|
|
+ smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
|
|
|
+ PPSMC_MSG_SetFloorSocVoltage,
|
|
|
+ (boot_up_values.usVddc * 4));
|
|
|
+ data->vbios_boot_state.bsoc_vddc_lock = true;
|
|
|
+ } else {
|
|
|
+ data->vbios_boot_state.bsoc_vddc_lock = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
result = vega10_populate_avfs_parameters(hwmgr);
|
|
|
PP_ASSERT_WITH_CODE(!result,
|
|
|
"Failed to initialize AVFS Parameters!",
|
|
@@ -2590,6 +2609,12 @@ static int vega10_start_dpm(struct pp_hwmgr *hwmgr, uint32_t bitmap)
|
|
|
data->smu_features[GNLD_LED_DISPLAY].enabled = true;
|
|
|
}
|
|
|
|
|
|
+ if (data->vbios_boot_state.bsoc_vddc_lock) {
|
|
|
+ smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
|
|
|
+ PPSMC_MSG_SetFloorSocVoltage, 0);
|
|
|
+ data->vbios_boot_state.bsoc_vddc_lock = false;
|
|
|
+ }
|
|
|
+
|
|
|
if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
|
|
|
PHM_PlatformCaps_Falcon_QuickTransition)) {
|
|
|
if (data->smu_features[GNLD_ACDC].supported) {
|