[PATCH 00/16] arm_scmi/opp/dvfs: Add generic performance scaling support

Ulf Hansson ulf.hansson at linaro.org
Wed Jun 7 05:46:12 PDT 2023


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. The series is based upon v6.4-rc5. That said, let's figure out
on how to best move forward with this. I am of course happy to help in any way.

Note that, so far this is only be tested on the Qemu virt platform with Optee
running an SCMI server. If you want some more details about my test setup, I am
certainly open to share that with you!

Looking forward to get your feedback!

Kind regards
Ulf Hansson


Ulf Hansson (16):
  firmware: arm_scmi: Extend perf protocol ops to get number of domains
  firmware: arm_scmi: Extend perf protocol ops to get the name of a
    domain
  firmware: arm_scmi: Extend perf protocol ops to inform of set level
    support
  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()
  PM: domains: Allow genpd providers to manage OPP tables directly by
    its FW
  dt-bindings: firmware: arm,scmi: Extend bindings for protocol at 13
  firmware: arm_scmi: Add the SCMI performance domain
  OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility
  OPP: Extend dev_pm_opp_data with performance level
  OPP: Extend dev_pm_opp_data with OPP provider support
  firmware: arm_scmi: Simplify error path in scmi_dvfs_device_opps_add()
  firmware: arm_scmi: Extend perf support with OPP from genpd providers
  firmware: arm_scmi: Add generic OPP support to the SCMI performance
    domain

 .../bindings/firmware/arm,scmi.yaml           |   4 +-
 drivers/base/power/domain.c                   |  11 +-
 drivers/cpufreq/scmi-cpufreq.c                |  40 ++--
 drivers/firmware/arm_scmi/Kconfig             |  12 ++
 drivers/firmware/arm_scmi/Makefile            |   1 +
 drivers/firmware/arm_scmi/perf.c              |  81 ++++----
 drivers/firmware/arm_scmi/scmi_perf_domain.c  | 189 ++++++++++++++++++
 drivers/opp/core.c                            |  69 ++++++-
 drivers/opp/of.c                              |  11 +-
 drivers/opp/opp.h                             |   3 +-
 include/linux/pm_domain.h                     |   5 +
 include/linux/pm_opp.h                        |  27 +++
 include/linux/scmi_protocol.h                 |  14 +-
 13 files changed, 388 insertions(+), 79 deletions(-)
 create mode 100644 drivers/firmware/arm_scmi/scmi_perf_domain.c

-- 
2.34.1




More information about the linux-arm-kernel mailing list