[PATCH] drm/amdgpu/powerplay: unify smu send message function

Quan, Evan Evan.Quan at amd.com
Tue Dec 3 02:40:36 UTC 2019



> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Likun
> Gao
> Sent: Monday, December 2, 2019 6:04 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Gao, Likun <Likun.Gao at amd.com>; Wang, Kevin(Yang)
> <Kevin1.Wang at amd.com>; Feng, Kenneth <Kenneth.Feng at amd.com>
> Subject: [PATCH] drm/amdgpu/powerplay: unify smu send message function
> 
> From: Likun Gao <Likun.Gao at amd.com>
> 
> Drop smu_send_smc_msg function from ASIC specify structure.
> Reuse smu_send_smc_msg_with_param function for smu_send_smc_msg.
> Set paramer to 0 for smu_send_msg function, otherwise it will send
> with previous paramer value (Not a certain value).
> 
> Signed-off-by: Likun Gao <Likun.Gao at amd.com>
> ---
>  drivers/gpu/drm/amd/powerplay/amdgpu_smu.c     |  8 ++++++++
>  drivers/gpu/drm/amd/powerplay/arcturus_ppt.c   |  1 -
>  drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h |  3 ++-
>  drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h  |  2 --
>  drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h  |  2 --
>  drivers/gpu/drm/amd/powerplay/navi10_ppt.c     |  1 -
>  drivers/gpu/drm/amd/powerplay/renoir_ppt.c     |  1 -
>  drivers/gpu/drm/amd/powerplay/smu_internal.h   |  2 --
>  drivers/gpu/drm/amd/powerplay/smu_v11_0.c      | 26 --------------------------
>  drivers/gpu/drm/amd/powerplay/smu_v12_0.c      | 25 -------------------------
>  drivers/gpu/drm/amd/powerplay/vega20_ppt.c     |  1 -
>  11 files changed, 10 insertions(+), 62 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> index 36001a4..e039904 100644
> --- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> +++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
> @@ -2567,3 +2567,11 @@ uint32_t smu_get_pptable_power_limit(struct
> smu_context *smu)
> 
>  	return ret;
>  }
> +
> +int smu_send_smc_msg(struct smu_context *smu, uint16_t msg)
> +{
> +	int ret;
> +
> +	ret = smu->ppt_funcs->send_smc_msg_with_param(smu, msg, 0);
> +	return ret;
> +}
[Quan, Evan] Better to still keep the smu_send_smc_msg definition in smu_internal.h as it's used internally.
Other than this, the patch is reviewed-by: Evan Quan <evan.quan at amd.com>
> diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> index 68107de..3f13986 100644
> --- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> @@ -2137,7 +2137,6 @@ static const struct pptable_funcs arcturus_ppt_funcs
> = {
>  	.set_tool_table_location = smu_v11_0_set_tool_table_location,
>  	.notify_memory_pool_location =
> smu_v11_0_notify_memory_pool_location,
>  	.system_features_control = smu_v11_0_system_features_control,
> -	.send_smc_msg = smu_v11_0_send_msg,
>  	.send_smc_msg_with_param = smu_v11_0_send_msg_with_param,
>  	.read_smc_arg = smu_v11_0_read_arg,
>  	.init_display_count = smu_v11_0_init_display_count,
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
> b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
> index ada4a8d..fae1026 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
> @@ -500,7 +500,6 @@ struct pptable_funcs {
>  	int (*notify_memory_pool_location)(struct smu_context *smu);
>  	int (*set_last_dcef_min_deep_sleep_clk)(struct smu_context *smu);
>  	int (*system_features_control)(struct smu_context *smu, bool en);
> -	int (*send_smc_msg)(struct smu_context *smu, uint16_t msg);
>  	int (*send_smc_msg_with_param)(struct smu_context *smu, uint16_t
> msg, uint32_t param);
>  	int (*read_smc_arg)(struct smu_context *smu, uint32_t *arg);
>  	int (*init_display_count)(struct smu_context *smu, uint32_t count);
> @@ -725,4 +724,6 @@ int smu_get_dpm_clock_table(struct smu_context
> *smu,
> 
>  uint32_t smu_get_pptable_power_limit(struct smu_context *smu);
> 
> +int smu_send_smc_msg(struct smu_context *smu, uint16_t msg);
> +
>  #endif
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
> b/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
> index 5a27713..80b1d20 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
> @@ -177,8 +177,6 @@ int smu_v11_0_notify_memory_pool_location(struct
> smu_context *smu);
>  int smu_v11_0_system_features_control(struct smu_context *smu,
>  					     bool en);
> 
> -int smu_v11_0_send_msg(struct smu_context *smu, uint16_t msg);
> -
>  int
>  smu_v11_0_send_msg_with_param(struct smu_context *smu, uint16_t msg,
>  			      uint32_t param);
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h
> b/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h
> index 44c65dd..f709f6e 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/smu_v12_0.h
> @@ -44,8 +44,6 @@ int smu_v12_0_read_arg(struct smu_context *smu,
> uint32_t *arg);
> 
>  int smu_v12_0_wait_for_response(struct smu_context *smu);
> 
> -int smu_v12_0_send_msg(struct smu_context *smu, uint16_t msg);
> -
>  int
>  smu_v12_0_send_msg_with_param(struct smu_context *smu, uint16_t msg,
>  			      uint32_t param);
> diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
> b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
> index f842246..15403b7 100644
> --- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c
> @@ -2083,7 +2083,6 @@ static const struct pptable_funcs navi10_ppt_funcs =
> {
>  	.set_tool_table_location = smu_v11_0_set_tool_table_location,
>  	.notify_memory_pool_location =
> smu_v11_0_notify_memory_pool_location,
>  	.system_features_control = smu_v11_0_system_features_control,
> -	.send_smc_msg = smu_v11_0_send_msg,
>  	.send_smc_msg_with_param = smu_v11_0_send_msg_with_param,
>  	.read_smc_arg = smu_v11_0_read_arg,
>  	.init_display_count = smu_v11_0_init_display_count,
> diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
> b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
> index b44ce14..b076589 100644
> --- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c
> @@ -800,7 +800,6 @@ static const struct pptable_funcs renoir_ppt_funcs = {
>  	.powergate_sdma = smu_v12_0_powergate_sdma,
>  	.powergate_vcn = smu_v12_0_powergate_vcn,
>  	.powergate_jpeg = smu_v12_0_powergate_jpeg,
> -	.send_smc_msg = smu_v12_0_send_msg,
>  	.send_smc_msg_with_param = smu_v12_0_send_msg_with_param,
>  	.read_smc_arg = smu_v12_0_read_arg,
>  	.set_gfx_cgpg = smu_v12_0_set_gfx_cgpg,
> diff --git a/drivers/gpu/drm/amd/powerplay/smu_internal.h
> b/drivers/gpu/drm/amd/powerplay/smu_internal.h
> index b2d81d3..dd3642d 100644
> --- a/drivers/gpu/drm/amd/powerplay/smu_internal.h
> +++ b/drivers/gpu/drm/amd/powerplay/smu_internal.h
> @@ -77,8 +77,6 @@
>  #define smu_set_default_od_settings(smu, initialize) \
>  	((smu)->ppt_funcs->set_default_od_settings ? (smu)->ppt_funcs-
> >set_default_od_settings((smu), (initialize)) : 0)
> 
> -#define smu_send_smc_msg(smu, msg) \
> -	((smu)->ppt_funcs->send_smc_msg? (smu)->ppt_funcs-
> >send_smc_msg((smu), (msg)) : 0)
>  #define smu_send_smc_msg_with_param(smu, msg, param) \
>  	((smu)->ppt_funcs->send_smc_msg_with_param? (smu)->ppt_funcs-
> >send_smc_msg_with_param((smu), (msg), (param)) : 0)
>  #define smu_read_smc_arg(smu, arg) \
> diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> index b90eb81..acdbb8d 100644
> --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> @@ -91,36 +91,10 @@ static int smu_v11_0_wait_for_response(struct
> smu_context *smu)
>  	return RREG32_SOC15(MP1, 0, mmMP1_SMN_C2PMSG_90) == 0x1 ?
> 0 : -EIO;
>  }
> 
> -int smu_v11_0_send_msg(struct smu_context *smu, uint16_t msg)
> -{
> -	struct amdgpu_device *adev = smu->adev;
> -	int ret = 0, index = 0;
> -
> -	index = smu_msg_get_index(smu, msg);
> -	if (index < 0)
> -		return index;
> -
> -	smu_v11_0_wait_for_response(smu);
> -
> -	WREG32_SOC15(MP1, 0, mmMP1_SMN_C2PMSG_90, 0);
> -
> -	smu_v11_0_send_msg_without_waiting(smu, (uint16_t)index);
> -
> -	ret = smu_v11_0_wait_for_response(smu);
> -
> -	if (ret)
> -		pr_err("failed send message: %10s (%d) response %#x\n",
> -		       smu_get_message_name(smu, msg), index, ret);
> -
> -	return ret;
> -
> -}
> -
>  int
>  smu_v11_0_send_msg_with_param(struct smu_context *smu, uint16_t msg,
>  			      uint32_t param)
>  {
> -
>  	struct amdgpu_device *adev = smu->adev;
>  	int ret = 0, index = 0;
> 
> diff --git a/drivers/gpu/drm/amd/powerplay/smu_v12_0.c
> b/drivers/gpu/drm/amd/powerplay/smu_v12_0.c
> index 0451673..143650c 100644
> --- a/drivers/gpu/drm/amd/powerplay/smu_v12_0.c
> +++ b/drivers/gpu/drm/amd/powerplay/smu_v12_0.c
> @@ -77,31 +77,6 @@ int smu_v12_0_wait_for_response(struct smu_context
> *smu)
>  	return RREG32_SOC15(MP1, 0, mmMP1_SMN_C2PMSG_90) == 0x1 ?
> 0 : -EIO;
>  }
> 
> -int smu_v12_0_send_msg(struct smu_context *smu, uint16_t msg)
> -{
> -	struct amdgpu_device *adev = smu->adev;
> -	int ret = 0, index = 0;
> -
> -	index = smu_msg_get_index(smu, msg);
> -	if (index < 0)
> -		return index;
> -
> -	smu_v12_0_wait_for_response(smu);
> -
> -	WREG32_SOC15(MP1, 0, mmMP1_SMN_C2PMSG_90, 0);
> -
> -	smu_v12_0_send_msg_without_waiting(smu, (uint16_t)index);
> -
> -	ret = smu_v12_0_wait_for_response(smu);
> -
> -	if (ret)
> -		pr_err("Failed to send message 0x%x, response 0x%x\n", index,
> -		       ret);
> -
> -	return ret;
> -
> -}
> -
>  int
>  smu_v12_0_send_msg_with_param(struct smu_context *smu, uint16_t msg,
>  			      uint32_t param)
> diff --git a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
> b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
> index 02ede5c..12bcc3e 100644
> --- a/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/vega20_ppt.c
> @@ -3231,7 +3231,6 @@ static const struct pptable_funcs vega20_ppt_funcs =
> {
>  	.set_tool_table_location = smu_v11_0_set_tool_table_location,
>  	.notify_memory_pool_location =
> smu_v11_0_notify_memory_pool_location,
>  	.system_features_control = smu_v11_0_system_features_control,
> -	.send_smc_msg = smu_v11_0_send_msg,
>  	.send_smc_msg_with_param = smu_v11_0_send_msg_with_param,
>  	.read_smc_arg = smu_v11_0_read_arg,
>  	.init_display_count = smu_v11_0_init_display_count,
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.free
> desktop.org%2Fmailman%2Flistinfo%2Famd-
> gfx&data=02%7C01%7Cevan.quan%40amd.com%7C0191e28c33a845754d
> 3e08d7770eff27%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6371
> 08779143176799&sdata=yElSgkvjUyJVBRqBs07FFkGWDiTceWHLgm%2B0I
> kw23w4%3D&reserved=0


More information about the amd-gfx mailing list