aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4788-drm-amd-display-Convert-10kHz-clks-from-PPLib-into-k.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4788-drm-amd-display-Convert-10kHz-clks-from-PPLib-into-k.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4788-drm-amd-display-Convert-10kHz-clks-from-PPLib-into-k.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4788-drm-amd-display-Convert-10kHz-clks-from-PPLib-into-k.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4788-drm-amd-display-Convert-10kHz-clks-from-PPLib-into-k.patch
new file mode 100644
index 00000000..b597cedc
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4788-drm-amd-display-Convert-10kHz-clks-from-PPLib-into-k.patch
@@ -0,0 +1,48 @@
+From e79cbfc78a628087d4840631e9f0778ae6798d25 Mon Sep 17 00:00:00 2001
+From: Mikita Lipski <mikita.lipski@amd.com>
+Date: Thu, 31 May 2018 14:44:18 -0400
+Subject: [PATCH 4788/5725] drm/amd/display: Convert 10kHz clks from PPLib into
+ kHz
+
+The driver is expecting clock frequency in kHz, while SMU returns
+the values in 10kHz, which causes the bandwidth validation to fail
+
+Signed-off-by: Mikita Lipski <mikita.lipski@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c
+index 08a0328..4f86f6f 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c
+@@ -267,8 +267,9 @@ static void pp_to_dc_clock_levels_with_voltage(
+ DC_DECODE_PP_CLOCK_TYPE(dc_clk_type));
+
+ for (i = 0; i < clk_level_info->num_levels; i++) {
+- DRM_INFO("DM_PPLIB:\t %d\n", pp_clks->data[i].clocks_in_khz);
+- clk_level_info->data[i].clocks_in_khz = pp_clks->data[i].clocks_in_khz;
++ DRM_INFO("DM_PPLIB:\t %d in 10kHz\n", pp_clks->data[i].clocks_in_khz);
++ /* translate 10kHz to kHz */
++ clk_level_info->data[i].clocks_in_khz = pp_clks->data[i].clocks_in_khz * 10;
+ clk_level_info->data[i].voltage_in_mv = pp_clks->data[i].voltage_in_mv;
+ }
+ }
+@@ -430,8 +431,9 @@ bool dm_pp_get_static_clocks(
+ return false;
+
+ static_clk_info->max_clocks_state = pp_clk_info.max_clocks_state;
+- static_clk_info->max_mclk_khz = pp_clk_info.max_memory_clock;
+- static_clk_info->max_sclk_khz = pp_clk_info.max_engine_clock;
++ /* translate 10kHz to kHz */
++ static_clk_info->max_mclk_khz = pp_clk_info.max_memory_clock * 10;
++ static_clk_info->max_sclk_khz = pp_clk_info.max_engine_clock * 10;
+
+ return true;
+ }
+--
+2.7.4
+