OSDN Git Service

Merge branch 'net-ipa-hardware-pipeline-cleanup-fixes'
authorJakub Kicinski <kuba@kernel.org>
Fri, 29 Jan 2021 04:23:29 +0000 (20:23 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 29 Jan 2021 04:23:30 +0000 (20:23 -0800)
commit699e4bc8c363f06c8f2e138aeec15d6105edd1a5
tree03e0dcdedfbaea2ad8fd11b1705acb65224ad4d8
parent28af22c6c8dff6a16163e5b6a56211d5b535c97b
parent070740d389aa6baff32f2fa3593034675bf56d16
Merge branch 'net-ipa-hardware-pipeline-cleanup-fixes'

Alex Elder says:

====================
net: ipa: hardware pipeline cleanup fixes

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

Link: https://lore.kernel.org/r/20210126185703.29087-1-elder@linaro.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>