]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
net: ipa: retry TX channel stop commands
authorAlex Elder <elder@linaro.org>
Wed, 13 Jan 2021 17:15:32 +0000 (11:15 -0600)
committerJakub Kicinski <kuba@kernel.org>
Fri, 15 Jan 2021 01:40:11 +0000 (17:40 -0800)
For RX channels we issue a stop command more than once if necessary
to allow it to stop.  It turns out that TX channels could also
require retries.

Retry channel stop commands if necessary regardless of the channel
direction.  Rename the symbol defining the retry count so it's not
RX-specific.

Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ipa/gsi.c

index 5c163f9c0ea7b809f3a06465e9556dac8e5f2664..5b29f7d9d6ac1f09f39338bbbaf31c0b244c7ddd 100644 (file)
@@ -91,7 +91,7 @@
 
 #define GSI_CMD_TIMEOUT                        50      /* milliseconds */
 
-#define GSI_CHANNEL_STOP_RX_RETRIES    10
+#define GSI_CHANNEL_STOP_RETRIES       10
 #define GSI_CHANNEL_MODEM_HALT_RETRIES 10
 
 #define GSI_MHI_EVENT_ID_START         10      /* 1st reserved event id */
@@ -889,14 +889,11 @@ int gsi_channel_start(struct gsi *gsi, u32 channel_id)
 int gsi_channel_stop(struct gsi *gsi, u32 channel_id)
 {
        struct gsi_channel *channel = &gsi->channel[channel_id];
-       u32 retries;
+       u32 retries = GSI_CHANNEL_STOP_RETRIES;
        int ret;
 
        gsi_channel_freeze(channel);
 
-       /* RX channels might require a little time to enter STOPPED state */
-       retries = channel->toward_ipa ? 0 : GSI_CHANNEL_STOP_RX_RETRIES;
-
        mutex_lock(&gsi->mutex);
 
        do {