diff options
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.patch | 106 |
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 + |