diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0750-drm-amd-dal-Set-correct-dentist-clock-value.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0750-drm-amd-dal-Set-correct-dentist-clock-value.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0750-drm-amd-dal-Set-correct-dentist-clock-value.patch b/common/recipes-kernel/linux/files/0750-drm-amd-dal-Set-correct-dentist-clock-value.patch new file mode 100644 index 00000000..166d2725 --- /dev/null +++ b/common/recipes-kernel/linux/files/0750-drm-amd-dal-Set-correct-dentist-clock-value.patch @@ -0,0 +1,49 @@ +From 07eb3e80e61e0fbe10f8df3158895ab785ec42aa Mon Sep 17 00:00:00 2001 +From: Chris Park <Chris.Park@amd.com> +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 <Chris.Park@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + 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 + |