From: Ulf Hansson <ulf.hansson@linaro.org> To: Sudeep Holla <sudeep.holla@arm.com>, Cristian Marussi <cristian.marussi@arm.com>, Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>, Stephen Boyd <sboyd@kernel.org> Cc: Nikunj Kela <nkela@quicinc.com>, Prasad Sodagudi <psodagud@quicinc.com>, Alexandre Torgue <alexandre.torgue@foss.st.com>, Ulf Hansson <ulf.hansson@linaro.org>, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/16] cpufreq: scmi: Prepare to move OF parsing of domain-id to cpufreq Date: Wed, 7 Jun 2023 14:46:16 +0200 [thread overview] Message-ID: <20230607124628.157465-5-ulf.hansson@linaro.org> (raw) In-Reply-To: <20230607124628.157465-1-ulf.hansson@linaro.org> The OF parsing of the clock domain specifier seems to better belong in the scmi cpufreq driver, rather than being implemented behind the generic ->device_domain_id() perf protocol ops. To prepare to remove the ->device_domain_id() ops, let's implement the OF parsing in the scmi cpufreq driver instead. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> --- drivers/cpufreq/scmi-cpufreq.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c index f34e6382a4c5..7d05d48c0337 100644 --- a/drivers/cpufreq/scmi-cpufreq.c +++ b/drivers/cpufreq/scmi-cpufreq.c @@ -70,13 +70,24 @@ static unsigned int scmi_cpufreq_fast_switch(struct cpufreq_policy *policy, return 0; } +static int scmi_cpu_domain_id(struct device *cpu_dev) +{ + struct of_phandle_args clkspec; + + if (of_parse_phandle_with_args(cpu_dev->of_node, "clocks", + "#clock-cells", 0, &clkspec)) + return -EINVAL; + + return clkspec.args[0]; +} + static int scmi_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask) { int cpu, domain, tdomain; struct device *tcpu_dev; - domain = perf_ops->device_domain_id(cpu_dev); + domain = scmi_cpu_domain_id(cpu_dev); if (domain < 0) return domain; @@ -88,7 +99,7 @@ scmi_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask) if (!tcpu_dev) continue; - tdomain = perf_ops->device_domain_id(tcpu_dev); + tdomain = scmi_cpu_domain_id(tcpu_dev); if (tdomain == domain) cpumask_set_cpu(cpu, cpumask); } @@ -104,7 +115,7 @@ scmi_get_cpu_power(struct device *cpu_dev, unsigned long *power, unsigned long Hz; int ret, domain; - domain = perf_ops->device_domain_id(cpu_dev); + domain = scmi_cpu_domain_id(cpu_dev); if (domain < 0) return domain; @@ -209,7 +220,7 @@ static int scmi_cpufreq_init(struct cpufreq_policy *policy) } priv->cpu_dev = cpu_dev; - priv->domain_id = perf_ops->device_domain_id(cpu_dev); + priv->domain_id = scmi_cpu_domain_id(cpu_dev); policy->driver_data = priv; policy->freq_table = freq_table; -- 2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Ulf Hansson <ulf.hansson@linaro.org> To: Sudeep Holla <sudeep.holla@arm.com>, Cristian Marussi <cristian.marussi@arm.com>, Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>, Stephen Boyd <sboyd@kernel.org> Cc: Nikunj Kela <nkela@quicinc.com>, Prasad Sodagudi <psodagud@quicinc.com>, Alexandre Torgue <alexandre.torgue@foss.st.com>, Ulf Hansson <ulf.hansson@linaro.org>, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/16] cpufreq: scmi: Prepare to move OF parsing of domain-id to cpufreq Date: Wed, 7 Jun 2023 14:46:16 +0200 [thread overview] Message-ID: <20230607124628.157465-5-ulf.hansson@linaro.org> (raw) In-Reply-To: <20230607124628.157465-1-ulf.hansson@linaro.org> The OF parsing of the clock domain specifier seems to better belong in the scmi cpufreq driver, rather than being implemented behind the generic ->device_domain_id() perf protocol ops. To prepare to remove the ->device_domain_id() ops, let's implement the OF parsing in the scmi cpufreq driver instead. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> --- drivers/cpufreq/scmi-cpufreq.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c index f34e6382a4c5..7d05d48c0337 100644 --- a/drivers/cpufreq/scmi-cpufreq.c +++ b/drivers/cpufreq/scmi-cpufreq.c @@ -70,13 +70,24 @@ static unsigned int scmi_cpufreq_fast_switch(struct cpufreq_policy *policy, return 0; } +static int scmi_cpu_domain_id(struct device *cpu_dev) +{ + struct of_phandle_args clkspec; + + if (of_parse_phandle_with_args(cpu_dev->of_node, "clocks", + "#clock-cells", 0, &clkspec)) + return -EINVAL; + + return clkspec.args[0]; +} + static int scmi_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask) { int cpu, domain, tdomain; struct device *tcpu_dev; - domain = perf_ops->device_domain_id(cpu_dev); + domain = scmi_cpu_domain_id(cpu_dev); if (domain < 0) return domain; @@ -88,7 +99,7 @@ scmi_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask) if (!tcpu_dev) continue; - tdomain = perf_ops->device_domain_id(tcpu_dev); + tdomain = scmi_cpu_domain_id(tcpu_dev); if (tdomain == domain) cpumask_set_cpu(cpu, cpumask); } @@ -104,7 +115,7 @@ scmi_get_cpu_power(struct device *cpu_dev, unsigned long *power, unsigned long Hz; int ret, domain; - domain = perf_ops->device_domain_id(cpu_dev); + domain = scmi_cpu_domain_id(cpu_dev); if (domain < 0) return domain; @@ -209,7 +220,7 @@ static int scmi_cpufreq_init(struct cpufreq_policy *policy) } priv->cpu_dev = cpu_dev; - priv->domain_id = perf_ops->device_domain_id(cpu_dev); + priv->domain_id = scmi_cpu_domain_id(cpu_dev); policy->driver_data = priv; policy->freq_table = freq_table; -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-06-07 12:47 UTC|newest] Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-06-07 12:46 [PATCH 00/16] arm_scmi/opp/dvfs: Add generic performance scaling support Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 01/16] firmware: arm_scmi: Extend perf protocol ops to get number of domains Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 02/16] firmware: arm_scmi: Extend perf protocol ops to get the name of a domain Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 03/16] firmware: arm_scmi: Extend perf protocol ops to inform of set level support Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson [this message] 2023-06-07 12:46 ` [PATCH 04/16] cpufreq: scmi: Prepare to move OF parsing of domain-id to cpufreq Ulf Hansson 2023-06-07 12:46 ` [PATCH 05/16] firmware: arm_scmi: Align perf ops to use domain-id as in-parameter Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 06/16] firmware: arm_scmi: Drop redundant ->device_domain_id() from perf ops Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 07/16] cpufreq: scmi: Avoid one OF parsing in scmi_get_sharing_cpus() Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 08/16] PM: domains: Allow genpd providers to manage OPP tables directly by its FW Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 09/16] dt-bindings: firmware: arm,scmi: Extend bindings for protocol@13 Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-14 23:00 ` Rob Herring 2023-06-14 23:00 ` Rob Herring 2023-06-15 9:10 ` Ulf Hansson 2023-06-15 9:10 ` Ulf Hansson 2023-07-14 17:14 ` Rob Herring 2023-07-14 17:14 ` Rob Herring 2023-07-15 12:35 ` Ulf Hansson 2023-07-15 12:35 ` Ulf Hansson 2023-06-15 8:44 ` Sudeep Holla 2023-06-15 8:44 ` Sudeep Holla 2023-06-15 9:39 ` Ulf Hansson 2023-06-15 9:39 ` Ulf Hansson 2023-06-15 13:30 ` Sudeep Holla 2023-06-15 13:30 ` Sudeep Holla 2023-06-16 11:48 ` Ulf Hansson 2023-06-16 11:48 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 10/16] firmware: arm_scmi: Add the SCMI performance domain Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 11/16] OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-08 5:29 ` Viresh Kumar 2023-06-08 5:29 ` Viresh Kumar 2023-06-08 8:59 ` Ulf Hansson 2023-06-08 8:59 ` Ulf Hansson 2023-06-08 9:22 ` Viresh Kumar 2023-06-08 9:22 ` Viresh Kumar 2023-06-08 9:40 ` Ulf Hansson 2023-06-08 9:40 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 12/16] OPP: Extend dev_pm_opp_data with performance level Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 13/16] OPP: Extend dev_pm_opp_data with OPP provider support Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-08 5:34 ` Viresh Kumar 2023-06-08 5:34 ` Viresh Kumar 2023-06-08 9:37 ` Ulf Hansson 2023-06-08 9:37 ` Ulf Hansson 2023-06-08 10:45 ` Viresh Kumar 2023-06-08 10:45 ` Viresh Kumar 2023-06-08 11:45 ` Ulf Hansson 2023-06-08 11:45 ` Ulf Hansson 2023-06-09 5:10 ` Viresh Kumar 2023-06-09 5:10 ` Viresh Kumar 2023-06-09 10:59 ` Ulf Hansson 2023-06-09 10:59 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 14/16] firmware: arm_scmi: Simplify error path in scmi_dvfs_device_opps_add() Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 15/16] firmware: arm_scmi: Extend perf support with OPP from genpd providers Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 12:46 ` [PATCH 16/16] firmware: arm_scmi: Add generic OPP support to the SCMI performance domain Ulf Hansson 2023-06-07 12:46 ` Ulf Hansson 2023-06-07 14:43 ` [PATCH 00/16] arm_scmi/opp/dvfs: Add generic performance scaling support Cristian Marussi 2023-06-07 14:43 ` Cristian Marussi 2023-06-08 9:53 ` Ulf Hansson 2023-06-08 9:53 ` Ulf Hansson
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=20230607124628.157465-5-ulf.hansson@linaro.org \ --to=ulf.hansson@linaro.org \ --cc=alexandre.torgue@foss.st.com \ --cc=cristian.marussi@arm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=nkela@quicinc.com \ --cc=nm@ti.com \ --cc=psodagud@quicinc.com \ --cc=sboyd@kernel.org \ --cc=sudeep.holla@arm.com \ --cc=vireshk@kernel.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: linkBe 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.