diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1820-drm-amd-powerplay-expose-Vega12-current-power.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1820-drm-amd-powerplay-expose-Vega12-current-power.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1820-drm-amd-powerplay-expose-Vega12-current-power.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1820-drm-amd-powerplay-expose-Vega12-current-power.patch new file mode 100644 index 00000000..179105eb --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1820-drm-amd-powerplay-expose-Vega12-current-power.patch @@ -0,0 +1,58 @@ +From 773f59811abe9993d97d51d64df92c0227898e5f Mon Sep 17 00:00:00 2001 +From: Evan Quan <evan.quan@amd.com> +Date: Thu, 18 Apr 2019 15:33:06 +0800 +Subject: [PATCH 1820/2940] drm/amd/powerplay: expose Vega12 current power + +Provide the real sensor information for current power. + +Change-Id: Ifad48d08a5aa4232549316fbe61bfd5f10bb1c62 +Signed-off-by: Evan Quan <evan.quan@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../drm/amd/powerplay/hwmgr/vega12_hwmgr.c | 21 +++++++++---------- + 1 file changed, 10 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c +index 8d2865b72c7b..1997df39b645 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c +@@ -1260,19 +1260,16 @@ static int vega12_get_metrics_table(struct pp_hwmgr *hwmgr, SmuMetrics_t *metric + + static int vega12_get_gpu_power(struct pp_hwmgr *hwmgr, uint32_t *query) + { +-#if 0 +- uint32_t value; ++ SmuMetrics_t metrics_table; ++ int ret = 0; + +- PP_ASSERT_WITH_CODE(!smum_send_msg_to_smc(hwmgr, +- PPSMC_MSG_GetCurrPkgPwr), +- "Failed to get current package power!", +- return -EINVAL); ++ ret = vega12_get_metrics_table(hwmgr, &metrics_table); ++ if (ret) ++ return ret; + +- value = smum_get_argument(hwmgr); +- /* power value is an integer */ +- *query = value << 8; +-#endif +- return 0; ++ *query = metrics_table.CurrSocketPower << 8; ++ ++ return ret; + } + + static int vega12_get_current_gfx_clk_freq(struct pp_hwmgr *hwmgr, uint32_t *gfx_freq) +@@ -1389,6 +1386,8 @@ static int vega12_read_sensor(struct pp_hwmgr *hwmgr, int idx, + break; + case AMDGPU_PP_SENSOR_GPU_POWER: + ret = vega12_get_gpu_power(hwmgr, (uint32_t *)value); ++ if (!ret) ++ *size = 4; + break; + case AMDGPU_PP_SENSOR_ENABLED_SMC_FEATURES_MASK: + ret = vega12_get_enabled_smc_features(hwmgr, (uint64_t *)value); +-- +2.17.1 + |