From: Alex Elder Date: Mon, 4 May 2020 23:30:03 +0000 (-0500) Subject: net: ipa: only reset channel twice for IPA v3.5.1 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a3f2405b0462c31d0fb32ba6da72ede4e63c8a14;p=linux.git 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 Signed-off-by: David S. Miller --- diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c index cd5d8045c7e53..8ccbbb920c118 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);