mbox series

[v3,0/4] Introduce "opp-microwatt" and 'advanced' Energy Model from DT

Message ID 20220224081131.27282-1-lukasz.luba@arm.com (mailing list archive)
Headers show
Series Introduce "opp-microwatt" and 'advanced' Energy Model from DT | expand

Message

Lukasz Luba Feb. 24, 2022, 8:11 a.m. UTC
Hi all,

This patch set solves a few issues:
1. It allows to register EM from DT, when the voltage information is not
   available. (Some background of the issues present on Chromebook devices
   can be checked at [1].)
2. It allows to register 'advanced' EM from the DT, which is more accurate
   and reflects total power (dynamic + static).

Implementation details:
Existing machinery in the OPP framework now handles "opp-microwatt", similarly
to "opp-microamp". It also has helper exported function to get power from OPP.
For the EM, it adds a new callback in OPP framework to use this new API and
read power while having an opp pointer. It's agreed to work with OPP-v2.

Comments, suggestions are very welcome.

changelog:
v3:
- added generic support in the OPP for "opp-microwatt"
- renamed _of_has_opp_microwatt_property() and return bool from it
- simplified _of_has_opp_microwatt_property() just checking 1st opp's power
- squashed the return ret; into return em_dev_register_perf_domain();
- added EM documentation update patch
v2 [2]

Regards,
Lukasz Luba

[1] https://lore.kernel.org/linux-pm/20220207073036.14901-2-lukasz.luba@arm.com/
[2] https://lore.kernel.org/linux-pm/20220222140746.12293-1-lukasz.luba@arm.com/


Lukasz Luba (4):
  dt-bindings: opp: Add "opp-microwatt" entry in the OPP
  OPP: Add "opp-microwatt" supporting code
  OPP: Add support of "opp-microwatt" for advanced EM registration
  Documentation: EM: Describe new registration method using DT

 .../devicetree/bindings/opp/opp-v2-base.yaml  |  15 +++
 Documentation/power/energy-model.rst          |  10 ++
 drivers/opp/core.c                            |  20 ++++
 drivers/opp/of.c                              | 105 +++++++++++++++++-
 include/linux/pm_opp.h                        |  12 +-
 5 files changed, 159 insertions(+), 3 deletions(-)