mbox series

[net-next,v2,0/6] net: ipa: simplify IPA interrupt handling

Message ID 20230104175233.2862874-1-elder@linaro.org
Headers show
Series net: ipa: simplify IPA interrupt handling | expand

Message

Alex Elder Jan. 4, 2023, 5:52 p.m. UTC
One of the IPA's two IRQs fires when data on a suspended channel is
available (to request that the channel--or system--be resumed to
recieve the pending data).  This interrupt also handles a few
conditions signaled by the embedded microcontroller.

For this "IPA interrupt", the current code requires a handler to be
dynamically registered for each interrupt condition.  Any condition
that has no registered handler is quietly ignored.  This design is
derived from the downstream IPA driver implementation.

There isn't any need for this complexity.  Even in the downstream
code, only four of the available 30 or so IPA interrupt conditions
are ever handled.  So these handlers can pretty easily just be
called directly in the main IRQ handler function.

This series simplifies the interrupt handling code by having the
small number of IPA interrupt handlers be called directly, rather
than having them be registered dynamically.

Version 2 just adds a missing forward-reference, as suggested by
Caleb.

					-Alex

Alex Elder (6):
  net: ipa: introduce a common microcontroller interrupt handler
  net: ipa: introduce ipa_interrupt_enable()
  net: ipa: enable IPA interrupt handlers separate from registration
  net: ipa: register IPA interrupt handlers directly
  net: ipa: kill ipa_interrupt_add()
  net: ipa: don't maintain IPA interrupt handler array

 drivers/net/ipa/ipa_interrupt.c | 103 ++++++++++++++------------------
 drivers/net/ipa/ipa_interrupt.h |  48 +++++----------
 drivers/net/ipa/ipa_power.c     |  19 ++----
 drivers/net/ipa/ipa_power.h     |  12 ++++
 drivers/net/ipa/ipa_uc.c        |  21 +++++--
 drivers/net/ipa/ipa_uc.h        |   8 +++
 6 files changed, 99 insertions(+), 112 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Jan. 6, 2023, 6:10 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Wed,  4 Jan 2023 11:52:27 -0600 you wrote:
> One of the IPA's two IRQs fires when data on a suspended channel is
> available (to request that the channel--or system--be resumed to
> recieve the pending data).  This interrupt also handles a few
> conditions signaled by the embedded microcontroller.
> 
> For this "IPA interrupt", the current code requires a handler to be
> dynamically registered for each interrupt condition.  Any condition
> that has no registered handler is quietly ignored.  This design is
> derived from the downstream IPA driver implementation.
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/6] net: ipa: introduce a common microcontroller interrupt handler
    https://git.kernel.org/netdev/net-next/c/e5709b7c1ede
  - [net-next,v2,2/6] net: ipa: introduce ipa_interrupt_enable()
    https://git.kernel.org/netdev/net-next/c/8e461e1f092b
  - [net-next,v2,3/6] net: ipa: enable IPA interrupt handlers separate from registration
    https://git.kernel.org/netdev/net-next/c/d50ed3558719
  - [net-next,v2,4/6] net: ipa: register IPA interrupt handlers directly
    https://git.kernel.org/netdev/net-next/c/482ae3a993e4
  - [net-next,v2,5/6] net: ipa: kill ipa_interrupt_add()
    https://git.kernel.org/netdev/net-next/c/8d8d3f1a3ef9
  - [net-next,v2,6/6] net: ipa: don't maintain IPA interrupt handler array
    (no matching commit)

You are awesome, thank you!