All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/6] net: ipa: hardware pipeline cleanup fixes
@ 2021-01-25 21:29 Alex Elder
  2021-01-25 21:29 ` [PATCH net-next 1/6] net: ipa: rename "tag status" symbols Alex Elder
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Alex Elder @ 2021-01-25 21:29 UTC (permalink / raw)
  To: davem, kuba
  Cc: elder, evgreen, bjorn.andersson, cpratapa, subashab, netdev,
	linux-kernel

There is a procedure currently referred to as a "tag process" that
is performed to clear the IPA hardware pipeline--either at the time
of a modem crash, or when suspending modem GSI channels.

One thing done in this procedure is issuing a command that sends a
data packet originating from the AP->command TX endpoint, destined
for the AP<-LAN RX (default) endpoint.  And although we currently
wait for the send to complete, we do *not* wait for the packet to be
received.  But the pipeline can't be assumed clear until we have
actually received this packet.

This series addresses this by detecting when the pipeline-clearing
packet has been received, and using a completion to allow a waiter
to know when that has happened.  This uses the IPA status capability
(which sends an extra status buffer for certain packets).  It also
uses the ability to supply a "tag" with a packet, which will be
delivered with the packet's status buffer.  We tag the data packet
that's sent to clear the pipeline, and use the receipt of a status
buffer associated with a tagged packet to determine when that packet
has arrived.

"Tag status" just desribes one aspect of this procedure, so some
symbols are renamed to be more like "pipeline clear" so they better
describe the larger purpose.  Finally, two functions used in this
code don't use their arguments, so those arguments are removed.

					-Alex

Alex Elder (6):
  net: ipa: rename "tag status" symbols
  net: ipa: minor update to handling of packet with status
  net: ipa: drop packet if status has valid tag
  net: ipa: signal when tag transfer completes
  net: ipa: don't pass tag value to ipa_cmd_ip_tag_status_add()
  net: ipa: don't pass size to ipa_cmd_transfer_add()

 drivers/net/ipa/ipa.h          |  2 +
 drivers/net/ipa/ipa_cmd.c      | 45 +++++++++++++------
 drivers/net/ipa/ipa_cmd.h      | 24 ++++++-----
 drivers/net/ipa/ipa_endpoint.c | 79 ++++++++++++++++++++++++++--------
 drivers/net/ipa/ipa_main.c     |  1 +
 5 files changed, 109 insertions(+), 42 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-01-26 11:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-25 21:29 [PATCH net-next 0/6] net: ipa: hardware pipeline cleanup fixes Alex Elder
2021-01-25 21:29 ` [PATCH net-next 1/6] net: ipa: rename "tag status" symbols Alex Elder
2021-01-25 21:29 ` [PATCH net-next 2/6] net: ipa: minor update to handling of packet with status Alex Elder
2021-01-25 21:29 ` [PATCH net-next 3/6] net: ipa: drop packet if status has valid tag Alex Elder
2021-01-26  3:27   ` Jakub Kicinski
2021-01-26  4:24     ` Alex Elder
2021-01-25 21:29 ` [PATCH net-next 4/6] net: ipa: signal when tag transfer completes Alex Elder
2021-01-25 21:29 ` [PATCH net-next 5/6] net: ipa: don't pass tag value to ipa_cmd_ip_tag_status_add() Alex Elder
2021-01-25 21:29 ` [PATCH net-next 6/6] net: ipa: don't pass size to ipa_cmd_transfer_add() Alex Elder

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.