ath10k: add HTC TX credits replenishing notification
This will allow higher layers to anticipate and act upon TX credits renewal. This will be important for some future rework of WMI command submission. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
committed by
Kalle Valo
parent
eeed3765f3
commit
88e65fc337
@@ -150,6 +150,9 @@ err:
|
||||
ep->tx_credits += credits;
|
||||
spin_unlock_bh(&htc->tx_lock);
|
||||
|
||||
if (ep->ep_ops.ep_tx_credits)
|
||||
ep->ep_ops.ep_tx_credits(htc->ar);
|
||||
|
||||
/* this is the simplest way to handle out-of-resources for non-credit
|
||||
* based endpoints. credit based endpoints can still get -ENOSR, but
|
||||
* this is highly unlikely as credit reservation should prevent that */
|
||||
@@ -302,6 +305,12 @@ ath10k_htc_process_credit_report(struct ath10k_htc *htc,
|
||||
ep = &htc->endpoint[report->eid];
|
||||
ep->tx_credits += report->credits;
|
||||
|
||||
if (ep->ep_ops.ep_tx_credits) {
|
||||
spin_unlock_bh(&htc->tx_lock);
|
||||
ep->ep_ops.ep_tx_credits(htc->ar);
|
||||
spin_lock_bh(&htc->tx_lock);
|
||||
}
|
||||
|
||||
if (ep->tx_credits && !skb_queue_empty(&ep->tx_queue))
|
||||
queue_work(htc->ar->workqueue, &ep->send_work);
|
||||
}
|
||||
|
@@ -276,6 +276,7 @@ struct ath10k_htc_ops {
|
||||
struct ath10k_htc_ep_ops {
|
||||
void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
|
||||
void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
|
||||
void (*ep_tx_credits)(struct ath10k *);
|
||||
};
|
||||
|
||||
/* service connection information */
|
||||
|
Reference in New Issue
Block a user