[PATCH 1/2] drm/amd/pm: add support for IP version 11.5.2

Mario Limonciello mario.limonciello at amd.com
Mon Feb 10 21:18:17 UTC 2025


On 2/7/2025 15:27, Ying Li wrote:
> This initializes drm/amd/pm version 11.5.2
> 
> Signed-off-by: YING LI <yingli12 at amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello at amd.com>
> ---
>   drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c      |  3 +++
>   drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 12 ++++++++----
>   2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
> index 51c2a7f4aba2..dd4cffd94a90 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
> @@ -693,6 +693,7 @@ static int smu_set_funcs(struct amdgpu_device *adev)
>   		renoir_set_ppt_funcs(smu);
>   		break;
>   	case IP_VERSION(11, 5, 0):
> +	case IP_VERSION(11, 5, 2):
>   		vangogh_set_ppt_funcs(smu);
>   		break;
>   	case IP_VERSION(13, 0, 1):
> @@ -1565,6 +1566,7 @@ static int smu_smc_hw_setup(struct smu_context *smu)
>   	case IP_VERSION(11, 0, 7):
>   	case IP_VERSION(11, 0, 11):
>   	case IP_VERSION(11, 5, 0):
> +	case IP_VERSION(11, 5, 2):
>   	case IP_VERSION(11, 0, 12):
>   		if (adev->in_suspend && smu_is_dpm_running(smu)) {
>   			dev_info(adev->dev, "dpm has been enabled\n");
> @@ -1918,6 +1920,7 @@ static int smu_disable_dpms(struct smu_context *smu)
>   		case IP_VERSION(11, 0, 7):
>   		case IP_VERSION(11, 0, 11):
>   		case IP_VERSION(11, 5, 0):
> +		case IP_VERSION(11, 5, 2):
>   		case IP_VERSION(11, 0, 12):
>   		case IP_VERSION(11, 0, 13):
>   			return 0;
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
> index 189c6a32b6bd..8a9d5ec2fd43 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
> @@ -227,6 +227,7 @@ int smu_v11_0_check_fw_version(struct smu_context *smu)
>   		smu->smc_driver_if_version = SMU11_DRIVER_IF_VERSION_Navy_Flounder;
>   		break;
>   	case IP_VERSION(11, 5, 0):
> +	case IP_VERSION(11, 5, 2):
>   		smu->smc_driver_if_version = SMU11_DRIVER_IF_VERSION_VANGOGH;
>   		break;
>   	case IP_VERSION(11, 0, 12):
> @@ -471,10 +472,11 @@ int smu_v11_0_init_power(struct smu_context *smu)
>   {
>   	struct amdgpu_device *adev = smu->adev;
>   	struct smu_power_context *smu_power = &smu->smu_power;
> -	size_t size = amdgpu_ip_version(adev, MP1_HWIP, 0) ==
> -				      IP_VERSION(11, 5, 0) ?
> -			      sizeof(struct smu_11_5_power_context) :
> -			      sizeof(struct smu_11_0_power_context);
> +	u32 ip_version = amdgpu_ip_version(adev, MP1_HWIP, 0);
> +	size_t size = (	(ip_version == IP_VERSION(11, 5, 0)) ||
> +			(ip_version == IP_VERSION(11, 5, 2)) ) ?
> +				sizeof(struct smu_11_5_power_context) :
> +				sizeof(struct smu_11_0_power_context);
>   
>   	smu_power->power_context = kzalloc(size, GFP_KERNEL);
>   	if (!smu_power->power_context)
> @@ -731,6 +733,7 @@ int smu_v11_0_init_display_count(struct smu_context *smu, uint32_t count)
>   	 */
>   	if (amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(11, 0, 11) ||
>   	    amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(11, 5, 0) ||
> +	    amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(11, 5, 2) ||
>   	    amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(11, 0, 12) ||
>   	    amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(11, 0, 13))
>   		return 0;
> @@ -1110,6 +1113,7 @@ int smu_v11_0_gfx_off_control(struct smu_context *smu, bool enable)
>   	case IP_VERSION(11, 0, 12):
>   	case IP_VERSION(11, 0, 13):
>   	case IP_VERSION(11, 5, 0):
> +	case IP_VERSION(11, 5, 2):
>   		if (!(adev->pm.pp_feature & PP_GFXOFF_MASK))
>   			return 0;
>   		if (enable)



More information about the amd-gfx mailing list