|
@@ -120,6 +120,7 @@ static void vega20_set_default_registry_data(struct pp_hwmgr *hwmgr)
|
|
|
data->registry_data.disable_auto_wattman = 1;
|
|
|
data->registry_data.auto_wattman_debug = 0;
|
|
|
data->registry_data.auto_wattman_sample_period = 100;
|
|
|
+ data->registry_data.fclk_gfxclk_ratio = 0x3F6CCCCD;
|
|
|
data->registry_data.auto_wattman_threshold = 50;
|
|
|
data->registry_data.gfxoff_controlled_by_driver = 1;
|
|
|
data->gfxoff_allowed = false;
|
|
@@ -829,6 +830,16 @@ static int vega20_enable_all_smu_features(struct pp_hwmgr *hwmgr)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int vega20_send_clock_ratio(struct pp_hwmgr *hwmgr)
|
|
|
+{
|
|
|
+ struct vega20_hwmgr *data =
|
|
|
+ (struct vega20_hwmgr *)(hwmgr->backend);
|
|
|
+
|
|
|
+ return smum_send_msg_to_smc_with_parameter(hwmgr,
|
|
|
+ PPSMC_MSG_SetFclkGfxClkRatio,
|
|
|
+ data->registry_data.fclk_gfxclk_ratio);
|
|
|
+}
|
|
|
+
|
|
|
static int vega20_disable_all_smu_features(struct pp_hwmgr *hwmgr)
|
|
|
{
|
|
|
struct vega20_hwmgr *data =
|
|
@@ -1532,6 +1543,11 @@ static int vega20_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
|
|
|
"[EnableDPMTasks] Failed to enable all smu features!",
|
|
|
return result);
|
|
|
|
|
|
+ result = vega20_send_clock_ratio(hwmgr);
|
|
|
+ PP_ASSERT_WITH_CODE(!result,
|
|
|
+ "[EnableDPMTasks] Failed to send clock ratio!",
|
|
|
+ return result);
|
|
|
+
|
|
|
/* Initialize UVD/VCE powergating state */
|
|
|
vega20_init_powergate_state(hwmgr);
|
|
|
|