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

From: Alex Elder
Date: Tue Aug 10 2021 - 15:27:10 EST

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


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(-)