All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Kuehling <felix.kuehling-5C7GfCeVMHo@public.gmane.org>
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, "Zhu,
	Rex" <Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
Subject: Re: [PATCH 1/2] drm/amd/pp: Remove manual mode for power_dpm_force_performance_level
Date: Thu, 25 Jan 2018 11:55:19 -0500	[thread overview]
Message-ID: <51c6111b-78ec-36f8-b5e0-4a23ccea6de4@amd.com> (raw)
In-Reply-To: <1516879614-11533-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>

This patch breaks unforcing of clocks, which is currently done by
switching back from "manual" to "auto". By removing "manual" mode, you
remove the ability to unset forced clocks.

Regards,
  Felix


On 2018-01-25 06:26 AM, Rex Zhu wrote:
> Driver do not maintain manual mode for dpm_force_performance_level,
> User can set sclk/mclk/pcie range through pp_dpm_sclk/pp_dpm_mclk/pp_dpm_pcie
> directly.
>
> In order to not break currently tools,
> when set "manual" to power_dpm_force_performance_level
> driver will do nothing and just return successful.
>
> Change-Id: Iaf672b9abc7fa57b765ceb7fa2fba6ad3e80c50b
> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c             |  3 +--
>  drivers/gpu/drm/amd/amdgpu/ci_dpm.c                |  5 -----
>  drivers/gpu/drm/amd/include/kgd_pp_interface.h     | 15 +++++++--------
>  drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c     |  4 ----
>  drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c     |  1 -
>  drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c   |  6 ------
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c |  6 ------
>  7 files changed, 8 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> index 1812009..66b4df0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> @@ -152,7 +152,6 @@ static ssize_t amdgpu_get_dpm_forced_performance_level(struct device *dev,
>  			(level == AMD_DPM_FORCED_LEVEL_AUTO) ? "auto" :
>  			(level == AMD_DPM_FORCED_LEVEL_LOW) ? "low" :
>  			(level == AMD_DPM_FORCED_LEVEL_HIGH) ? "high" :
> -			(level == AMD_DPM_FORCED_LEVEL_MANUAL) ? "manual" :
>  			(level == AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD) ? "profile_standard" :
>  			(level == AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK) ? "profile_min_sclk" :
>  			(level == AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK) ? "profile_min_mclk" :
> @@ -186,7 +185,7 @@ static ssize_t amdgpu_set_dpm_forced_performance_level(struct device *dev,
>  	} else if (strncmp("auto", buf, strlen("auto")) == 0) {
>  		level = AMD_DPM_FORCED_LEVEL_AUTO;
>  	} else if (strncmp("manual", buf, strlen("manual")) == 0) {
> -		level = AMD_DPM_FORCED_LEVEL_MANUAL;
> +		pr_info("No need to set manual mode, Just go ahead\n");
>  	} else if (strncmp("profile_exit", buf, strlen("profile_exit")) == 0) {
>  		level = AMD_DPM_FORCED_LEVEL_PROFILE_EXIT;
>  	} else if (strncmp("profile_standard", buf, strlen("profile_standard")) == 0) {
> diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
> index ab45232..8ddc978 100644
> --- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
> @@ -6639,11 +6639,6 @@ static int ci_dpm_force_clock_level(void *handle,
>  	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>  	struct ci_power_info *pi = ci_get_pi(adev);
>  
> -	if (adev->pm.dpm.forced_level & (AMD_DPM_FORCED_LEVEL_AUTO |
> -				AMD_DPM_FORCED_LEVEL_LOW |
> -				AMD_DPM_FORCED_LEVEL_HIGH))
> -		return -EINVAL;
> -
>  	switch (type) {
>  	case PP_SCLK:
>  		if (!pi->sclk_dpm_key_disabled)
> diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
> index b9aa9f4..3fab686 100644
> --- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
> +++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
> @@ -41,14 +41,13 @@ struct amd_vce_state {
>  
>  enum amd_dpm_forced_level {
>  	AMD_DPM_FORCED_LEVEL_AUTO = 0x1,
> -	AMD_DPM_FORCED_LEVEL_MANUAL = 0x2,
> -	AMD_DPM_FORCED_LEVEL_LOW = 0x4,
> -	AMD_DPM_FORCED_LEVEL_HIGH = 0x8,
> -	AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD = 0x10,
> -	AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK = 0x20,
> -	AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK = 0x40,
> -	AMD_DPM_FORCED_LEVEL_PROFILE_PEAK = 0x80,
> -	AMD_DPM_FORCED_LEVEL_PROFILE_EXIT = 0x100,
> +	AMD_DPM_FORCED_LEVEL_LOW = 0x2,
> +	AMD_DPM_FORCED_LEVEL_HIGH = 0x4,
> +	AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD = 0x8,
> +	AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK = 0x10,
> +	AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK = 0x20,
> +	AMD_DPM_FORCED_LEVEL_PROFILE_PEAK = 0x40,
> +	AMD_DPM_FORCED_LEVEL_PROFILE_EXIT = 0x80,
>  };
>  
>  enum amd_pm_state_type {
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
> index dec8dd9..60d280c 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
> @@ -1250,7 +1250,6 @@ static int cz_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
>  	case AMD_DPM_FORCED_LEVEL_AUTO:
>  		ret = cz_phm_unforce_dpm_levels(hwmgr);
>  		break;
> -	case AMD_DPM_FORCED_LEVEL_MANUAL:
>  	case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
>  	default:
>  		break;
> @@ -1558,9 +1557,6 @@ static int cz_get_dal_power_level(struct pp_hwmgr *hwmgr,
>  static int cz_force_clock_level(struct pp_hwmgr *hwmgr,
>  		enum pp_clock_type type, uint32_t mask)
>  {
> -	if (hwmgr->dpm_level != AMD_DPM_FORCED_LEVEL_MANUAL)
> -		return -EINVAL;
> -
>  	switch (type) {
>  	case PP_SCLK:
>  		smum_send_msg_to_smc_with_parameter(hwmgr,
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
> index 409a56b..eddcbcd 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
> @@ -605,7 +605,6 @@ static int rv_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
>  						PPSMC_MSG_SetSoftMaxFclkByFreq,
>  						RAVEN_UMD_PSTATE_MIN_FCLK);
>  		break;
> -	case AMD_DPM_FORCED_LEVEL_MANUAL:
>  	case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
>  	default:
>  		break;
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> index 13db75c..e3a8374 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> @@ -2798,7 +2798,6 @@ static int smu7_force_dpm_level(struct pp_hwmgr *hwmgr,
>  		smu7_force_clock_level(hwmgr, PP_MCLK, 1<<mclk_mask);
>  		smu7_force_clock_level(hwmgr, PP_PCIE, 1<<pcie_mask);
>  		break;
> -	case AMD_DPM_FORCED_LEVEL_MANUAL:
>  	case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
>  	default:
>  		break;
> @@ -4311,11 +4310,6 @@ static int smu7_force_clock_level(struct pp_hwmgr *hwmgr,
>  {
>  	struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
>  
> -	if (hwmgr->request_dpm_level & (AMD_DPM_FORCED_LEVEL_AUTO |
> -					AMD_DPM_FORCED_LEVEL_LOW |
> -					AMD_DPM_FORCED_LEVEL_HIGH))
> -		return -EINVAL;
> -
>  	switch (type) {
>  	case PP_SCLK:
>  		if (!data->sclk_dpm_key_disabled)
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 6b28896..828677e 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -4241,7 +4241,6 @@ static int vega10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
>  		vega10_force_clock_level(hwmgr, PP_SCLK, 1<<sclk_mask);
>  		vega10_force_clock_level(hwmgr, PP_MCLK, 1<<mclk_mask);
>  		break;
> -	case AMD_DPM_FORCED_LEVEL_MANUAL:
>  	case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
>  	default:
>  		break;
> @@ -4500,11 +4499,6 @@ static int vega10_force_clock_level(struct pp_hwmgr *hwmgr,
>  {
>  	struct vega10_hwmgr *data = (struct vega10_hwmgr *)(hwmgr->backend);
>  
> -	if (hwmgr->request_dpm_level & (AMD_DPM_FORCED_LEVEL_AUTO |
> -				AMD_DPM_FORCED_LEVEL_LOW |
> -				AMD_DPM_FORCED_LEVEL_HIGH))
> -		return -EINVAL;
> -
>  	switch (type) {
>  	case PP_SCLK:
>  		data->smc_state_table.gfx_boot_level = mask ? (ffs(mask) - 1) : 0;

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2018-01-25 16:55 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-25 11:26 [PATCH 1/2] drm/amd/pp: Remove manual mode for power_dpm_force_performance_level Rex Zhu
     [not found] ` <1516879614-11533-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
2018-01-25 11:26   ` [PATCH 2/2] drm/amd/pp: Fix sysfs pp_dpm_pcie bug on CI/VI Rex Zhu
2018-01-25 16:55   ` Felix Kuehling [this message]
     [not found]     ` <51c6111b-78ec-36f8-b5e0-4a23ccea6de4-5C7GfCeVMHo@public.gmane.org>
2018-01-26  0:07       ` [PATCH 1/2] drm/amd/pp: Remove manual mode for power_dpm_force_performance_level Zhu, Rex
     [not found]         ` <CY4PR12MB1687930CD8F44390C3791A63FBE10-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-26  0:26           ` Felix Kuehling
     [not found]             ` <0ce63372-dc11-9710-f11d-0cf6abf326b4-5C7GfCeVMHo@public.gmane.org>
2018-01-26 12:50               ` Zhu, Rex
     [not found]                 ` <CY4PR12MB168744ABA067C470390EA34EFBE00-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-26 16:49                   ` Felix Kuehling
     [not found]                     ` <ec6ea7dd-0096-dd92-8c49-b2992b5bf506-5C7GfCeVMHo@public.gmane.org>
2018-01-26 19:20                       ` Zhu, Rex
     [not found]                         ` <CY4PR12MB1687BFBCA906C0B17D52089BFBE00-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-26 19:32                           ` Felix Kuehling
     [not found]                             ` <cc9e6d84-9720-15fb-15ec-f608f8d9392d-5C7GfCeVMHo@public.gmane.org>
2018-01-26 20:08                               ` Zhu, Rex
     [not found]                                 ` <CY4PR12MB1687274014BDD739BE44DF6CFBE00-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-26 23:51                                   ` Alex Deucher
     [not found]                                     ` <CADnq5_Ni6j8ONe7f5rDMprbeB6Mq1RVXJAonUO2VTp+1Dgf+Gw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-29 12:03                                       ` Zhu, Rex
     [not found]                                         ` <CY4PR12MB1687A63BA8F717170700292DFBE50-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-29 18:02                                           ` Alex Deucher
     [not found]                                             ` <CADnq5_Njpv+OnXRD0bo4ZefjxR8LLnfsyTCoTmdmYzgYAuBXOA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-29 21:51                                               ` Zhu, Rex
     [not found]                                                 ` <CY4PR12MB16876451346CA39EE72B4844FBE50-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-01-29 22:26                                                   ` Alex Deucher
     [not found]                                                     ` <CADnq5_O-43_fW4_4D=ztPDhww44fADHFLyHkNCT+WRLv3usQxQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-29 22:45                                                       ` Zhu, Rex

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51c6111b-78ec-36f8-b5e0-4a23ccea6de4@amd.com \
    --to=felix.kuehling-5c7gfcevmho@public.gmane.org \
    --cc=Rex.Zhu-5C7GfCeVMHo@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.