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

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: handle default profile on on devices without fullscreen 3D

Some devices do not support fullscreen 3D.

v2: Make the check generic.

Fixes: 336568de918e ("drm/amdgpu/swsmu: default to fullscreen 3D profile for dGPUs")
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: Kenneth Feng <kenneth.feng@amd.com>
Cc: Lijo Lazar <lijo.lazar@amd.com>

+10 -1
+10 -1
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
··· 1236 1236 } 1237 1237 } 1238 1238 1239 + static bool smu_is_workload_profile_available(struct smu_context *smu, 1240 + u32 profile) 1241 + { 1242 + if (profile >= PP_SMC_POWER_PROFILE_COUNT) 1243 + return false; 1244 + return smu->workload_map && smu->workload_map[profile].valid_mapping; 1245 + } 1246 + 1239 1247 static int smu_sw_init(struct amdgpu_ip_block *ip_block) 1240 1248 { 1241 1249 struct amdgpu_device *adev = ip_block->adev; ··· 1275 1267 smu->workload_prority[PP_SMC_POWER_PROFILE_COMPUTE] = 5; 1276 1268 smu->workload_prority[PP_SMC_POWER_PROFILE_CUSTOM] = 6; 1277 1269 1278 - if (smu->is_apu) 1270 + if (smu->is_apu || 1271 + !smu_is_workload_profile_available(smu, PP_SMC_POWER_PROFILE_FULLSCREEN3D)) 1279 1272 smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT]; 1280 1273 else 1281 1274 smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D];