https://bugs.freedesktop.org/show_bug.cgi?id=96487
--- Comment #6 from Alex Deucher alexdeucher@gmail.com --- The hardware automatically adjusts the clock speeds on demand based on GPU load when in auto mode. Trinity/richland chips do not support forcing to high.
From the driver code in trinity_dpm.c:
int trinity_dpm_force_performance_level(struct radeon_device *rdev, enum radeon_dpm_forced_level level) { struct trinity_power_info *pi = trinity_get_pi(rdev); struct radeon_ps *rps = &pi->current_rps; struct trinity_ps *ps = trinity_get_ps(rps); int i, ret;
if (ps->num_levels <= 1) return 0;
if (level == RADEON_DPM_FORCED_LEVEL_HIGH) { /* not supported by the hw */ return -EINVAL; } else if (level == RADEON_DPM_FORCED_LEVEL_LOW) { ret = trinity_dpm_n_levels_disabled(rdev, ps->num_levels - 1); if (ret) return ret; } else { for (i = 0; i < ps->num_levels; i++) { ret = trinity_dpm_n_levels_disabled(rdev, 0); if (ret) return ret; } }
rdev->pm.dpm.forced_level = level;
return 0; }