Re: [PATCH net-next v2 0/6] net: ipa: hardware pipeline cleanup fixes

From: Willem de Bruijn
Date: Wed Jan 27 2021 - 09:42:48 EST


On Wed, Jan 27, 2021 at 5:04 AM Alex Elder <elder@xxxxxxxxxx> wrote:
>
> Version 2 of this series fixes a "restricted __le16 degrades to
> integer" warning from sparse in the third patch. The normal host
> architecture is little-endian, so the problem did not produce
> incorrect behavior, but the code was wrong not to perform the
> endianness conversion. The updated patch uses le16_get_bits() to
> properly extract the value of the field we're interested in.
>
> Everything else remains the same. Below is the original description.
>
> -Alex
>
> 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(-)

For netdrv

Acked-by: Willem de Bruijn <willemb@xxxxxxxxxx>