mbox series

[v4,0/4] OPP API fixes and improvements

Message ID 20210120222649.28149-1-digetx@gmail.com (mailing list archive)
Headers show
Series OPP API fixes and improvements | expand

Message

Dmitry Osipenko Jan. 20, 2021, 10:26 p.m. UTC
Hi,

This series fixes problems and adds features to OPP API that are required
for implementation of a power domain driver for NVIDIA Tegra SoCs.

It is a continuation of [1], where Viresh Kumar asked to factor OPP
patches into a separate series. I factored out the patches into this
series, addressed the previous review comments and re-based patches
on top of [2], which replaced some of my patches that added resource-managed
helpers.

[1] https://patchwork.ozlabs.org/project/linux-tegra/list/?series=221130
[2] https://lore.kernel.org/linux-pm/20210101165507.19486-1-tiny.windzz@gmail.com/

Changelog:

v4: - Fixed missing export of devm_pm_opp_attach_genpd(). Thanks to
      Nicolas Chauvet for catching this problem.

    - Removed a bit questionable locking from dev_pm_opp_sync_regulators()
      and dev_pm_opp_set_voltage(). We may come back to the OPP locking
      sometime later, it's not an essential problem right now. I moved
      the lock from OPP core to the PD driver for now.

    - Added "Make _set_opp_custom() work without regulators" patch,
      which is made on top of "Prepare for ->set_opp() helper to work without
      regulators" patch from Viresh Kumar. The set_opp() helper now works
      without regulators.

v3: - Reordered patches by importance.

    - Added locking to dev_pm_opp_set_voltage().

    - Reworked "Fix adding OPP entries in a wrong order if rate is unavailable"
      patch, like it was suggested by Viresh Kumar.

    - Reworked "Support set_opp() customization without requiring to use
      regulators" patch, like it was suggested by Viresh Kumar.

      The opp_table->set_opp_data is now allocated by dev_pm_opp_register_set_opp_helper().

      The set_opp_data is refcounted now and can be allocated by any other
      OPP functions if this will become needed in the future for other OPP API
      changes.

Dmitry Osipenko (4):
  opp: Export devm_pm_opp_attach_genpd()
  opp: Add dev_pm_opp_sync_regulators()
  opp: Add dev_pm_opp_set_voltage()
  opp: Make _set_opp_custom() work without regulators

 drivers/opp/core.c     | 119 +++++++++++++++++++++++++++++++++++++----
 include/linux/pm_opp.h |  12 +++++
 2 files changed, 122 insertions(+), 9 deletions(-)

Comments

Viresh Kumar Jan. 22, 2021, 7:34 a.m. UTC | #1
On 21-01-21, 01:26, Dmitry Osipenko wrote:
> Dmitry Osipenko (4):
>   opp: Export devm_pm_opp_attach_genpd()
>   opp: Add dev_pm_opp_sync_regulators()
>   opp: Add dev_pm_opp_set_voltage()
>   opp: Make _set_opp_custom() work without regulators

Patch 1 and 3 aren't required anymore, I have applied 4th already.
Patch 2 can be applied only after the dependency patch for the stub
definition gets merge in Linus's tree. I see that Mark has already
queued that up in his for-5.11 branch, so it might be part of next
-rc. I will apply 2nd patch then.
Viresh Kumar Jan. 27, 2021, 6:54 a.m. UTC | #2
On 22-01-21, 13:04, Viresh Kumar wrote:
> Patch 2 can be applied only after the dependency patch for the stub
> definition gets merge in Linus's tree. I see that Mark has already
> queued that up in his for-5.11 branch, so it might be part of next
> -rc. I will apply 2nd patch then.

The consumer.h patch landed into Linus's tree this morning and hence I have
applied the last patch 2/4 from this series as well. Thanks.