Lines Matching refs:txqi
1364 struct txq_info *txqi; in codel_dequeue_func() local
1368 txqi = ctx; in codel_dequeue_func()
1369 local = vif_to_sdata(txqi->txq.vif)->local; in codel_dequeue_func()
1372 if (cvars == &txqi->def_cvars) in codel_dequeue_func()
1373 flow = &txqi->tin.default_flow; in codel_dequeue_func()
1385 struct txq_info *txqi; in codel_drop_func() local
1387 txqi = ctx; in codel_drop_func()
1388 local = vif_to_sdata(txqi->txq.vif)->local; in codel_drop_func()
1399 struct txq_info *txqi; in fq_tin_dequeue_func() local
1405 txqi = container_of(tin, struct txq_info, tin); in fq_tin_dequeue_func()
1406 cstats = &txqi->cstats; in fq_tin_dequeue_func()
1408 if (txqi->txq.sta) { in fq_tin_dequeue_func()
1409 struct sta_info *sta = container_of(txqi->txq.sta, in fq_tin_dequeue_func()
1417 cvars = &txqi->def_cvars; in fq_tin_dequeue_func()
1421 return codel_dequeue(txqi, in fq_tin_dequeue_func()
1444 struct txq_info *txqi, in ieee80211_txq_enqueue() argument
1448 struct fq_tin *tin = &txqi->tin; in ieee80211_txq_enqueue()
1460 if (unlikely(txqi->txq.tid == IEEE80211_NUM_TIDS)) { in ieee80211_txq_enqueue()
1463 __skb_queue_tail(&txqi->frags, skb); in ieee80211_txq_enqueue()
1484 struct txq_info *txqi; in ieee80211_txq_remove_vlan() local
1496 txqi = to_txq_info(ap->vif.txq); in ieee80211_txq_remove_vlan()
1497 tin = &txqi->tin; in ieee80211_txq_remove_vlan()
1507 struct txq_info *txqi, int tid) in ieee80211_txq_init() argument
1509 fq_tin_init(&txqi->tin); in ieee80211_txq_init()
1510 codel_vars_init(&txqi->def_cvars); in ieee80211_txq_init()
1511 codel_stats_init(&txqi->cstats); in ieee80211_txq_init()
1512 __skb_queue_head_init(&txqi->frags); in ieee80211_txq_init()
1513 INIT_LIST_HEAD(&txqi->schedule_order); in ieee80211_txq_init()
1515 txqi->txq.vif = &sdata->vif; in ieee80211_txq_init()
1518 sdata->vif.txq = &txqi->txq; in ieee80211_txq_init()
1519 txqi->txq.tid = 0; in ieee80211_txq_init()
1520 txqi->txq.ac = IEEE80211_AC_BE; in ieee80211_txq_init()
1536 txqi->txq.ac = IEEE80211_AC_VO; in ieee80211_txq_init()
1538 txqi->txq.ac = ieee80211_ac_from_tid(tid); in ieee80211_txq_init()
1541 txqi->txq.sta = &sta->sta; in ieee80211_txq_init()
1542 txqi->txq.tid = tid; in ieee80211_txq_init()
1543 sta->sta.txq[tid] = &txqi->txq; in ieee80211_txq_init()
1547 struct txq_info *txqi) in ieee80211_txq_purge() argument
1550 struct fq_tin *tin = &txqi->tin; in ieee80211_txq_purge()
1554 ieee80211_purge_tx_queue(&local->hw, &txqi->frags); in ieee80211_txq_purge()
1557 spin_lock_bh(&local->active_txq_lock[txqi->txq.ac]); in ieee80211_txq_purge()
1558 list_del_init(&txqi->schedule_order); in ieee80211_txq_purge()
1559 spin_unlock_bh(&local->active_txq_lock[txqi->txq.ac]); in ieee80211_txq_purge()
1649 struct txq_info *txqi; in ieee80211_queue_skb() local
1659 txqi = ieee80211_get_txq(local, vif, sta, skb); in ieee80211_queue_skb()
1661 if (!txqi) in ieee80211_queue_skb()
1664 ieee80211_txq_enqueue(local, txqi, skb); in ieee80211_queue_skb()
1666 schedule_and_wake_txq(local, txqi); in ieee80211_queue_skb()
3388 struct txq_info *txqi; in ieee80211_amsdu_aggregate() local
3418 txqi = to_txq_info(txq); in ieee80211_amsdu_aggregate()
3419 if (test_bit(IEEE80211_TXQ_NO_AMSDU, &txqi->flags)) in ieee80211_amsdu_aggregate()
3438 tin = &txqi->tin; in ieee80211_amsdu_aggregate()
3788 struct txq_info *txqi = container_of(txq, struct txq_info, txq); in ieee80211_tx_dequeue() local
3792 struct fq_tin *tin = &txqi->tin; in ieee80211_tx_dequeue()
3813 set_bit(IEEE80211_TXQ_DIRTY, &txqi->flags); in ieee80211_tx_dequeue()
3820 skb = __skb_dequeue(&txqi->frags); in ieee80211_tx_dequeue()
3828 if (unlikely(test_bit(IEEE80211_TXQ_STOP, &txqi->flags))) in ieee80211_tx_dequeue()
3880 if (test_bit(IEEE80211_TXQ_AMPDU, &txqi->flags)) in ieee80211_tx_dequeue()
3918 skb_queue_splice_tail(&tx.skbs, &txqi->frags); in ieee80211_tx_dequeue()
3994 ieee80211_txq_set_active(struct txq_info *txqi) in ieee80211_txq_set_active() argument
3998 if (!txqi->txq.sta) in ieee80211_txq_set_active()
4001 sta = container_of(txqi->txq.sta, struct sta_info, sta); in ieee80211_txq_set_active()
4002 sta->airtime[txqi->txq.ac].last_active = (u32)jiffies; in ieee80211_txq_set_active()
4006 ieee80211_txq_keep_active(struct txq_info *txqi) in ieee80211_txq_keep_active() argument
4011 if (!txqi->txq.sta) in ieee80211_txq_keep_active()
4014 sta = container_of(txqi->txq.sta, struct sta_info, sta); in ieee80211_txq_keep_active()
4015 if (ieee80211_sta_deficit(sta, txqi->txq.ac) >= 0) in ieee80211_txq_keep_active()
4018 diff = (u32)jiffies - sta->airtime[txqi->txq.ac].last_active; in ieee80211_txq_keep_active()
4027 struct txq_info *txqi = NULL, *head = NULL; in ieee80211_next_txq() local
4036 txqi = list_first_entry_or_null(&local->active_txqs[ac], in ieee80211_next_txq()
4039 if (!txqi) in ieee80211_next_txq()
4042 if (txqi == head) { in ieee80211_next_txq()
4050 head = txqi; in ieee80211_next_txq()
4052 if (txqi->txq.sta) { in ieee80211_next_txq()
4053 struct sta_info *sta = container_of(txqi->txq.sta, in ieee80211_next_txq()
4055 bool aql_check = ieee80211_txq_airtime_check(hw, &txqi->txq); in ieee80211_next_txq()
4056 s32 deficit = ieee80211_sta_deficit(sta, txqi->txq.ac); in ieee80211_next_txq()
4062 sta->airtime[txqi->txq.ac].deficit += in ieee80211_next_txq()
4066 list_move_tail(&txqi->schedule_order, in ieee80211_next_txq()
4067 &local->active_txqs[txqi->txq.ac]); in ieee80211_next_txq()
4072 if (txqi->schedule_round == local->schedule_round[ac]) in ieee80211_next_txq()
4075 list_del_init(&txqi->schedule_order); in ieee80211_next_txq()
4076 txqi->schedule_round = local->schedule_round[ac]; in ieee80211_next_txq()
4077 ret = &txqi->txq; in ieee80211_next_txq()
4090 struct txq_info *txqi = to_txq_info(txq); in __ieee80211_schedule_txq() local
4096 if (list_empty(&txqi->schedule_order) && in __ieee80211_schedule_txq()
4097 (has_queue || ieee80211_txq_keep_active(txqi))) { in __ieee80211_schedule_txq()
4105 if (txqi->txq.sta && local->airtime_flags && has_queue && in __ieee80211_schedule_txq()
4108 list_add(&txqi->schedule_order, in __ieee80211_schedule_txq()
4111 list_add_tail(&txqi->schedule_order, in __ieee80211_schedule_txq()
4114 ieee80211_txq_set_active(txqi); in __ieee80211_schedule_txq()
4179 struct txq_info *iter, *tmp, *txqi = to_txq_info(txq); in ieee80211_txq_may_transmit() local
4185 if (!txqi->txq.sta) in ieee80211_txq_may_transmit()
4188 if (list_empty(&txqi->schedule_order)) in ieee80211_txq_may_transmit()
4196 if (iter == txqi) in ieee80211_txq_may_transmit()
4210 sta = container_of(txqi->txq.sta, struct sta_info, sta); in ieee80211_txq_may_transmit()
4215 list_move_tail(&txqi->schedule_order, &local->active_txqs[ac]); in ieee80211_txq_may_transmit()
4220 if (!list_empty(&txqi->schedule_order)) in ieee80211_txq_may_transmit()
4221 list_del_init(&txqi->schedule_order); in ieee80211_txq_may_transmit()