aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1041-drm-amd-powerplay-get-raven-current-sclk-and-mclk.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1041-drm-amd-powerplay-get-raven-current-sclk-and-mclk.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1041-drm-amd-powerplay-get-raven-current-sclk-and-mclk.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1041-drm-amd-powerplay-get-raven-current-sclk-and-mclk.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1041-drm-amd-powerplay-get-raven-current-sclk-and-mclk.patch
new file mode 100644
index 00000000..cfc44f83
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1041-drm-amd-powerplay-get-raven-current-sclk-and-mclk.patch
@@ -0,0 +1,60 @@
+From 45421d0f38e5fd27e46170e544749907d5b3c6af Mon Sep 17 00:00:00 2001
+From: Evan Quan <evan.quan@amd.com>
+Date: Tue, 26 Sep 2017 11:49:28 +0800
+Subject: [PATCH 1041/4131] drm/amd/powerplay: get raven current sclk and mclk
+
+Change-Id: I17120a53bc3cebd8cc7eb9f3d83124905632a409
+Signed-off-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 28 ++++++++++++++++++++++++--
+ 1 file changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
+index 9059b68..9ece560 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
+@@ -930,13 +930,37 @@ static int rv_thermal_get_temperature(struct pp_hwmgr *hwmgr)
+ static int rv_read_sensor(struct pp_hwmgr *hwmgr, int idx,
+ void *value, int *size)
+ {
++ uint32_t sclk, mclk;
++ int ret = 0;
++
+ switch (idx) {
++ case AMDGPU_PP_SENSOR_GFX_SCLK:
++ ret = smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_GetGfxclkFrequency);
++ if (!ret) {
++ rv_read_arg_from_smc(hwmgr->smumgr, &sclk);
++ /* in units of 10KHZ */
++ *((uint32_t *)value) = sclk * 100;
++ *size = 4;
++ }
++ break;
++ case AMDGPU_PP_SENSOR_GFX_MCLK:
++ ret = smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_GetFclkFrequency);
++ if (!ret) {
++ rv_read_arg_from_smc(hwmgr->smumgr, &mclk);
++ /* in units of 10KHZ */
++ *((uint32_t *)value) = mclk * 100;
++ *size = 4;
++ }
++ break;
+ case AMDGPU_PP_SENSOR_GPU_TEMP:
+ *((uint32_t *)value) = rv_thermal_get_temperature(hwmgr);
+- return 0;
++ break;
+ default:
+- return -EINVAL;
++ ret = -EINVAL;
++ break;
+ }
++
++ return ret;
+ }
+
+ static const struct pp_hwmgr_func rv_hwmgr_funcs = {
+--
+2.7.4
+