public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [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