From 07eb3e80e61e0fbe10f8df3158895ab785ec42aa Mon Sep 17 00:00:00 2001 From: Chris Park Date: Thu, 28 Jan 2016 18:49:24 -0500 Subject: [PATCH 0750/1110] drm/amd/dal: Set correct dentist clock value Dentist VCO Frequency Clock APU uses Integrated Info Table. Discrete uses Frimware Info Table. Signed-off-by: Chris Park Acked-by: Harry Wentland --- drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c b/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c index 9252b5c..7ff8a74 100644 --- a/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c +++ b/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c @@ -647,17 +647,24 @@ static bool display_clock_integrated_info_construct( struct adapter_service *as) { struct integrated_info info; + struct firmware_info fw_info; uint32_t i; struct display_clock *base = &disp_clk->disp_clk_base; bool res; dc_service_memset(&info, 0, sizeof(struct integrated_info)); + dc_service_memset(&fw_info, 0, sizeof(struct firmware_info)); res = dal_adapter_service_get_integrated_info(as, &info); disp_clk->dentist_vco_freq_khz = info.dentist_vco_freq; - if (disp_clk->dentist_vco_freq_khz == 0) - disp_clk->dentist_vco_freq_khz = 3600000; + if (disp_clk->dentist_vco_freq_khz == 0) { + dal_adapter_service_get_firmware_info(as, &fw_info); + disp_clk->dentist_vco_freq_khz = + fw_info.smu_gpu_pll_output_freq; + if (disp_clk->dentist_vco_freq_khz == 0) + disp_clk->dentist_vco_freq_khz = 3600000; + } base->min_display_clk_threshold_khz = disp_clk->dentist_vco_freq_khz / 64; -- 2.7.4