[PATCH v7 0/3] CPUFreq: Add support for opp-sharing cpus

From: Nicola Mazzucato
Date: Mon Feb 15 2021 - 02:50:40 EST


Hi Viresh,

In this V7 posting I have reworked the CPUFreq scmi driver in a different
way as suggested in v6.
Essentially I believe it is more efficient to keep the support for opp-shared
in the _init() stage, rather than moving everything to _probe(), storing
whatever is required and reuse it only once in _init().
The reasons for this are:
- scmi-cpufreq has no init cases that would require a deferred probe.
- therefore, moving the all the cpus initialisation to probe, whilst possible,
will result in a waste of memory, since we need to store cpumask and
freq_table only for them to be reused just once later on at init.
- it does not appear to be functional justification for moving the init code
to probe, which results in unnecessary overhead for both coding and review.
- this change is much smaller and only one patch required (1 file changed,
52 insertions, 20 deletions) compared to a version where we first move init
code to _probe and later add support for opp-v2 (2 patches, 1 file changed,
194+34 insertions, 44+9 deletions, version with a linked list).
- this v7 implementation is much easier to maintain.

Many thanks,
Nicola

[v7]
* Bring back common stuff for CPUs from _init stage to _probe
* Remove patch "scmi-cpufreq: Move CPU initialisation to probe"

This v7 is based on Linux 5.11-rc6

[v6]
* Remove deferred probe, not occurring
* Move common stuff for CPUs from _init stage to _probe

This V6 is rebased on next-20210111

[v5]
* Rework documentation of opp-shared within OPP node
* Register EM only for the first CPU within cpumask in driver
* Add check for nr_opp in driver before registering EM
* Add comments on both dev_pm_opp_get_opp_count in driver
* Remove redundant ret=0 in driver

This v5 is rebased on top of:
next-20201208 + Lukasz Luba's patches [1]

[v4]
* Remove unconditional set of opp_table->shared_opp to exclusive
* Add implementation for scmi-cpufreq
* Change subject

These patches are on top of:
next-20201201 + Lukasz Luba's patches (waiting for Rafael) [1]

[v3]
* Remove proposal for new 'cpu-performance-dependencies' as we instead
can reuse the opp table.
* Update documentation for devicetree/bindings/opp
* Minor changes within opp to support empty opp table
* Rework the RFC by adding a second proposal

[v2]
* Fix errors when running make dt_binding_check
* Improve commit message description for the dt-binding
* Add RFC for implementation in cpufreq-core and one of its
drivers.

Nicola Mazzucato (2):
scmi-cpufreq: Remove deferred probe
scmi-cpufreq: Get opp_shared_cpus from opp-v2 for EM

Sudeep Holla (1):
cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev

drivers/cpufreq/cpufreq-dt-platdev.c | 2 +
drivers/cpufreq/scmi-cpufreq.c | 70 +++++++++++++++++++++-------
2 files changed, 54 insertions(+), 18 deletions(-)

--
2.27.0