Skip to content

Commit 51e7b64

Browse files
charliu-AMDENGalexdeucher
authored andcommitted
drm/amd/display: get dprefclk ss info from integration info table
[why & how] we have two SSC_En: we get ssc_info from dce_info for MPLL_SSC_EN. we used to call VBIOS cmdtbl's smu_info's SS persentage for DPRECLK SS info, is used for DP AUDIO and VBIOS' smu_info table was from systemIntegrationInfoTable. since dcn35 VBIOS removed smu_info, driver need to use integrationInfotable directly. Reviewed-by: Nicholas Kazlauskas <[email protected]> Acked-by: Wayne Lin <[email protected]> Signed-off-by: Charlene Liu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 9898245 commit 51e7b64

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1014,13 +1014,20 @@ static enum bp_result get_ss_info_v4_5(
10141014
DC_LOG_BIOS("AS_SIGNAL_TYPE_HDMI ss_percentage: %d\n", ss_info->spread_spectrum_percentage);
10151015
break;
10161016
case AS_SIGNAL_TYPE_DISPLAY_PORT:
1017-
ss_info->spread_spectrum_percentage =
1017+
if (bp->base.integrated_info) {
1018+
DC_LOG_BIOS("gpuclk_ss_percentage (unit of 0.001 percent): %d\n", bp->base.integrated_info->gpuclk_ss_percentage);
1019+
ss_info->spread_spectrum_percentage =
1020+
bp->base.integrated_info->gpuclk_ss_percentage;
1021+
ss_info->type.CENTER_MODE =
1022+
bp->base.integrated_info->gpuclk_ss_type;
1023+
} else {
1024+
ss_info->spread_spectrum_percentage =
10181025
disp_cntl_tbl->dp_ss_percentage;
1019-
ss_info->spread_spectrum_range =
1026+
ss_info->spread_spectrum_range =
10201027
disp_cntl_tbl->dp_ss_rate_10hz * 10;
1021-
if (disp_cntl_tbl->dp_ss_mode & ATOM_SS_CENTRE_SPREAD_MODE)
1022-
ss_info->type.CENTER_MODE = true;
1023-
1028+
if (disp_cntl_tbl->dp_ss_mode & ATOM_SS_CENTRE_SPREAD_MODE)
1029+
ss_info->type.CENTER_MODE = true;
1030+
}
10241031
DC_LOG_BIOS("AS_SIGNAL_TYPE_DISPLAY_PORT ss_percentage: %d\n", ss_info->spread_spectrum_percentage);
10251032
break;
10261033
case AS_SIGNAL_TYPE_GPU_PLL:
@@ -2814,6 +2821,8 @@ static enum bp_result get_integrated_info_v2_2(
28142821
info->ma_channel_number = info_v2_2->umachannelnumber;
28152822
info->dp_ss_control =
28162823
le16_to_cpu(info_v2_2->reserved1);
2824+
info->gpuclk_ss_percentage = info_v2_2->gpuclk_ss_percentage;
2825+
info->gpuclk_ss_type = info_v2_2->gpuclk_ss_type;
28172826

28182827
for (i = 0; i < NUMBER_OF_UCHAR_FOR_GUID; ++i) {
28192828
info->ext_disp_conn_info.gu_id[i] =

drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,8 @@ struct integrated_info {
417417
/* V2.1 */
418418
struct edp_info edp1_info;
419419
struct edp_info edp2_info;
420+
uint32_t gpuclk_ss_percentage;
421+
uint32_t gpuclk_ss_type;
420422
};
421423

422424
/*

0 commit comments

Comments
 (0)