diff options
author | Alex Elder <elder@linaro.org> | 2020-05-04 18:53:43 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-05-06 17:41:11 -0700 |
commit | 9928fcc76f7bb5c93d512767b039e8257ab3093e (patch) | |
tree | 9b8d569b59d218c5a18b30c5807caf70228f80f9 /drivers/net/ipa | |
parent | c72ddf0dbf2d9d80afd37e28f0a52e728e6db159 (diff) | |
download | linux-9928fcc76f7bb5c93d512767b039e8257ab3093e.tar.bz2 |
net: ipa: don't retry in ipa_endpoint_stop()
The only reason ipa_endpoint_stop() had a retry loop was that the
just-removed workaround required an IPA DMA command to occur between
attempts. The gsi_channel_stop() call that implements the stop does
its own retry loop, to cover a channel's transition from started to
stop-in-progress to stopped state.
Get rid of the unnecessary retry loop in ipa_endpoint_stop().
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/ipa_endpoint.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c index 7176ae892e75..68ba33ec7ce9 100644 --- a/drivers/net/ipa/ipa_endpoint.c +++ b/drivers/net/ipa/ipa_endpoint.c @@ -32,8 +32,6 @@ /* The amount of RX buffer space consumed by standard skb overhead */ #define IPA_RX_BUFFER_OVERHEAD (PAGE_SIZE - SKB_MAX_ORDER(NET_SKB_PAD, 0)) -#define IPA_ENDPOINT_STOP_RX_RETRIES 10 - #define IPA_ENDPOINT_RESET_AGGR_RETRY_MAX 3 #define IPA_AGGR_TIME_LIMIT_DEFAULT 1000 /* microseconds */ @@ -1282,20 +1280,9 @@ static void ipa_endpoint_reset(struct ipa_endpoint *endpoint) */ int ipa_endpoint_stop(struct ipa_endpoint *endpoint) { - u32 retries = IPA_ENDPOINT_STOP_RX_RETRIES; - int ret; - - do { - struct gsi *gsi = &endpoint->ipa->gsi; - - ret = gsi_channel_stop(gsi, endpoint->channel_id); - if (ret != -EAGAIN || endpoint->toward_ipa) - break; - - msleep(1); - } while (retries--); + struct gsi *gsi = &endpoint->ipa->gsi; - return retries ? ret : -EIO; + return gsi_channel_stop(gsi, endpoint->channel_id); } static void ipa_endpoint_program(struct ipa_endpoint *endpoint) |