[PATCH] drm/amd/pm: ingore failure of GmiPwrDnControl

Lazar, Lijo lijo.lazar at amd.com
Mon Jan 10 07:56:24 UTC 2022



On 1/10/2022 1:17 PM, Tao Zhou wrote:
> PMFW only returns 0 on master die and sends NACK back on other dies for
> the message.
> 
> Signed-off-by: Tao Zhou <tao.zhou1 at amd.com>
> ---
>   .../gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c   | 16 ++++++++++++----
>   1 file changed, 12 insertions(+), 4 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 261892977654..121b0ab5823f 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> @@ -1625,10 +1625,18 @@ static int aldebaran_set_df_cstate(struct smu_context *smu,
>   
>   static int aldebaran_allow_xgmi_power_down(struct smu_context *smu, bool en)
>   {
> -	return smu_cmn_send_smc_msg_with_param(smu,
> -					       SMU_MSG_GmiPwrDnControl,
> -					       en ? 0 : 1,
> -					       NULL);
> +	int ret;
> +
> +	ret = smu_cmn_send_smc_msg_with_param(smu,
> +					   SMU_MSG_GmiPwrDnControl,
> +					   en ? 0 : 1,
> +					   NULL);
> +	/* The message only works on master die and NACK will be sent
> +	   back for other dies, ingore CMD failure for the message */
> +	if (ret == -EIO)
> +		ret = 0;
> +

Could you confirm if this is hive master or primary die of each device? 
If it's the latter, use aldebaran_is_primary(). For the former we can 
add support similar to is_primary().

Thanks,
Lijo

> +	return ret;
>   }
>   
>   static const struct throttling_logging_label {
> 


More information about the amd-gfx mailing list