mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-06 13:55:22 +02:00
drm/amdgpu: handle default profile on on devices without fullscreen 3D
Some devices do not support fullscreen 3D.
v2: Make the check generic.
Fixes: ec1aab7816
("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>
(cherry picked from commit 1cdd67510e54e3832f14a885dbf5858584558650)
This commit is contained in:
parent
ba1959f711
commit
7c210ca5a2
|
@ -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)
|
static int smu_sw_init(void *handle)
|
||||||
{
|
{
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)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_COMPUTE] = 5;
|
||||||
smu->workload_prority[PP_SMC_POWER_PROFILE_CUSTOM] = 6;
|
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];
|
smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT];
|
||||||
else
|
else
|
||||||
smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D];
|
smu->workload_mask = 1 << smu->workload_prority[PP_SMC_POWER_PROFILE_FULLSCREEN3D];
|
||||||
|
|
Loading…
Reference in New Issue
Block a user