aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0750-drm-amd-dal-Set-correct-dentist-clock-value.patch
diff options
context:
space:
mode:
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.patch49
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
+