From: Michal Kazior <michal.kaz...@tieto.com> This simplifies tx credit management and tries to address a problem where driver runs out of credits and is unable to recover when firmware stalls.
This also makes it a little more easy to track and debug htc tx credit flow since there should be no laziness involved. Signed-off-by: Michal Kazior <michal.kaz...@tieto.com> Tested-by: Ben Greear <gree...@candelatech.com> --- v2: This is Michal's patch originally. I think only CT firmware actually supports this properly, but should not hurt existing firmware. drivers/net/wireless/ath/ath10k/htc.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c index 676bd4e..7a6b9b0 100644 --- a/drivers/net/wireless/ath/ath10k/htc.c +++ b/drivers/net/wireless/ath/ath10k/htc.c @@ -86,21 +86,6 @@ static void ath10k_htc_notify_tx_completion(struct ath10k_htc_ep *ep, ep->ep_ops.ep_tx_complete(ep->htc->ar, skb); } -/* assumes tx_lock is held */ -static bool ath10k_htc_ep_need_credit_update(struct ath10k_htc_ep *ep) -{ - struct ath10k *ar = ep->htc->ar; - - if (!ep->tx_credit_flow_enabled) - return false; - if (ep->tx_credits >= ep->tx_credits_per_max_message) - return false; - - ath10k_dbg(ar, ATH10K_DBG_HTC, "HTC: endpoint %d needs credit update\n", - ep->eid); - return true; -} - static void ath10k_htc_prepare_tx_skb(struct ath10k_htc_ep *ep, struct sk_buff *skb) { @@ -115,7 +100,7 @@ static void ath10k_htc_prepare_tx_skb(struct ath10k_htc_ep *ep, spin_lock_bh(&ep->htc->tx_lock); hdr->seq_no = ep->seq_no++; - if (ath10k_htc_ep_need_credit_update(ep)) + if (ep->tx_credit_flow_enabled) hdr->flags |= ATH10K_HTC_FLAG_NEED_CREDIT_UPDATE; spin_unlock_bh(&ep->htc->tx_lock); -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html