Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88e65fc3 authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo
Browse files

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: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent eeed3765
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -150,6 +150,9 @@ static int ath10k_htc_issue_skb(struct ath10k_htc *htc,
	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);
	}
+1 −0
Original line number Diff line number Diff line
@@ -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 */