Lines Matching refs:ac

360 		int ac;  in purge_old_ps_buffers()  local
362 for (ac = IEEE80211_AC_BK; ac >= IEEE80211_AC_VO; ac--) { in purge_old_ps_buffers()
363 skb = skb_dequeue(&sta->ps_tx_buf[ac]); in purge_old_ps_buffers()
364 total += skb_queue_len(&sta->ps_tx_buf[ac]); in purge_old_ps_buffers()
472 int ac = skb_get_queue_mapping(tx->skb); in ieee80211_tx_h_unicast_ps_buf() local
481 sta->sta.addr, sta->sta.aid, ac); in ieee80211_tx_h_unicast_ps_buf()
499 if (skb_queue_len(&sta->ps_tx_buf[ac]) >= STA_MAX_TX_BUFFER) { in ieee80211_tx_h_unicast_ps_buf()
500 struct sk_buff *old = skb_dequeue(&sta->ps_tx_buf[ac]); in ieee80211_tx_h_unicast_ps_buf()
503 sta->sta.addr, ac); in ieee80211_tx_h_unicast_ps_buf()
512 skb_queue_tail(&sta->ps_tx_buf[ac], tx->skb); in ieee80211_tx_h_unicast_ps_buf()
1025 int ac = -1; in ieee80211_tx_h_stats() local
1031 ac = skb_get_queue_mapping(skb); in ieee80211_tx_h_stats()
1032 tx->sta->deflink.tx_stats.bytes[ac] += skb->len; in ieee80211_tx_h_stats()
1034 if (ac >= 0) in ieee80211_tx_h_stats()
1035 tx->sta->deflink.tx_stats.packets[ac]++; in ieee80211_tx_h_stats()
1510 txqi->txq.ac = IEEE80211_AC_BE; in ieee80211_txq_init()
1526 txqi->txq.ac = IEEE80211_AC_VO; in ieee80211_txq_init()
1528 txqi->txq.ac = ieee80211_ac_from_tid(tid); in ieee80211_txq_init()
1547 spin_lock_bh(&local->active_txq_lock[txqi->txq.ac]); in ieee80211_txq_purge()
1549 spin_unlock_bh(&local->active_txq_lock[txqi->txq.ac]); in ieee80211_txq_purge()
3810 int q = vif->hw_queue[txq->ac]; in ieee80211_tx_dequeue()
3981 bool ampdu = txq->ac != IEEE80211_AC_VO; in ieee80211_tx_dequeue()
3989 txq->ac, in ieee80211_tx_dequeue()
4004 static inline s32 ieee80211_sta_deficit(struct sta_info *sta, u8 ac) in ieee80211_sta_deficit() argument
4006 struct airtime_info *air_info = &sta->airtime[ac]; in ieee80211_sta_deficit()
4020 sta->airtime[txqi->txq.ac].last_active = jiffies; in ieee80211_txq_set_active()
4032 if (ieee80211_sta_deficit(sta, txqi->txq.ac) >= 0) in ieee80211_txq_keep_active()
4035 return ieee80211_sta_keep_active(sta, txqi->txq.ac); in ieee80211_txq_keep_active()
4038 struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac) in ieee80211_next_txq() argument
4045 spin_lock_bh(&local->active_txq_lock[ac]); in ieee80211_next_txq()
4047 if (!local->schedule_round[ac]) in ieee80211_next_txq()
4051 txqi = list_first_entry_or_null(&local->active_txqs[ac], in ieee80211_next_txq()
4071 s32 deficit = ieee80211_sta_deficit(sta, txqi->txq.ac); in ieee80211_next_txq()
4077 sta->airtime[txqi->txq.ac].deficit += in ieee80211_next_txq()
4082 &local->active_txqs[txqi->txq.ac]); in ieee80211_next_txq()
4087 if (txqi->schedule_round == local->schedule_round[ac]) in ieee80211_next_txq()
4091 txqi->schedule_round = local->schedule_round[ac]; in ieee80211_next_txq()
4095 spin_unlock_bh(&local->active_txq_lock[ac]); in ieee80211_next_txq()
4108 spin_lock_bh(&local->active_txq_lock[txq->ac]); in __ieee80211_schedule_txq()
4126 &local->active_txqs[txq->ac]); in __ieee80211_schedule_txq()
4129 &local->active_txqs[txq->ac]); in __ieee80211_schedule_txq()
4134 spin_unlock_bh(&local->active_txq_lock[txq->ac]); in __ieee80211_schedule_txq()
4159 if (atomic_read(&sta->airtime[txq->ac].aql_tx_pending) < in ieee80211_txq_airtime_check()
4160 sta->airtime[txq->ac].aql_limit_low) in ieee80211_txq_airtime_check()
4165 atomic_read(&sta->airtime[txq->ac].aql_tx_pending) < in ieee80211_txq_airtime_check()
4166 sta->airtime[txq->ac].aql_limit_high) in ieee80211_txq_airtime_check()
4174 ieee80211_txq_schedule_airtime_check(struct ieee80211_local *local, u8 ac) in ieee80211_txq_schedule_airtime_check() argument
4183 list_for_each_entry(txq, &local->active_txqs[ac], schedule_order) in ieee80211_txq_schedule_airtime_check()
4186 aql_limit = (num_txq - 1) * local->aql_txq_limit_low[ac] / 2 + in ieee80211_txq_schedule_airtime_check()
4187 local->aql_txq_limit_high[ac]; in ieee80211_txq_schedule_airtime_check()
4189 return atomic_read(&local->aql_ac_pending_airtime[ac]) < aql_limit; in ieee80211_txq_schedule_airtime_check()
4198 u8 ac = txq->ac; in ieee80211_txq_may_transmit() local
4200 spin_lock_bh(&local->active_txq_lock[ac]); in ieee80211_txq_may_transmit()
4208 if (!ieee80211_txq_schedule_airtime_check(local, ac)) in ieee80211_txq_may_transmit()
4211 list_for_each_entry_safe(iter, tmp, &local->active_txqs[ac], in ieee80211_txq_may_transmit()
4218 &local->active_txqs[ac]); in ieee80211_txq_may_transmit()
4222 if (ieee80211_sta_deficit(sta, ac) < 0) in ieee80211_txq_may_transmit()
4223 sta->airtime[ac].deficit += sta->airtime_weight; in ieee80211_txq_may_transmit()
4224 list_move_tail(&iter->schedule_order, &local->active_txqs[ac]); in ieee80211_txq_may_transmit()
4228 if (sta->airtime[ac].deficit >= 0) in ieee80211_txq_may_transmit()
4231 sta->airtime[ac].deficit += sta->airtime_weight; in ieee80211_txq_may_transmit()
4232 list_move_tail(&txqi->schedule_order, &local->active_txqs[ac]); in ieee80211_txq_may_transmit()
4233 spin_unlock_bh(&local->active_txq_lock[ac]); in ieee80211_txq_may_transmit()
4239 spin_unlock_bh(&local->active_txq_lock[ac]); in ieee80211_txq_may_transmit()
4245 void ieee80211_txq_schedule_start(struct ieee80211_hw *hw, u8 ac) in ieee80211_txq_schedule_start() argument
4249 spin_lock_bh(&local->active_txq_lock[ac]); in ieee80211_txq_schedule_start()
4251 if (ieee80211_txq_schedule_airtime_check(local, ac)) { in ieee80211_txq_schedule_start()
4252 local->schedule_round[ac]++; in ieee80211_txq_schedule_start()
4253 if (!local->schedule_round[ac]) in ieee80211_txq_schedule_start()
4254 local->schedule_round[ac]++; in ieee80211_txq_schedule_start()
4256 local->schedule_round[ac] = 0; in ieee80211_txq_schedule_start()
4259 spin_unlock_bh(&local->active_txq_lock[ac]); in ieee80211_txq_schedule_start()
6139 int ac = ieee80211_ac_from_tid(tid); in __ieee80211_tx_skb_tid_band() local
6143 skb_set_queue_mapping(skb, ac); in __ieee80211_tx_skb_tid_band()