diff options
author | Evan Quan <evan.quan@amd.com> | 2022-04-12 11:20:08 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2022-05-05 16:51:01 -0400 |
commit | 9f3f1b03faffc978d4884134369b691f7e41682a (patch) | |
tree | 8ef891635dfb6a2cd83c3bc5ff0f891ce24ac256 | |
parent | 915b5ce774b5d59f90f970f97a7295f12cf898bc (diff) | |
download | linux-stable-9f3f1b03faffc978d4884134369b691f7e41682a.tar.gz linux-stable-9f3f1b03faffc978d4884134369b691f7e41682a.tar.bz2 linux-stable-9f3f1b03faffc978d4884134369b691f7e41682a.zip |
drm/amd/pm: support more DPM features for SMU 13.0.0
To pair with 78.30.0 PMFW, support more dpm features:
- UCLK DPM (disabled temporarily)
- VMEMP Scaling (disabled temporarily)
- VDDIO Scaling (disabled temporarily)
- GFXCLK DS
- SOCCLK DS
- MPCLK Deep Sleep on VDD_SOC
- MPCLK Deep Sleep on VDD_BACO
- Memory Temperature Reading (disabled temporarily)
Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c index 74d7fa3dc00d..b43884cf939c 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c @@ -225,6 +225,22 @@ smu_v13_0_0_get_allowed_feature_mask(struct smu_context *smu, *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DF_CSTATE_BIT); +#if 0 + if (adev->pm.pp_feature & PP_MCLK_DPM_MASK) { + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DPM_UCLK_BIT); + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_VMEMP_SCALING_BIT); + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_VDDIO_MEM_SCALING_BIT); + } + + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_MEM_TEMP_READ_BIT); +#endif + + if (adev->pm.pp_feature & PP_SCLK_DEEP_SLEEP_MASK) + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DS_GFXCLK_BIT); + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DS_SOCCLK_BIT); + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_SOC_MPCLK_DS_BIT); + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_BACO_MPCLK_DS_BIT); + return 0; } |