aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3395-drm-amd-powerplay-add-arcturus_is_dpm_running-functi.patch
diff options
context:
space:
mode:
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.patch63
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
+