mbox series

[net-next,v3,0/7] net: ipa: wake up system on RX available

Message ID 20200917173926.24266-1-elder@linaro.org
Headers show
Series net: ipa: wake up system on RX available | expand

Message

Alex Elder Sept. 17, 2020, 5:39 p.m. UTC
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(-)

Comments

David Miller Sept. 19, 2020, 12:47 a.m. UTC | #1
From: Alex Elder <elder@linaro.org>
Date: Thu, 17 Sep 2020 12:39:19 -0500

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

Series applied, thanks.