mbox series

[net-next,0/7] net: ipa: use runtime PM reference counting

Message ID 20210810192704.2476461-1-elder@linaro.org
Headers show
Series net: ipa: use runtime PM reference counting | expand

Message

Alex Elder Aug. 10, 2021, 7:26 p.m. UTC
This series does further rework of the IPA clock code so that we
rely on some of the core runtime power management code (including
its referencing counting) instead.

The first patch makes ipa_clock_get() act like pm_runtime_get_sync().

The second patch makes system suspend occur regardless of the
current reference count value, which is again more like how the
runtime PM core code behaves.

The third patch creates functions to encapsulate all hardware
suspend and resume activity.  The fourth uses those functions as
the ->runtime_suspend and ->runtime_resume power callbacks.  With
that in place, ipa_clock_get() and ipa_clock_put() are changed to
use runtime PM get and put functions when needed.

The fifth patch eliminates an extra clock reference previously used
to control system suspend.  The sixth eliminates the "IPA clock"
reference count and mutex.

The final patch replaces the one call to ipa_clock_get_additional()
with a call to pm_runtime_get_if_active(), making the former
unnecessary.

					-Alec

Alex Elder (7):
  net: ipa: have ipa_clock_get() return a value
  net: ipa: disable clock in suspend
  net: ipa: resume in ipa_clock_get()
  net: ipa: use runtime PM core
  net: ipa: get rid of extra clock reference
  net: ipa: kill IPA clock reference count
  net: ipa: kill ipa_clock_get_additional()

 drivers/net/ipa/ipa_clock.c     | 165 +++++++++++---------------------
 drivers/net/ipa/ipa_clock.h     |  18 ++--
 drivers/net/ipa/ipa_interrupt.c |   9 +-
 drivers/net/ipa/ipa_main.c      |  35 +++----
 drivers/net/ipa/ipa_modem.c     |  15 ++-
 drivers/net/ipa/ipa_smp2p.c     |  33 ++++---
 drivers/net/ipa/ipa_uc.c        |  12 ++-
 7 files changed, 121 insertions(+), 166 deletions(-)

-- 
2.27.0