linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Perry Yuan <perry.yuan@amd.com>
To: <rafael.j.wysocki@intel.com>, <Mario.Limonciello@amd.com>,
	<viresh.kumar@linaro.org>, <gautham.shenoy@amd.com>
Cc: <Xinmei.Huang@amd.com>, <Xiaojian.Du@amd.com>, <Li.Meng@amd.com>,
	<linux-pm@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v12 6/9] cpufreq: amd-pstate: Add set_boost callback for active mode
Date: Wed, 19 Jun 2024 17:16:39 +0800	[thread overview]
Message-ID: <851f4e8b2495f35f2ee1e848844dbaabb55411f4.1718787627.git.perry.yuan@amd.com> (raw)
In-Reply-To: <cover.1718787627.git.perry.yuan@amd.com>

Add support for the set_boost callback in the active mode driver to
enable boost control via the cpufreq core. This ensures a consistent
boost control interface across all pstate modes, including passive
mode, guided mode, and active mode.

With this addition, all three pstate modes can support the same boost
control interface with unique interface and global CPB control. Each
CPU also supports individual boost control, allowing global CPB to
change all cores' boost states simultaneously. Specific CPUs can
update their boost states separately, ensuring all cores' boost
states are synchronized.

Signed-off-by: Perry Yuan <perry.yuan@amd.com>
---
 drivers/cpufreq/amd-pstate.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 1c2320808ae1..299e52d4b17e 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -699,20 +699,11 @@ static int amd_pstate_set_boost(struct cpufreq_policy *policy, int state)
 		pr_err("Boost mode is not supported by this processor or SBIOS\n");
 		return -ENOTSUPP;
 	}
+	mutex_lock(&amd_pstate_driver_lock);
+	ret = amd_pstate_cpu_boost(policy->cpu, state);
+	mutex_unlock(&amd_pstate_driver_lock);
 
-	if (state)
-		policy->cpuinfo.max_freq = cpudata->max_freq;
-	else
-		policy->cpuinfo.max_freq = cpudata->nominal_freq * 1000;
-
-	policy->max = policy->cpuinfo.max_freq;
-
-	ret = freq_qos_update_request(&cpudata->req[1],
-				      policy->cpuinfo.max_freq);
-	if (ret < 0)
-		return ret;
-
-	return 0;
+	return ret < 0 ? ret : 0;
 }
 
 static int amd_pstate_boost_set(struct amd_cpudata *cpudata)
@@ -1868,6 +1859,7 @@ static struct cpufreq_driver amd_pstate_epp_driver = {
 	.resume		= amd_pstate_epp_resume,
 	.update_limits	= amd_pstate_update_limits,
 	.init_boost	= amd_pstate_init_boost,
+	.set_boost	= amd_pstate_set_boost,
 	.name		= "amd-pstate-epp",
 	.attr		= amd_pstate_epp_attr,
 };
-- 
2.34.1


  parent reply	other threads:[~2024-06-19  9:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-19  9:16 [PATCH v12 0/9] AMD Pstate Driver Core Performance Boost Perry Yuan
2024-06-19  9:16 ` [PATCH v12 1/9] cpufreq: acpi: move MSR_K7_HWCR_CPB_DIS_BIT into msr-index.h Perry Yuan
2024-06-19  9:16 ` [PATCH v12 2/9] cpufreq: simplify boolean parsing with kstrtobool in store function Perry Yuan
2024-06-21  4:30   ` Gautham R.Shenoy
2024-06-19  9:16 ` [PATCH v12 3/9] cpufreq: introduce init_boost callback to initialize boost state for pstate drivers Perry Yuan
2024-06-19 17:37   ` Mario Limonciello
2024-06-19  9:16 ` [PATCH v12 4/9] cpufreq: amd-pstate: initialize new core precision boost state Perry Yuan
2024-06-19 19:32   ` Mario Limonciello
2024-06-21  5:23   ` Gautham R.Shenoy
2024-06-19  9:16 ` [PATCH v12 5/9] cpufreq: amd-pstate: implement cpb_boost sysfs entry for boost control Perry Yuan
2024-06-19 19:39   ` Mario Limonciello
2024-06-21  5:36     ` Gautham R.Shenoy
2024-06-19  9:16 ` Perry Yuan [this message]
2024-06-19 19:40   ` [PATCH v12 6/9] cpufreq: amd-pstate: Add set_boost callback for active mode Mario Limonciello
2024-06-21  5:39   ` Gautham R.Shenoy
2024-06-21  5:54     ` Yuan, Perry
2024-06-19  9:16 ` [PATCH v12 7/9] cpufreq: amd-pstate: fix the MSR highest perf will be reset issue while cpb boost off Perry Yuan
2024-06-21  5:46   ` Gautham R.Shenoy
2024-06-21  5:56     ` Yuan, Perry
2024-06-19  9:16 ` [PATCH v12 8/9] Documentation: cpufreq: amd-pstate: introduce the new cpu boost control method Perry Yuan
2024-06-19 19:40   ` Mario Limonciello
2024-06-19  9:16 ` [PATCH v12 9/9] Documentation: cpufreq: amd-pstate: update doc for Per CPU " Perry Yuan
2024-06-19 19:45   ` Mario Limonciello
2024-06-21  6:42     ` Gautham R.Shenoy

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=851f4e8b2495f35f2ee1e848844dbaabb55411f4.1718787627.git.perry.yuan@amd.com \
    --to=perry.yuan@amd.com \
    --cc=Li.Meng@amd.com \
    --cc=Mario.Limonciello@amd.com \
    --cc=Xiaojian.Du@amd.com \
    --cc=Xinmei.Huang@amd.com \
    --cc=gautham.shenoy@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=viresh.kumar@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).