aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0656-drm-amd-powerplay-commonize-the-API-for-retrieving-c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0656-drm-amd-powerplay-commonize-the-API-for-retrieving-c.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0656-drm-amd-powerplay-commonize-the-API-for-retrieving-c.patch106
1 files changed, 106 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0656-drm-amd-powerplay-commonize-the-API-for-retrieving-c.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0656-drm-amd-powerplay-commonize-the-API-for-retrieving-c.patch
new file mode 100644
index 00000000..9ecb4c9d
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0656-drm-amd-powerplay-commonize-the-API-for-retrieving-c.patch
@@ -0,0 +1,106 @@
+From d6c8d460ccfa8ecee47309e85165a28a830801a5 Mon Sep 17 00:00:00 2001
+From: Evan Quan <evan.quan@amd.com>
+Date: Wed, 24 Oct 2018 12:57:56 +0800
+Subject: [PATCH 0656/2940] drm/amd/powerplay: commonize the API for retrieving
+ current clocks
+
+So that it can be shared between all clocks.
+
+Signed-off-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Feifei Xu<Feifei.Xu@amd.com>
+Reviewed-by: Rex Zhu <Rex.Zhu@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../drm/amd/powerplay/hwmgr/vega20_hwmgr.c | 44 +++++++------------
+ 1 file changed, 15 insertions(+), 29 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
+index 8a1ee9ce7386..57143d51e3ee 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
+@@ -1875,38 +1875,20 @@ static int vega20_get_gpu_power(struct pp_hwmgr *hwmgr,
+ return ret;
+ }
+
+-static int vega20_get_current_gfx_clk_freq(struct pp_hwmgr *hwmgr, uint32_t *gfx_freq)
++static int vega20_get_current_clk_freq(struct pp_hwmgr *hwmgr,
++ PPCLK_e clk_id, uint32_t *clk_freq)
+ {
+- uint32_t gfx_clk = 0;
+ int ret = 0;
+
+- *gfx_freq = 0;
++ *clk_freq = 0;
+
+ PP_ASSERT_WITH_CODE((ret = smum_send_msg_to_smc_with_parameter(hwmgr,
+- PPSMC_MSG_GetDpmClockFreq, (PPCLK_GFXCLK << 16))) == 0,
+- "[GetCurrentGfxClkFreq] Attempt to get Current GFXCLK Frequency Failed!",
++ PPSMC_MSG_GetDpmClockFreq, (clk_id << 16))) == 0,
++ "[GetCurrentClkFreq] Attempt to get Current Frequency Failed!",
+ return ret);
+- gfx_clk = smum_get_argument(hwmgr);
++ *clk_freq = smum_get_argument(hwmgr);
+
+- *gfx_freq = gfx_clk * 100;
+-
+- return 0;
+-}
+-
+-static int vega20_get_current_mclk_freq(struct pp_hwmgr *hwmgr, uint32_t *mclk_freq)
+-{
+- uint32_t mem_clk = 0;
+- int ret = 0;
+-
+- *mclk_freq = 0;
+-
+- PP_ASSERT_WITH_CODE((ret = smum_send_msg_to_smc_with_parameter(hwmgr,
+- PPSMC_MSG_GetDpmClockFreq, (PPCLK_UCLK << 16))) == 0,
+- "[GetCurrentMClkFreq] Attempt to get Current MCLK Frequency Failed!",
+- return ret);
+- mem_clk = smum_get_argument(hwmgr);
+-
+- *mclk_freq = mem_clk * 100;
++ *clk_freq = *clk_freq * 100;
+
+ return 0;
+ }
+@@ -1937,12 +1919,16 @@ static int vega20_read_sensor(struct pp_hwmgr *hwmgr, int idx,
+
+ switch (idx) {
+ case AMDGPU_PP_SENSOR_GFX_SCLK:
+- ret = vega20_get_current_gfx_clk_freq(hwmgr, (uint32_t *)value);
++ ret = vega20_get_current_clk_freq(hwmgr,
++ PPCLK_GFXCLK,
++ (uint32_t *)value);
+ if (!ret)
+ *size = 4;
+ break;
+ case AMDGPU_PP_SENSOR_GFX_MCLK:
+- ret = vega20_get_current_mclk_freq(hwmgr, (uint32_t *)value);
++ ret = vega20_get_current_clk_freq(hwmgr,
++ PPCLK_UCLK,
++ (uint32_t *)value);
+ if (!ret)
+ *size = 4;
+ break;
+@@ -2743,7 +2729,7 @@ static int vega20_print_clock_levels(struct pp_hwmgr *hwmgr,
+
+ switch (type) {
+ case PP_SCLK:
+- ret = vega20_get_current_gfx_clk_freq(hwmgr, &now);
++ ret = vega20_get_current_clk_freq(hwmgr, PPCLK_GFXCLK, &now);
+ PP_ASSERT_WITH_CODE(!ret,
+ "Attempt to get current gfx clk Failed!",
+ return ret);
+@@ -2760,7 +2746,7 @@ static int vega20_print_clock_levels(struct pp_hwmgr *hwmgr,
+ break;
+
+ case PP_MCLK:
+- ret = vega20_get_current_mclk_freq(hwmgr, &now);
++ ret = vega20_get_current_clk_freq(hwmgr, PPCLK_UCLK, &now);
+ PP_ASSERT_WITH_CODE(!ret,
+ "Attempt to get current mclk freq Failed!",
+ return ret);
+--
+2.17.1
+