ath10k: keep track of queue depth per txq
This will be necessary for later. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
dd4717b6f4
commit
3cc0fef617
@ -311,6 +311,7 @@ struct ath10k_peer {
|
||||
|
||||
struct ath10k_txq {
|
||||
struct list_head list;
|
||||
unsigned long num_fw_queued;
|
||||
};
|
||||
|
||||
struct ath10k_sta {
|
||||
|
@ -3669,6 +3669,7 @@ static int ath10k_mac_tx_push_txq(struct ieee80211_hw *hw,
|
||||
const bool is_presp = false;
|
||||
struct ath10k *ar = hw->priv;
|
||||
struct ath10k_htt *htt = &ar->htt;
|
||||
struct ath10k_txq *artxq = (void *)txq->drv_priv;
|
||||
struct ieee80211_vif *vif = txq->vif;
|
||||
struct ieee80211_sta *sta = txq->sta;
|
||||
enum ath10k_hw_txrx_mode txmode;
|
||||
@ -3708,6 +3709,10 @@ static int ath10k_mac_tx_push_txq(struct ieee80211_hw *hw,
|
||||
return ret;
|
||||
}
|
||||
|
||||
spin_lock_bh(&ar->htt.tx_lock);
|
||||
artxq->num_fw_queued++;
|
||||
spin_unlock_bh(&ar->htt.tx_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,9 @@ void ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
||||
struct ath10k *ar = htt->ar;
|
||||
struct device *dev = ar->dev;
|
||||
struct ieee80211_tx_info *info;
|
||||
struct ieee80211_txq *txq;
|
||||
struct ath10k_skb_cb *skb_cb;
|
||||
struct ath10k_txq *artxq;
|
||||
struct sk_buff *msdu;
|
||||
bool limit_mgmt_desc = false;
|
||||
|
||||
@ -80,11 +82,16 @@ void ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
||||
}
|
||||
|
||||
skb_cb = ATH10K_SKB_CB(msdu);
|
||||
txq = skb_cb->txq;
|
||||
artxq = (void *)txq->drv_priv;
|
||||
|
||||
if (unlikely(skb_cb->flags & ATH10K_SKB_F_MGMT) &&
|
||||
ar->hw_params.max_probe_resp_desc_thres)
|
||||
limit_mgmt_desc = true;
|
||||
|
||||
if (txq)
|
||||
artxq->num_fw_queued--;
|
||||
|
||||
ath10k_htt_tx_free_msdu_id(htt, tx_done->msdu_id);
|
||||
ath10k_htt_tx_dec_pending(htt, limit_mgmt_desc);
|
||||
if (htt->num_pending_tx == 0)
|
||||
|
Loading…
Reference in New Issue
Block a user