Commit 7c210ca5 authored by Alex Deucher's avatar Alex Deucher
Browse files

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



Some devices do not support fullscreen 3D.

v2: Make the check generic.

Fixes: ec1aab78 ("drm/amdgpu/swsmu: default to fullscreen 3D profile for dGPUs")
Reviewed-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: Kenneth Feng <kenneth.feng@amd.com>
Cc: Lijo Lazar <lijo.lazar@amd.com>
(cherry picked from commit 1cdd6751)
parent ba1959f7
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -1234,6 +1234,14 @@ static void smu_init_xgmi_plpd_mode(struct smu_context *smu)
	}
}

static bool smu_is_workload_profile_available(struct smu_context *smu,
					      u32 profile)
{
	if (profile >= PP_SMC_POWER_PROFILE_COUNT)
		return false;
	return smu->workload_map && smu->workload_map[profile].valid_mapping;
}

static int smu_sw_init(void *handle)
{
	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
@@ -1265,7 +1273,8 @@ static int smu_sw_init(void *handle)
	smu->workload_prority[PP_SMC_POWER_PROFILE_COMPUTE] = 5;
	smu->workload_prority[PP_SMC_POWER_PROFILE_CUSTOM] = 6;

	if (smu->is_apu)
	if (smu->is_apu ||
	    !smu_is_workload_profile_available(smu, PP_SMC_POWER_PROFILE_FULLSCREEN3D))
		smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT];
	else
		smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D];