diff options
author | Alex Elder | 2020-05-04 18:30:03 -0500 |
---|---|---|
committer | David S. Miller | 2020-05-06 17:36:04 -0700 |
commit | a3f2405b0462c31d0fb32ba6da72ede4e63c8a14 (patch) | |
tree | 6cfa1d0f23b19555803215c572dd721f90b72184 /drivers/net/ipa | |
parent | f86a1909ea2f9f418d168a7eadb5a773d075e25d (diff) |
net: ipa: only reset channel twice for IPA v3.5.1
In gsi_channel_reset(), RX channels are subjected to two consecutive
CHANNEL_RESET commands. This workaround should only be used for IPA
version 3.5.1, and for newer hardware "can lead to unwanted behavior."
Only issue the second CHANNEL_RESET command for legacy hardware.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ipa')
-rw-r--r-- | drivers/net/ipa/gsi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c index cd5d8045c7e5..8ccbbb920c11 100644 --- a/drivers/net/ipa/gsi.c +++ b/drivers/net/ipa/gsi.c @@ -840,9 +840,9 @@ void gsi_channel_reset(struct gsi *gsi, u32 channel_id, bool legacy) mutex_lock(&gsi->mutex); - /* Due to a hardware quirk we need to reset RX channels twice. */ gsi_channel_reset_command(channel); - if (!channel->toward_ipa) + /* Due to a hardware quirk we may need to reset RX channels twice. */ + if (legacy && !channel->toward_ipa) gsi_channel_reset_command(channel); gsi_channel_program(channel, legacy); |