[PATCH 2/2 v2] drm/amd/pm: check specific index for aldebaran

Lazar, Lijo lijo.lazar at amd.com
Tue May 14 08:19:29 UTC 2024



On 5/14/2024 12:28 PM, Jesse Zhang wrote:
> To avoid warning problems, drop index and
> use PPSMC_MSG_GfxDriverReset instead of index for aldebaran.
> 
> Signed-off-by: Jesse Zhang <jesse.zhang at amd.com>
> Suggested-by: Lijo Lazar <lijo.lazar at amd.com>
> ---
>  drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> index a22eb6bbb05e..d671314c46c8 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> @@ -1880,17 +1880,18 @@ static int aldebaran_mode1_reset(struct smu_context *smu)
>  
>  static int aldebaran_mode2_reset(struct smu_context *smu)
>  {
> -	int ret = 0, index;
> +	int ret = 0;
>  	struct amdgpu_device *adev = smu->adev;
>  	int timeout = 10;
>  
> -	index = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_MSG,
> -						SMU_MSG_GfxDeviceDriverReset);
> -	if (index < 0 )
> -		return -EINVAL;
>  	mutex_lock(&smu->message_lock);
>  	if (smu->smc_fw_version >= 0x00441400) {
> -		ret = smu_cmn_send_msg_without_waiting(smu, (uint16_t)index, SMU_RESET_MODE_2);

For clarity, original comment is - retain this as it is, only replace
index with PPSMC_MSG_GfxDriverReset.

Changing this to msg_with_param() breaks the reset sequence.

Thanks,
Lijo

> +		ret = smu_cmn_send_smc_msg_with_param(smu, PPSMC_MSG_GfxDriverReset,
> +								SMU_RESET_MODE_2, NULL);
> +		if (ret) {
> +			dev_err(smu->adev->dev, "Failed to mode2 reset!\n");
> +			goto out;
> +		}
>  		/* This is similar to FLR, wait till max FLR timeout */
>  		msleep(100);
>  		dev_dbg(smu->adev->dev, "restore config space...\n");


More information about the amd-gfx mailing list