diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3395-drm-amd-powerplay-add-arcturus_is_dpm_running-functi.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3395-drm-amd-powerplay-add-arcturus_is_dpm_running-functi.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3395-drm-amd-powerplay-add-arcturus_is_dpm_running-functi.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3395-drm-amd-powerplay-add-arcturus_is_dpm_running-functi.patch new file mode 100644 index 00000000..b38863e7 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3395-drm-amd-powerplay-add-arcturus_is_dpm_running-functi.patch @@ -0,0 +1,63 @@ +From 9d5aa46bb0bcf862436f5ea47900f028c9102f13 Mon Sep 17 00:00:00 2001 +From: Chengming Gui <Jack.Gui@amd.com> +Date: Mon, 12 Aug 2019 10:23:04 +0800 +Subject: [PATCH 3395/4256] drm/amd/powerplay: add arcturus_is_dpm_running + function for arcturus + +add arcturus_is_dpm_running function + +Signed-off-by: Chengming Gui <Jack.Gui@amd.com> +Reviewed-by: Kevin Wang <kevin1.wang@amd.com> +--- + drivers/gpu/drm/amd/powerplay/arcturus_ppt.c | 21 ++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c +index efce71f858af..fdf5b2c47cd0 100644 +--- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c ++++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c +@@ -51,6 +51,15 @@ + #define SMU_FEATURES_HIGH_MASK 0xFFFFFFFF00000000 + #define SMU_FEATURES_HIGH_SHIFT 32 + ++#define SMC_DPM_FEATURE ( \ ++ FEATURE_DPM_PREFETCHER_MASK | \ ++ FEATURE_DPM_GFXCLK_MASK | \ ++ FEATURE_DPM_UCLK_MASK | \ ++ FEATURE_DPM_SOCCLK_MASK | \ ++ FEATURE_DPM_MP0CLK_MASK | \ ++ FEATURE_DPM_FCLK_MASK | \ ++ FEATURE_DPM_XGMI_MASK) ++ + /* possible frequency drift (1Mhz) */ + #define EPSILON 1 + +@@ -1873,6 +1882,17 @@ static void arcturus_dump_pptable(struct smu_context *smu) + + } + ++static bool arcturus_is_dpm_running(struct smu_context *smu) ++{ ++ int ret = 0; ++ uint32_t feature_mask[2]; ++ unsigned long feature_enabled; ++ ret = smu_feature_get_enabled_mask(smu, feature_mask, 2); ++ feature_enabled = (unsigned long)((uint64_t)feature_mask[0] | ++ ((uint64_t)feature_mask[1] << 32)); ++ return !!(feature_enabled & SMC_DPM_FEATURE); ++} ++ + static const struct pptable_funcs arcturus_ppt_funcs = { + /* translate smu index into arcturus specific index */ + .get_smu_msg_index = arcturus_get_smu_msg_index, +@@ -1910,6 +1930,7 @@ static const struct pptable_funcs arcturus_ppt_funcs = { + /* debug (internal used) */ + .dump_pptable = arcturus_dump_pptable, + .get_power_limit = arcturus_get_power_limit, ++ .is_dpm_running = arcturus_is_dpm_running, + }; + + void arcturus_set_ppt_funcs(struct smu_context *smu) +-- +2.17.1 + |