[PATCH] drm/amd/pm: workaround for compute workload type on some skus

Lazar, Lijo lijo.lazar at amd.com
Fri Jun 9 04:29:37 UTC 2023



On 6/9/2023 8:25 AM, Kenneth Feng wrote:
> On smu 13.0.0, the compute workload type cannot be set on all the skus
> due to some other problems. This workaround is to make sure compute workload type
> can also run on some specific skus.
> 
> Signed-off-by: Kenneth Feng <kenneth.feng at amd.com>
> ---
>   .../drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c  | 26 +++++++++++++++++++
>   1 file changed, 26 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> index e2265f50bacc..6e8acd021ee6 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> @@ -2179,6 +2179,32 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu,
>   		}
>   	}
>   
> +	if (smu->power_profile_mode == PP_SMC_POWER_PROFILE_COMPUTE &&
> +		(((smu->adev->pdev->device == 0x744C) && (smu->adev->pdev->revision == 0xC8)) ||
> +		((smu->adev->pdev->device == 0x744C) && (smu->adev->pdev->revision == 0xCC)))) {
> +		ret = smu_cmn_update_table(smu,
> +					   SMU_TABLE_ACTIVITY_MONITOR_COEFF,
> +					   WORKLOAD_PPLIB_COMPUTE_BIT,
> +					   (void *)(&activity_monitor_external),
> +					   false);
> +		if (ret) {
> +			dev_err(smu->adev->dev, "[%s] Failed to get activity monitor!", __func__);
> +			return ret;
> +		}
> +
> +		ret = smu_cmn_update_table(smu,
> +					   SMU_TABLE_ACTIVITY_MONITOR_COEFF,
> +					   WORKLOAD_PPLIB_CUSTOM_BIT,
> +					   (void *)(&activity_monitor_external),
> +					   true);
> +		if (ret) {
> +			dev_err(smu->adev->dev, "[%s] Failed to set activity monitor!", __func__);
> +			return ret;
> +		}
> +
> +		smu->power_profile_mode = PP_SMC_POWER_PROFILE_CUSTOM;

Though custom profile is used to set compute profile as a workaround, 
shouldn't this be set to COMPUTE to indicate that the current profile 
set is COMPUTE?

Thanks,
Lijo
> +	}
> +
>   	/* conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT */
>   	workload_type = smu_cmn_to_asic_specific_index(smu,
>   						       CMN2ASIC_MAPPING_WORKLOAD,


More information about the amd-gfx mailing list