Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/pm: enable DCS

Enable DCS

V1: Enable Async DCS.
V2: Add the ppfeaturemask bit to enable from the modprobe parameter.
V3:
1. add the flag to skip APU support.
2. remove the hunk for workload selection since
it doesn't impact the function.

Signed-off-by: Kenneth Feng <kenneth.feng@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Kenneth Feng and committed by
Alex Deucher
680602d6 e83db774

+12 -2
+6 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
··· 132 132 uint amdgpu_sdma_phase_quantum = 32; 133 133 char *amdgpu_disable_cu = NULL; 134 134 char *amdgpu_virtual_display = NULL; 135 - /* OverDrive(bit 14) disabled by default*/ 136 - uint amdgpu_pp_feature_mask = 0xffffbfff; 135 + 136 + /* 137 + * OverDrive(bit 14) disabled by default 138 + * GFX DCS(bit 19) disabled by default 139 + */ 140 + uint amdgpu_pp_feature_mask = 0xfff7bfff; 137 141 uint amdgpu_force_long_training; 138 142 int amdgpu_job_hang_limit; 139 143 int amdgpu_lbpw = -1;
+1
drivers/gpu/drm/amd/include/amd_shared.h
··· 213 213 PP_ACG_MASK = 0x10000, 214 214 PP_STUTTER_MODE = 0x20000, 215 215 PP_AVFS_MASK = 0x40000, 216 + PP_GFX_DCS_MASK = 0x80000, 216 217 }; 217 218 218 219 enum DC_FEATURE_MASK {
+5
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
··· 261 261 *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DPM_GFX_GPO_BIT); 262 262 } 263 263 264 + if ((adev->pm.pp_feature & PP_GFX_DCS_MASK) && 265 + (adev->asic_type > CHIP_SIENNA_CICHLID) && 266 + !(adev->flags & AMD_IS_APU)) 267 + *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_GFX_DCS_BIT); 268 + 264 269 if (adev->pm.pp_feature & PP_MCLK_DPM_MASK) 265 270 *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_DPM_UCLK_BIT) 266 271 | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)