* [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support
@ 2024-03-12 9:47 Sibi Sankar
2024-03-12 9:47 ` [PATCH V4 1/2] firmware: arm_scmi: Add support for marking certain frequencies as turbo Sibi Sankar
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Sibi Sankar @ 2024-03-12 9:47 UTC (permalink / raw)
To: sudeep.holla, cristian.marussi, rafael, viresh.kumar,
morten.rasmussen, dietmar.eggemann, lukasz.luba, sboyd, d-gole
Cc: linux-arm-kernel, linux-pm, linux-kernel, quic_mdtipton,
linux-arm-msm, nm, Sibi Sankar
This series adds provision to mark dynamic opps as turbo capable and adds
boost frequency support to the scmi cpufreq driver.
V4:
* Pickup Rbs
* Use turbo and simplify setting turbo. [Dhruva/Viresh]
* Update commit message of patch 2 with more info. [Sudeep]
V3:
* Don't set per-policy boost flags from the cpufreq driver. [Viresh]
* Drop patch 1 since Viresh already pulled it in.
* Drop depends on bug link. [Viresh]
V2:
* Document boost flag. [Lukasz]
* Remove sustained_freq check. [Pierre]
* simplify sustained_freq_khz calculation. [Sudeep]
* fix default per-policy state. [Dietmar]
* fix typo in commit message in patch 3.
Sibi Sankar (2):
firmware: arm_scmi: Add support for marking certain frequencies as
turbo
cpufreq: scmi: Enable boost support
drivers/cpufreq/scmi-cpufreq.c | 20 +++++++++++++++++++-
drivers/firmware/arm_scmi/perf.c | 3 +++
2 files changed, 22 insertions(+), 1 deletion(-)
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH V4 1/2] firmware: arm_scmi: Add support for marking certain frequencies as turbo
2024-03-12 9:47 [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support Sibi Sankar
@ 2024-03-12 9:47 ` Sibi Sankar
2024-03-12 12:09 ` Dhruva Gole
2024-03-12 9:47 ` [PATCH V4 2/2] cpufreq: scmi: Enable boost support Sibi Sankar
2024-03-15 5:50 ` [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support Viresh Kumar
2 siblings, 1 reply; 6+ messages in thread
From: Sibi Sankar @ 2024-03-12 9:47 UTC (permalink / raw)
To: sudeep.holla, cristian.marussi, rafael, viresh.kumar,
morten.rasmussen, dietmar.eggemann, lukasz.luba, sboyd, d-gole
Cc: linux-arm-kernel, linux-pm, linux-kernel, quic_mdtipton,
linux-arm-msm, nm, Sibi Sankar
All opps above the sustained frequency are treated as turbo, so mark them
accordingly.
Suggested-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com>
---
v4:
* Pickup Rbs
* Use turbo and simplify setting turbo. [Dhruva/Viresh]
drivers/firmware/arm_scmi/perf.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c
index 8e832d1ad825..345fff167b52 100644
--- a/drivers/firmware/arm_scmi/perf.c
+++ b/drivers/firmware/arm_scmi/perf.c
@@ -871,6 +871,9 @@ static int scmi_dvfs_device_opps_add(const struct scmi_protocol_handle *ph,
else
freq = dom->opp[idx].indicative_freq * dom->mult_factor;
+ /* All OPPs above the sustained frequency are treated as turbo */
+ data.turbo = freq > dom->sustained_freq_khz * 1000;
+
data.level = dom->opp[idx].perf;
data.freq = freq;
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH V4 2/2] cpufreq: scmi: Enable boost support
2024-03-12 9:47 [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support Sibi Sankar
2024-03-12 9:47 ` [PATCH V4 1/2] firmware: arm_scmi: Add support for marking certain frequencies as turbo Sibi Sankar
@ 2024-03-12 9:47 ` Sibi Sankar
2024-03-12 12:09 ` Dhruva Gole
2024-03-15 5:50 ` [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support Viresh Kumar
2 siblings, 1 reply; 6+ messages in thread
From: Sibi Sankar @ 2024-03-12 9:47 UTC (permalink / raw)
To: sudeep.holla, cristian.marussi, rafael, viresh.kumar,
morten.rasmussen, dietmar.eggemann, lukasz.luba, sboyd, d-gole
Cc: linux-arm-kernel, linux-pm, linux-kernel, quic_mdtipton,
linux-arm-msm, nm, Sibi Sankar
Certain platforms host a number of higher OPPs that are exclusive to
CPUs within specific CPUfreq policies and not all CPUs within that
CPUfreq policy are able to achieve those higher OPPs due to power
constraints. These OPPs are marked as turbo in the freq_table and in
the presence of such OPPs, let's enable boost by default.
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com>
---
v4:
* Pickup Rbs
* Update commit message of patch with more info. [Sudeep]
drivers/cpufreq/scmi-cpufreq.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c
index 0b483bd0d3ca..3b4f6bfb2f4c 100644
--- a/drivers/cpufreq/scmi-cpufreq.c
+++ b/drivers/cpufreq/scmi-cpufreq.c
@@ -30,6 +30,7 @@ struct scmi_data {
static struct scmi_protocol_handle *ph;
static const struct scmi_perf_proto_ops *perf_ops;
+static struct cpufreq_driver scmi_cpufreq_driver;
static unsigned int scmi_cpufreq_get_rate(unsigned int cpu)
{
@@ -167,6 +168,12 @@ scmi_get_rate_limit(u32 domain, bool has_fast_switch)
return rate_limit;
}
+static struct freq_attr *scmi_cpufreq_hw_attr[] = {
+ &cpufreq_freq_attr_scaling_available_freqs,
+ NULL,
+ NULL,
+};
+
static int scmi_cpufreq_init(struct cpufreq_policy *policy)
{
int ret, nr_opp, domain;
@@ -276,6 +283,17 @@ static int scmi_cpufreq_init(struct cpufreq_policy *policy)
policy->transition_delay_us =
scmi_get_rate_limit(domain, policy->fast_switch_possible);
+ if (policy_has_boost_freq(policy)) {
+ ret = cpufreq_enable_boost_support();
+ if (ret) {
+ dev_warn(cpu_dev, "failed to enable boost: %d\n", ret);
+ goto out_free_opp;
+ } else {
+ scmi_cpufreq_hw_attr[1] = &cpufreq_freq_attr_scaling_boost_freqs;
+ scmi_cpufreq_driver.boost_enabled = true;
+ }
+ }
+
return 0;
out_free_opp:
@@ -334,7 +352,7 @@ static struct cpufreq_driver scmi_cpufreq_driver = {
CPUFREQ_NEED_INITIAL_FREQ_CHECK |
CPUFREQ_IS_COOLING_DEV,
.verify = cpufreq_generic_frequency_table_verify,
- .attr = cpufreq_generic_attr,
+ .attr = scmi_cpufreq_hw_attr,
.target_index = scmi_cpufreq_set_target,
.fast_switch = scmi_cpufreq_fast_switch,
.get = scmi_cpufreq_get_rate,
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH V4 2/2] cpufreq: scmi: Enable boost support
2024-03-12 9:47 ` [PATCH V4 2/2] cpufreq: scmi: Enable boost support Sibi Sankar
@ 2024-03-12 12:09 ` Dhruva Gole
0 siblings, 0 replies; 6+ messages in thread
From: Dhruva Gole @ 2024-03-12 12:09 UTC (permalink / raw)
To: Sibi Sankar
Cc: sudeep.holla, cristian.marussi, rafael, viresh.kumar,
morten.rasmussen, dietmar.eggemann, lukasz.luba, sboyd,
linux-arm-kernel, linux-pm, linux-kernel, quic_mdtipton,
linux-arm-msm, nm
On Mar 12, 2024 at 15:17:26 +0530, Sibi Sankar wrote:
> Certain platforms host a number of higher OPPs that are exclusive to
> CPUs within specific CPUfreq policies and not all CPUs within that
> CPUfreq policy are able to achieve those higher OPPs due to power
> constraints. These OPPs are marked as turbo in the freq_table and in
> the presence of such OPPs, let's enable boost by default.
Thanks, I like this commit message better than the prev rev.
>
> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
> Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com>
> ---
>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
--
Best regards,
Dhruva Gole <d-gole@ti.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V4 1/2] firmware: arm_scmi: Add support for marking certain frequencies as turbo
2024-03-12 9:47 ` [PATCH V4 1/2] firmware: arm_scmi: Add support for marking certain frequencies as turbo Sibi Sankar
@ 2024-03-12 12:09 ` Dhruva Gole
0 siblings, 0 replies; 6+ messages in thread
From: Dhruva Gole @ 2024-03-12 12:09 UTC (permalink / raw)
To: Sibi Sankar
Cc: sudeep.holla, cristian.marussi, rafael, viresh.kumar,
morten.rasmussen, dietmar.eggemann, lukasz.luba, sboyd,
linux-arm-kernel, linux-pm, linux-kernel, quic_mdtipton,
linux-arm-msm, nm
On Mar 12, 2024 at 15:17:25 +0530, Sibi Sankar wrote:
> All opps above the sustained frequency are treated as turbo, so mark them
> accordingly.
>
> Suggested-by: Sudeep Holla <sudeep.holla@arm.com>
> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
> Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com>
> ---
>
> v4:
> * Pickup Rbs
> * Use turbo and simplify setting turbo. [Dhruva/Viresh]
>
> drivers/firmware/arm_scmi/perf.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c
> index 8e832d1ad825..345fff167b52 100644
> --- a/drivers/firmware/arm_scmi/perf.c
> +++ b/drivers/firmware/arm_scmi/perf.c
> @@ -871,6 +871,9 @@ static int scmi_dvfs_device_opps_add(const struct scmi_protocol_handle *ph,
> else
> freq = dom->opp[idx].indicative_freq * dom->mult_factor;
>
> + /* All OPPs above the sustained frequency are treated as turbo */
> + data.turbo = freq > dom->sustained_freq_khz * 1000;
> +
Reviewed-by: Dhruva Gole <d-gole@ti.com>
> data.level = dom->opp[idx].perf;
> data.freq = freq;
>
> --
> 2.34.1
>
--
Best regards,
Dhruva Gole <d-gole@ti.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support
2024-03-12 9:47 [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support Sibi Sankar
2024-03-12 9:47 ` [PATCH V4 1/2] firmware: arm_scmi: Add support for marking certain frequencies as turbo Sibi Sankar
2024-03-12 9:47 ` [PATCH V4 2/2] cpufreq: scmi: Enable boost support Sibi Sankar
@ 2024-03-15 5:50 ` Viresh Kumar
2 siblings, 0 replies; 6+ messages in thread
From: Viresh Kumar @ 2024-03-15 5:50 UTC (permalink / raw)
To: Sibi Sankar
Cc: sudeep.holla, cristian.marussi, rafael, morten.rasmussen,
dietmar.eggemann, lukasz.luba, sboyd, d-gole, linux-arm-kernel,
linux-pm, linux-kernel, quic_mdtipton, linux-arm-msm, nm
On 12-03-24, 15:17, Sibi Sankar wrote:
> This series adds provision to mark dynamic opps as turbo capable and adds
> boost frequency support to the scmi cpufreq driver.
Applied. Thanks.
--
viresh
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-03-15 5:51 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-12 9:47 [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support Sibi Sankar
2024-03-12 9:47 ` [PATCH V4 1/2] firmware: arm_scmi: Add support for marking certain frequencies as turbo Sibi Sankar
2024-03-12 12:09 ` Dhruva Gole
2024-03-12 9:47 ` [PATCH V4 2/2] cpufreq: scmi: Enable boost support Sibi Sankar
2024-03-12 12:09 ` Dhruva Gole
2024-03-15 5:50 ` [PATCH V4 0/2] cpufreq: scmi: Add boost frequency support Viresh Kumar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox