Lines Matching refs:txqi

1364 	struct txq_info *txqi;
1368 txqi = ctx;
1369 local = vif_to_sdata(txqi->txq.vif)->local;
1372 if (cvars == &txqi->def_cvars)
1373 flow = &txqi->tin.default_flow;
1385 struct txq_info *txqi;
1387 txqi = ctx;
1388 local = vif_to_sdata(txqi->txq.vif)->local;
1399 struct txq_info *txqi;
1405 txqi = container_of(tin, struct txq_info, tin);
1406 cstats = &txqi->cstats;
1408 if (txqi->txq.sta) {
1409 struct sta_info *sta = container_of(txqi->txq.sta,
1417 cvars = &txqi->def_cvars;
1421 return codel_dequeue(txqi,
1444 struct txq_info *txqi,
1448 struct fq_tin *tin = &txqi->tin;
1458 * txqi.
1460 if (unlikely(txqi->txq.tid == IEEE80211_NUM_TIDS)) {
1463 __skb_queue_tail(&txqi->frags, skb);
1484 struct txq_info *txqi;
1496 txqi = to_txq_info(ap->vif.txq);
1497 tin = &txqi->tin;
1507 struct txq_info *txqi, int tid)
1509 fq_tin_init(&txqi->tin);
1510 codel_vars_init(&txqi->def_cvars);
1511 codel_stats_init(&txqi->cstats);
1512 __skb_queue_head_init(&txqi->frags);
1513 INIT_LIST_HEAD(&txqi->schedule_order);
1515 txqi->txq.vif = &sdata->vif;
1518 sdata->vif.txq = &txqi->txq;
1519 txqi->txq.tid = 0;
1520 txqi->txq.ac = IEEE80211_AC_BE;
1536 txqi->txq.ac = IEEE80211_AC_VO;
1538 txqi->txq.ac = ieee80211_ac_from_tid(tid);
1541 txqi->txq.sta = &sta->sta;
1542 txqi->txq.tid = tid;
1543 sta->sta.txq[tid] = &txqi->txq;
1547 struct txq_info *txqi)
1550 struct fq_tin *tin = &txqi->tin;
1554 ieee80211_purge_tx_queue(&local->hw, &txqi->frags);
1557 spin_lock_bh(&local->active_txq_lock[txqi->txq.ac]);
1558 list_del_init(&txqi->schedule_order);
1559 spin_unlock_bh(&local->active_txq_lock[txqi->txq.ac]);
1649 struct txq_info *txqi;
1659 txqi = ieee80211_get_txq(local, vif, sta, skb);
1661 if (!txqi)
1664 ieee80211_txq_enqueue(local, txqi, skb);
1666 schedule_and_wake_txq(local, txqi);
3389 struct txq_info *txqi;
3419 txqi = to_txq_info(txq);
3420 if (test_bit(IEEE80211_TXQ_NO_AMSDU, &txqi->flags))
3439 tin = &txqi->tin;
3789 struct txq_info *txqi = container_of(txq, struct txq_info, txq);
3793 struct fq_tin *tin = &txqi->tin;
3814 set_bit(IEEE80211_TXQ_DIRTY, &txqi->flags);
3821 skb = __skb_dequeue(&txqi->frags);
3829 if (unlikely(test_bit(IEEE80211_TXQ_STOP, &txqi->flags)))
3881 if (test_bit(IEEE80211_TXQ_AMPDU, &txqi->flags))
3920 skb_queue_splice_tail(&tx.skbs, &txqi->frags);
3996 ieee80211_txq_set_active(struct txq_info *txqi)
4000 if (!txqi->txq.sta)
4003 sta = container_of(txqi->txq.sta, struct sta_info, sta);
4004 sta->airtime[txqi->txq.ac].last_active = (u32)jiffies;
4008 ieee80211_txq_keep_active(struct txq_info *txqi)
4013 if (!txqi->txq.sta)
4016 sta = container_of(txqi->txq.sta, struct sta_info, sta);
4017 if (ieee80211_sta_deficit(sta, txqi->txq.ac) >= 0)
4020 diff = (u32)jiffies - sta->airtime[txqi->txq.ac].last_active;
4029 struct txq_info *txqi = NULL, *head = NULL;
4038 txqi = list_first_entry_or_null(&local->active_txqs[ac],
4041 if (!txqi)
4044 if (txqi == head) {
4052 head = txqi;
4054 if (txqi->txq.sta) {
4055 struct sta_info *sta = container_of(txqi->txq.sta,
4057 bool aql_check = ieee80211_txq_airtime_check(hw, &txqi->txq);
4058 s32 deficit = ieee80211_sta_deficit(sta, txqi->txq.ac);
4064 sta->airtime[txqi->txq.ac].deficit +=
4068 list_move_tail(&txqi->schedule_order,
4069 &local->active_txqs[txqi->txq.ac]);
4074 if (txqi->schedule_round == local->schedule_round[ac])
4077 list_del_init(&txqi->schedule_order);
4078 txqi->schedule_round = local->schedule_round[ac];
4079 ret = &txqi->txq;
4092 struct txq_info *txqi = to_txq_info(txq);
4098 if (list_empty(&txqi->schedule_order) &&
4099 (has_queue || ieee80211_txq_keep_active(txqi))) {
4107 if (txqi->txq.sta && local->airtime_flags && has_queue &&
4110 list_add(&txqi->schedule_order,
4113 list_add_tail(&txqi->schedule_order,
4116 ieee80211_txq_set_active(txqi);
4181 struct txq_info *iter, *tmp, *txqi = to_txq_info(txq);
4187 if (!txqi->txq.sta)
4190 if (list_empty(&txqi->schedule_order))
4198 if (iter == txqi)
4212 sta = container_of(txqi->txq.sta, struct sta_info, sta);
4217 list_move_tail(&txqi->schedule_order, &local->active_txqs[ac]);
4222 if (!list_empty(&txqi->schedule_order))
4223 list_del_init(&txqi->schedule_order);