Lines Matching refs:txqi
1317 struct txq_info *txqi;
1321 txqi = ctx;
1322 local = vif_to_sdata(txqi->txq.vif)->local;
1325 if (cvars == &txqi->def_cvars)
1326 flow = &txqi->def_flow;
1338 struct txq_info *txqi;
1340 txqi = ctx;
1341 local = vif_to_sdata(txqi->txq.vif)->local;
1352 struct txq_info *txqi;
1358 txqi = container_of(tin, struct txq_info, tin);
1359 cstats = &txqi->cstats;
1361 if (txqi->txq.sta) {
1362 struct sta_info *sta = container_of(txqi->txq.sta,
1369 if (flow == &txqi->def_flow)
1370 cvars = &txqi->def_cvars;
1374 return codel_dequeue(txqi,
1401 struct txq_info *txqi;
1403 txqi = container_of(tin, struct txq_info, tin);
1404 return &txqi->def_flow;
1408 struct txq_info *txqi,
1412 struct fq_tin *tin = &txqi->tin;
1437 struct txq_info *txqi;
1449 txqi = to_txq_info(ap->vif.txq);
1450 tin = &txqi->tin;
1460 struct txq_info *txqi, int tid)
1462 fq_tin_init(&txqi->tin);
1463 fq_flow_init(&txqi->def_flow);
1464 codel_vars_init(&txqi->def_cvars);
1465 codel_stats_init(&txqi->cstats);
1466 __skb_queue_head_init(&txqi->frags);
1467 INIT_LIST_HEAD(&txqi->schedule_order);
1469 txqi->txq.vif = &sdata->vif;
1472 sdata->vif.txq = &txqi->txq;
1473 txqi->txq.tid = 0;
1474 txqi->txq.ac = IEEE80211_AC_BE;
1490 txqi->txq.ac = IEEE80211_AC_VO;
1492 txqi->txq.ac = ieee80211_ac_from_tid(tid);
1495 txqi->txq.sta = &sta->sta;
1496 txqi->txq.tid = tid;
1497 sta->sta.txq[tid] = &txqi->txq;
1501 struct txq_info *txqi)
1504 struct fq_tin *tin = &txqi->tin;
1508 ieee80211_purge_tx_queue(&local->hw, &txqi->frags);
1511 spin_lock_bh(&local->active_txq_lock[txqi->txq.ac]);
1512 list_del_init(&txqi->schedule_order);
1513 spin_unlock_bh(&local->active_txq_lock[txqi->txq.ac]);
1609 struct txq_info *txqi;
1620 txqi = ieee80211_get_txq(local, vif, sta, skb);
1622 if (!txqi)
1625 ieee80211_txq_enqueue(local, txqi, skb);
1627 schedule_and_wake_txq(local, txqi);
3295 struct txq_info *txqi;
3319 txqi = to_txq_info(txq);
3320 if (test_bit(IEEE80211_TXQ_NO_AMSDU, &txqi->flags))
3339 tin = &txqi->tin;
3621 struct txq_info *txqi = container_of(txq, struct txq_info, txq);
3625 struct fq_tin *tin = &txqi->tin;
3639 if (test_bit(IEEE80211_TXQ_STOP, &txqi->flags) ||
3640 test_bit(IEEE80211_TXQ_STOP_NETIF_TX, &txqi->flags))
3644 set_bit(IEEE80211_TXQ_STOP_NETIF_TX, &txqi->flags);
3649 skb = __skb_dequeue(&txqi->frags);
3700 if (test_bit(IEEE80211_TXQ_AMPDU, &txqi->flags))
3728 skb_queue_splice_tail(&tx.skbs, &txqi->frags);
3800 struct txq_info *txqi = NULL, *head = NULL;
3806 txqi = list_first_entry_or_null(&local->active_txqs[ac],
3809 if (!txqi)
3812 if (txqi == head) {
3820 head = txqi;
3822 if (txqi->txq.sta) {
3823 struct sta_info *sta = container_of(txqi->txq.sta,
3825 bool aql_check = ieee80211_txq_airtime_check(hw, &txqi->txq);
3826 s64 deficit = sta->airtime[txqi->txq.ac].deficit;
3832 sta->airtime[txqi->txq.ac].deficit +=
3836 list_move_tail(&txqi->schedule_order,
3837 &local->active_txqs[txqi->txq.ac]);
3843 if (txqi->schedule_round == local->schedule_round[ac])
3846 list_del_init(&txqi->schedule_order);
3847 txqi->schedule_round = local->schedule_round[ac];
3848 ret = &txqi->txq;
3861 struct txq_info *txqi = to_txq_info(txq);
3865 if (list_empty(&txqi->schedule_order) &&
3866 (force || !skb_queue_empty(&txqi->frags) ||
3867 txqi->tin.backlog_packets)) {
3875 if (txqi->txq.sta && local->airtime_flags &&
3878 list_add(&txqi->schedule_order,
3881 list_add_tail(&txqi->schedule_order,
3920 struct txq_info *iter, *tmp, *txqi = to_txq_info(txq);
3926 if (!txqi->txq.sta)
3929 if (list_empty(&txqi->schedule_order))
3934 if (iter == txqi)
3948 sta = container_of(txqi->txq.sta, struct sta_info, sta);
3953 list_move_tail(&txqi->schedule_order, &local->active_txqs[ac]);
3958 if (!list_empty(&txqi->schedule_order))
3959 list_del_init(&txqi->schedule_order);