Commit 91aa9c8f authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/smu11.5: restore cclks in vangogh_set_performance_level



When we disable manual clock setting, we need to restore the cclks
as well as the gfxclk.

Acked-by: default avatarHuang Rui <ray.huang@amd.com>
Acked-by: default avatarEvan Quan <evan.quan@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 779596ce
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -1384,7 +1384,7 @@ static int vangogh_set_peak_clock_by_device(struct smu_context *smu)
static int vangogh_set_performance_level(struct smu_context *smu,
					enum amd_dpm_forced_level level)
{
	int ret = 0;
	int ret = 0, i;
	uint32_t soc_mask, mclk_mask, fclk_mask;
	uint32_t vclk_mask = 0, dclk_mask = 0;

@@ -1478,6 +1478,24 @@ static int vangogh_set_performance_level(struct smu_context *smu,
	if (ret)
		return ret;

	if (smu->adev->pm.fw_version >= 0x43f1b00) {
		for (i = 0; i < smu->cpu_core_num; i++) {
			ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetSoftMinCclk,
							      ((i << 20)
							       | smu->cpu_actual_soft_min_freq),
							      NULL);
			if (ret)
				return ret;

			ret = smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_SetSoftMaxCclk,
							      ((i << 20)
							       | smu->cpu_actual_soft_max_freq),
							      NULL);
			if (ret)
				return ret;
		}
	}

	return ret;
}