[PATCH v5 9/9] drm/amd/pm: Add aldebaran throttler translation

Quan, Evan Evan.Quan at amd.com
Tue Jun 8 02:19:44 UTC 2021


[AMD Official Use Only]

Series seems fine to me.
Reviewed-by: Evan Quan <evan.quan at amd.com>

BR
Evan
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of
> Graham Sider
> Sent: Monday, June 7, 2021 9:45 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Kasiviswanathan, Harish <Harish.Kasiviswanathan at amd.com>; Sider,
> Graham <Graham.Sider at amd.com>; Sakhnovitch, Elena (Elen)
> <Elena.Sakhnovitch at amd.com>
> Subject: [PATCH v5 9/9] drm/amd/pm: Add aldebaran throttler translation
> 
> Perform dependent to independent throttle status translation for aldebaran.
> 
> Signed-off-by: Graham Sider <Graham.Sider at amd.com>
> ---
>  .../drm/amd/pm/swsmu/smu13/aldebaran_ppt.c    | 27 +++++++++++++++-
> ---
>  1 file changed, 22 insertions(+), 5 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 7a1abb3d6a7a..0845d4b30a0d 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
> @@ -191,6 +191,20 @@ static const struct cmn2asic_mapping
> aldebaran_table_map[SMU_TABLE_COUNT] = {
>  	TAB_MAP(I2C_COMMANDS),
>  };
> 
> +static const uint8_t aldebaran_throttler_map[] = {
> +	[THROTTLER_PPT0_BIT]		=
> (SMU_THROTTLER_PPT0_BIT),
> +	[THROTTLER_PPT1_BIT]		=
> (SMU_THROTTLER_PPT1_BIT),
> +	[THROTTLER_TDC_GFX_BIT]		=
> (SMU_THROTTLER_TDC_GFX_BIT),
> +	[THROTTLER_TDC_SOC_BIT]		=
> (SMU_THROTTLER_TDC_SOC_BIT),
> +	[THROTTLER_TDC_HBM_BIT]		=
> (SMU_THROTTLER_TDC_MEM_BIT),
> +	[THROTTLER_TEMP_GPU_BIT]	=
> (SMU_THROTTLER_TEMP_GPU_BIT),
> +	[THROTTLER_TEMP_MEM_BIT]	=
> (SMU_THROTTLER_TEMP_MEM_BIT),
> +	[THROTTLER_TEMP_VR_GFX_BIT]	=
> (SMU_THROTTLER_TEMP_VR_GFX_BIT),
> +	[THROTTLER_TEMP_VR_SOC_BIT]	=
> (SMU_THROTTLER_TEMP_VR_SOC_BIT),
> +	[THROTTLER_TEMP_VR_MEM_BIT]	=
> (SMU_THROTTLER_TEMP_VR_MEM0_BIT),
> +	[THROTTLER_APCC_BIT]		=
> (SMU_THROTTLER_APCC_BIT),
> +};
> +
>  static int aldebaran_tables_init(struct smu_context *smu)  {
>  	struct smu_table_context *smu_table = &smu->smu_table; @@ -
> 213,7 +227,7 @@ static int aldebaran_tables_init(struct smu_context *smu)
>  		return -ENOMEM;
>  	smu_table->metrics_time = 0;
> 
> -	smu_table->gpu_metrics_table_size = sizeof(struct
> gpu_metrics_v1_2);
> +	smu_table->gpu_metrics_table_size = sizeof(struct
> gpu_metrics_v1_3);
>  	smu_table->gpu_metrics_table = kzalloc(smu_table-
> >gpu_metrics_table_size, GFP_KERNEL);
>  	if (!smu_table->gpu_metrics_table) {
>  		kfree(smu_table->metrics_table);
> @@ -1713,8 +1727,8 @@ static ssize_t aldebaran_get_gpu_metrics(struct
> smu_context *smu,
>  					 void **table)
>  {
>  	struct smu_table_context *smu_table = &smu->smu_table;
> -	struct gpu_metrics_v1_2 *gpu_metrics =
> -		(struct gpu_metrics_v1_2 *)smu_table->gpu_metrics_table;
> +	struct gpu_metrics_v1_3 *gpu_metrics =
> +		(struct gpu_metrics_v1_3 *)smu_table->gpu_metrics_table;
>  	SmuMetrics_t metrics;
>  	int i, ret = 0;
> 
> @@ -1724,7 +1738,7 @@ static ssize_t aldebaran_get_gpu_metrics(struct
> smu_context *smu,
>  	if (ret)
>  		return ret;
> 
> -	smu_cmn_init_soft_gpu_metrics(gpu_metrics, 1, 2);
> +	smu_cmn_init_soft_gpu_metrics(gpu_metrics, 1, 3);
> 
>  	gpu_metrics->temperature_edge = metrics.TemperatureEdge;
>  	gpu_metrics->temperature_hotspot = metrics.TemperatureHotspot;
> @@ -1755,6 +1769,9 @@ static ssize_t aldebaran_get_gpu_metrics(struct
> smu_context *smu,
>  	gpu_metrics->current_dclk0 = metrics.CurrClock[PPCLK_DCLK];
> 
>  	gpu_metrics->throttle_status = metrics.ThrottlerStatus;
> +	gpu_metrics->indep_throttle_status =
> +
> 	smu_cmn_get_indep_throttler_status(metrics.ThrottlerStatus,
> +
> aldebaran_throttler_map);
> 
>  	gpu_metrics->current_fan_speed = 0;
> 
> @@ -1776,7 +1793,7 @@ static ssize_t aldebaran_get_gpu_metrics(struct
> smu_context *smu,
> 
>  	*table = (void *)gpu_metrics;
> 
> -	return sizeof(struct gpu_metrics_v1_2);
> +	return sizeof(struct gpu_metrics_v1_3);
>  }
> 
>  static int aldebaran_mode2_reset(struct smu_context *smu)
> --
> 2.17.1
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.
> freedesktop.org%2Fmailman%2Flistinfo%2Famd-
> gfx&data=04%7C01%7Cevan.quan%40amd.com%7C1360514bfba14bf2f
> 7b608d929ba82be%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6
> 37586703300653696%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=
> xCJ5F1UI3MGbeMuKd0pXzQljcYncretn%2BcUFMGDi6yg%3D&reserved
> =0


More information about the amd-gfx mailing list