OPP: Support multiple power-domains per device
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v3 Latest10 patches 6 repliesIn review
- v29 patches 8 repliesSuperseded
- v110 patches 5 repliesSuperseded
Changes in v3 from the cover letter
- Gained an additional patch to properly name the virtual device (1/10)
- Renamed the virtual device as virt_dev instead of genpd_dev.
- Few helpers renamed as well accordingly.
- Use container_of() instead of traversing list of genpd.
- Included tags received from Ulf.
Patches in v3 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/10 | PM / Domains: Rename genpd virtual devices as virt_devdrivers/ | +13 | 1 reply | |
| 2/10 | OPP: Identify and mark genpd OPP tablesdrivers/ drivers/ | +6 | 0 replies | |
| 3/10 | OPP: Separate out custom OPP handler specific codedrivers/ | +40 | 0 replies | |
| 4/10 | OPP: Populate required opp tables from "required-opps" propertydrivers/ drivers/ drivers/ | +157 | 0 replies | |
| 5/10 | OPP: Populate OPPs from "required-opps" propertydrivers/ drivers/ drivers/ | +86 | 0 replies | |
| 6/10 | PM / Domains: Add genpd_opp_to_performance_state()drivers/ include/ | +41 | 1 reply | |
| 7/10 | OPP: Add dev_pm_opp_{set|put}_genpd_virt_dev() helperdrivers/ drivers/ drivers/ +1 more | +115 | 1 reply | |
| 8/10 | OPP: Configure all required OPPsdrivers/ drivers/ | +68 | 1 reply | |
| 9/10 | OPP: Rename and relocate of_genpd_opp_to_performance_state()drivers/ drivers/ include/ +1 more | +49 | 2 replies | |
| 10/10 | OPP: Remove of_dev_pm_opp_find_required_opp()drivers/ include/ | +0 | 1 reply |
Reviews trailers per patch
All 10 patches have a Reviewed-by or Acked-by.
| Patch | Ulf Hansson |
|---|---|
| 1/10 | R-b |
| 2/10 | R-b |
| 3/10 | R-b |
| 4/10 | R-b |
| 5/10 | R-b |
| 6/10 | R-b |
| 7/10 | R-b |
| 8/10 | R-b |
| 9/10 | R-b R-b |
| 10/10 | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH V3 00/10] OPP: Support multiple power-domains per device
Hello,
This series improves the OPP core (and a bit of genpd core as well) to support multiple phandles in the "required-opps" property, which are only used for multiple power-domains per device for now.
We still don't propagate the changes to master domains for the sub-domains, but this patchset is an important stepping stone for that to happen.
Tested on Hikey960 after faking some power domains for CPUs.
V2->V3:
- Gained an additional patch to properly name the virtual device (1/10)
- Renamed the virtual device as virt_dev instead of genpd_dev.
- Few helpers renamed as well accordingly.
- Use container_of() instead of traversing list of genpd.
- Included tags received from Ulf.
V1->V2:
- Had a discussion at Linaro connect with Ulf regarding the changes V1 did in the genpd core and what his objections are to them. Based on his suggestions many changes are made.
- The OPP core still needs the virtual device pointers to set the performance state for multiple domains, but the genpd core doesn't provide them automatically to the OPP core. One of the reasons behind this is to give more power to the consumer drivers which may not want to enable all the genpds at once.
- The consumer drivers would now need to call the APIs dev_pm_opp_{set|put}_genpd_device() in order to set/reset these virtual device pointers.
- More locking is put in place to protect the genpd device pointers in OPP core.
- Reorg of the code at many places to make code less redundant.
--
viresh
Viresh Kumar (10):
PM / Domains: Rename genpd virtual devices as virt_dev
OPP: Identify and mark genpd OPP tables
OPP: Separate out custom OPP handler specific code
OPP: Populate required opp tables from "required-opps" property
OPP: Populate OPPs from "required-opps" property
PM / Domains: Add genpd_opp_to_performance_state()
OPP: Add dev_pm_opp_{set|put}_genpd_virt_dev() helper
OPP: Configure all required OPPs
OPP: Rename and relocate of_genpd_opp_to_performance_state()
OPP: Remove of_dev_pm_opp_find_required_opp()
drivers/base/power/domain.c | 70 ++++---- drivers/opp/core.c | 261 ++++++++++++++++++++++-------- drivers/opp/of.c | 313 +++++++++++++++++++++++++++++++----- drivers/opp/opp.h | 20 +++ include/linux/pm_domain.h | 8 +- include/linux/pm_opp.h | 16 +- 6 files changed, 526 insertions(+), 162 deletions(-)
Signature · 1 line
2.19.1.568.g152ad8e3369a