Message ID | 20210126185703.29087-1-elder@linaro.org |
---|---|
Headers | show |
Series | net: ipa: hardware pipeline cleanup fixes | expand |
On Wed, Jan 27, 2021 at 5:04 AM Alex Elder <elder@linaro.org> 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@google.com>
Hello: This series was applied to netdev/net-next.git (refs/heads/master): On Tue, 26 Jan 2021 12:56:57 -0600 you 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. > > [...] Here is the summary with links: - [net-next,v2,1/6] net: ipa: rename "tag status" symbols https://git.kernel.org/netdev/net-next/c/aa56e3e5cdb4 - [net-next,v2,2/6] net: ipa: minor update to handling of packet with status https://git.kernel.org/netdev/net-next/c/162fbc6f4519 - [net-next,v2,3/6] net: ipa: drop packet if status has valid tag https://git.kernel.org/netdev/net-next/c/f6aba7b5199a - [net-next,v2,4/6] net: ipa: signal when tag transfer completes https://git.kernel.org/netdev/net-next/c/51c48ce264f8 - [net-next,v2,5/6] net: ipa: don't pass tag value to ipa_cmd_ip_tag_status_add() https://git.kernel.org/netdev/net-next/c/792b75b14786 - [net-next,v2,6/6] net: ipa: don't pass size to ipa_cmd_transfer_add() https://git.kernel.org/netdev/net-next/c/070740d389aa You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html