RE: [PATCH] drm/amdgpu/smu11.5: restore cclks in vangogh_set_performance_level

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Official Use Only]

Acked-by: Evan Quan <evan.quan@xxxxxxx>

> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Alex
> Deucher
> Sent: Tuesday, January 25, 2022 5:13 AM
> To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>
> Subject: [PATCH] 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.
> 
> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
> ---
>  .../gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c  | 20
> ++++++++++++++++++-
>  1 file changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
> index 721027917f81..9a89b768c01b 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
> @@ -1388,7 +1388,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;
> 
> @@ -1482,6 +1482,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;
>  }
> 
> --
> 2.34.1




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux