drm/amdgpu/pm: look up current_level for asics without pm callback
For asics without a callback, use the current level rather than 0xff. This can avoid an unnecesary forced level set on older asics when set by the user. Reviewed-by: Kevin Wang <kevinyang.wang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
3ce51649cd
commit
9fac5799c8
@ -310,7 +310,7 @@ static ssize_t amdgpu_set_power_dpm_force_performance_level(struct device *dev,
|
||||
struct amdgpu_device *adev = drm_to_adev(ddev);
|
||||
const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs;
|
||||
enum amd_dpm_forced_level level;
|
||||
enum amd_dpm_forced_level current_level = 0xff;
|
||||
enum amd_dpm_forced_level current_level;
|
||||
int ret = 0;
|
||||
|
||||
if (amdgpu_in_reset(adev))
|
||||
@ -350,6 +350,8 @@ static ssize_t amdgpu_set_power_dpm_force_performance_level(struct device *dev,
|
||||
|
||||
if (pp_funcs->get_performance_level)
|
||||
current_level = amdgpu_dpm_get_performance_level(adev);
|
||||
else
|
||||
current_level = adev->pm.dpm.forced_level;
|
||||
|
||||
if (current_level == level) {
|
||||
pm_runtime_mark_last_busy(ddev->dev);
|
||||
|
Loading…
x
Reference in New Issue
Block a user