[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200917173926.24266-1-elder@linaro.org>
Date: Thu, 17 Sep 2020 12:39:19 -0500
From: Alex Elder <elder@...aro.org>
To: davem@...emloft.net, kuba@...nel.org
Cc: evgreen@...omium.org, subashab@...eaurora.org,
cpratapa@...eaurora.org, bjorn.andersson@...aro.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH net-next v3 0/7] net: ipa: wake up system on RX available
This series arranges for the IPA driver to wake up a suspended
system if the IPA hardware has a packet to deliver to the AP.
Version 2 replaced the first patch from version 1 with three
patches, in response to David Miller's feedback. And based on
Bjorn Andersson's feedback on version 2, this version reworks
the tracking of IPA clock references. As a result, we no
longer need a flag to determine whether a "don't' suspend" clock
reference is held (though an bit in a bitmask is still used for
a different purpose).
In summary:
- A refcount_t is used to track IPA clock references where an
atomic_t was previously used. (This may go away soon as well,
with upcoming work to implement runtime PM.)
- We no longer track whether a special reference has been taken
to avoid suspending IPA.
- A bit in a bitmask is used to ensure we only trigger a system
resume once per system suspend.
And from the original series:
- Suspending endpoints only occurs when suspending the driver,
not when dropping the last clock reference. Resuming
endpoints is also disconnected from starting the clock.
- The IPA SUSPEND interrupt is now a wakeup interrupt. If it
fires, it schedules a system resume operation.
- The GSI interrupt is no longer a wakeup interrupt.
-Alex
Alex Elder (7):
net: ipa: use refcount_t for IPA clock reference count
net: ipa: replace ipa->suspend_ref with a flag bit
net: ipa: manage endpoints separate from clock
net: ipa: use device_init_wakeup()
net: ipa: repurpose CLOCK_HELD flag
net: ipa: enable wakeup on IPA interrupt
net: ipa: do not enable GSI interrupt for wakeup
drivers/net/ipa/gsi.c | 17 +++------
drivers/net/ipa/gsi.h | 1 -
drivers/net/ipa/ipa.h | 16 ++++++---
drivers/net/ipa/ipa_clock.c | 28 ++++++---------
drivers/net/ipa/ipa_interrupt.c | 14 ++++++++
drivers/net/ipa/ipa_main.c | 64 +++++++++++++++++----------------
6 files changed, 74 insertions(+), 66 deletions(-)
--
2.20.1
Powered by blists - more mailing lists