Re: [PATCH v3 00/13] arm_scmi/cpufreq: Add generic performance scaling support

From: Ulf Hansson
Date: Thu Sep 14 2023 - 18:45:41 EST


Sudeep, Christian,

On Fri, 25 Aug 2023 at 13:26, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
>
> Changes in v3:
> - Re-based upon the for-next/scmi/updates branch.
> - Re-ordered some of the patches in the series, to eas review.
> - Added some new DT doc patches in the series, according to comments.
> - Fixed other comments, see version history for each patch.
>
> Changes in v2:
> - Split up the series, to get the basic support in place as the first
> step. The part that remains is the integration with the OPP library, to
> allow consumer drivers to change performance level using the OPP lib.
> - Re-based on top v6.5-rc1.
> - Other changes will be described for each patch.
>
> The current SCMI performance scaling support is limited to cpufreq. This series
> extends the support, so it can be used for all kind of devices and not only for
> CPUs.
>
> The changes are spread over a couple of different subsystems, although the
> changes that affects the other subsystems than the arm_scmi directory are
> mostly smaller, except for last patch which is in the new genpd directory.
>
> The series is based upon the for-next/scmi/updates branch, but to enable the
> genpd provider in patch 13 (the actual scmi performance domain driver) to be
> placed in the new genpd directory, I have also merged an immutable branch [1],
> which is queued for v6.6.
>
> Note that, I am runing this on the Qemu virt platform with Optee running an SCMI
> server. If you want some more details about my test setup, I can share this with
> you, just let me know.
>
> Looking forward to your feedback!
>
> Kind regards
> Ulf Hansson
>
> [1]
> git.kernel.org/pub/scm/linux/kernel/git/people/ulf.hansson/linux-pm.git genpd_create_dir
>
>
> Ulf Hansson (13):
> firmware: arm_scmi: Extend perf protocol ops to get number of domains
> firmware: arm_scmi: Extend perf protocol ops to get information of a
> domain
> cpufreq: scmi: Prepare to move OF parsing of domain-id to cpufreq
> firmware: arm_scmi: Align perf ops to use domain-id as in-parameter
> firmware: arm_scmi: Drop redundant ->device_domain_id() from perf ops
> cpufreq: scmi: Avoid one OF parsing in scmi_get_sharing_cpus()
> cpufreq: scmi: Drop redundant ifdef in scmi_cpufreq_probe()
> dt-bindings: arm: cpus: Add a power-domain-name for a
> performance-domain
> dt-bindings: firmware: arm,scmi: Extend bindings for protocol@13
> dt-bindings: power: Clarify performance capabilities of power-domains
> cpufreq: scmi: Add support to parse domain-id using
> #power-domain-cells
> PM: domains: Allow genpd providers to manage OPP tables directly by
> its FW
> genpd: arm: Add the SCMI performance domain
>
> .../devicetree/bindings/arm/cpus.yaml | 4 +-
> .../bindings/firmware/arm,scmi.yaml | 11 +-
> .../bindings/power/power-domain.yaml | 17 +-
> MAINTAINERS | 1 +
> drivers/base/power/domain.c | 11 +-
> drivers/cpufreq/scmi-cpufreq.c | 55 +++++--
> drivers/firmware/arm_scmi/Kconfig | 12 ++
> drivers/firmware/arm_scmi/perf.c | 90 +++++------
> drivers/genpd/Makefile | 1 +
> drivers/genpd/arm/Makefile | 3 +
> drivers/genpd/arm/scmi_perf_domain.c | 150 ++++++++++++++++++
> include/linux/pm_domain.h | 5 +
> include/linux/scmi_protocol.h | 18 ++-
> 13 files changed, 293 insertions(+), 85 deletions(-)
> create mode 100644 drivers/genpd/arm/Makefile
> create mode 100644 drivers/genpd/arm/scmi_perf_domain.c
>

Unless you have some additional comments, I think patch 1 -> 12 should
be ready to be applied to your scmi tree, as is. I tried to apply it
today and did not encounter any problem.

Patch 13 needs a rebase so I will submit a new version of it. For you
to apply it to your tree, you need to move your scmi branch to
v6.6-rc2 (on Monday), would that be okay for you to manage?

Kind regards
Uffe