drm/amd/pp: Read vbios vddc limit before use them
authorRex Zhu <rex.zhu@amd.com>
Thu, 19 Jul 2018 08:21:42 +0000 (16:21 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 20 Jul 2018 19:23:45 +0000 (14:23 -0500)
Use the vddc limit before read them from vbios

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c

index 1a0dccb..755f235 100644 (file)
@@ -289,7 +289,15 @@ static int vega10_odn_initial_default_setting(struct pp_hwmgr *hwmgr)
        struct phm_ppt_v1_voltage_lookup_table *vddc_lookup_table;
        struct phm_ppt_v1_clock_voltage_dependency_table *dep_table[3];
        struct phm_ppt_v1_clock_voltage_dependency_table *od_table[3];
+       struct pp_atomfwctrl_avfs_parameters avfs_params = {0};
        uint32_t i;
+       int result;
+
+       result = pp_atomfwctrl_get_avfs_information(hwmgr, &avfs_params);
+       if (!result) {
+               data->odn_dpm_table.max_vddc = avfs_params.ulMaxVddc;
+               data->odn_dpm_table.min_vddc = avfs_params.ulMinVddc;
+       }
 
        od_lookup_table = &odn_table->vddc_lookup_table;
        vddc_lookup_table = table_info->vddc_lookup_table;
@@ -2072,9 +2080,6 @@ static int vega10_populate_avfs_parameters(struct pp_hwmgr *hwmgr)
        if (data->smu_features[GNLD_AVFS].supported) {
                result = pp_atomfwctrl_get_avfs_information(hwmgr, &avfs_params);
                if (!result) {
-                       data->odn_dpm_table.max_vddc = avfs_params.ulMaxVddc;
-                       data->odn_dpm_table.min_vddc = avfs_params.ulMinVddc;
-
                        pp_table->MinVoltageVid = (uint8_t)
                                        convert_to_vid((uint16_t)(avfs_params.ulMinVddc));
                        pp_table->MaxVoltageVid = (uint8_t)