Lines Matching refs:mtxq

124 mt76_txq_dequeue(struct mt76_dev *dev, struct mt76_txq *mtxq, bool ps)  in mt76_txq_dequeue()  argument
126 struct ieee80211_txq *txq = mtxq_to_txq(mtxq); in mt76_txq_dequeue()
129 skb = skb_dequeue(&mtxq->retry_q); in mt76_txq_dequeue()
133 if (ps && skb_queue_empty(&mtxq->retry_q)) in mt76_txq_dequeue()
147 mt76_check_agg_ssn(struct mt76_txq *mtxq, struct sk_buff *skb) in mt76_check_agg_ssn() argument
154 mtxq->agg_ssn = le16_to_cpu(hdr->seq_ctrl) + 0x10; in mt76_check_agg_ssn()
187 struct mt76_txq *mtxq = (struct mt76_txq *) txq->drv_priv; in mt76_release_buffered_frames() local
194 skb = mt76_txq_dequeue(dev, mtxq, true); in mt76_release_buffered_frames()
198 if (mtxq->aggr) in mt76_release_buffered_frames()
199 mt76_check_agg_ssn(mtxq, skb); in mt76_release_buffered_frames()
219 struct mt76_txq *mtxq, bool *empty) in mt76_txq_send_burst() argument
221 struct ieee80211_txq *txq = mtxq_to_txq(mtxq); in mt76_txq_send_burst()
223 struct mt76_wcid *wcid = mtxq->wcid; in mt76_txq_send_burst()
231 skb = mt76_txq_dequeue(dev, mtxq, false); in mt76_txq_send_burst()
248 mt76_check_agg_ssn(mtxq, skb); in mt76_txq_send_burst()
265 skb = mt76_txq_dequeue(dev, mtxq, false); in mt76_txq_send_burst()
276 skb_queue_tail(&mtxq->retry_q, skb); in mt76_txq_send_burst()
283 mt76_check_agg_ssn(mtxq, skb); in mt76_txq_send_burst()
306 struct mt76_txq *mtxq, *mtxq_last; in mt76_txq_schedule_list() local
319 mtxq = list_first_entry(&hwq->swq, struct mt76_txq, list); in mt76_txq_schedule_list()
320 if (mtxq->send_bar && mtxq->aggr) { in mt76_txq_schedule_list()
321 struct ieee80211_txq *txq = mtxq_to_txq(mtxq); in mt76_txq_schedule_list()
324 u16 agg_ssn = mtxq->agg_ssn; in mt76_txq_schedule_list()
327 mtxq->send_bar = false; in mt76_txq_schedule_list()
334 list_del_init(&mtxq->list); in mt76_txq_schedule_list()
336 cur = mt76_txq_send_burst(dev, hwq, mtxq, &empty); in mt76_txq_schedule_list()
338 list_add_tail(&mtxq->list, &hwq->swq); in mt76_txq_schedule_list()
345 if (mtxq == mtxq_last) in mt76_txq_schedule_list()
388 struct mt76_txq *mtxq = (struct mt76_txq *) txq->drv_priv; in mt76_stop_tx_queues() local
390 spin_lock_bh(&mtxq->hwq->lock); in mt76_stop_tx_queues()
391 mtxq->send_bar = mtxq->aggr && send_bar; in mt76_stop_tx_queues()
392 if (!list_empty(&mtxq->list)) in mt76_stop_tx_queues()
393 list_del_init(&mtxq->list); in mt76_stop_tx_queues()
394 spin_unlock_bh(&mtxq->hwq->lock); in mt76_stop_tx_queues()
402 struct mt76_txq *mtxq = (struct mt76_txq *) txq->drv_priv; in mt76_wake_tx_queue() local
403 struct mt76_queue *hwq = mtxq->hwq; in mt76_wake_tx_queue()
406 if (list_empty(&mtxq->list)) in mt76_wake_tx_queue()
407 list_add_tail(&mtxq->list, &hwq->swq); in mt76_wake_tx_queue()
415 struct mt76_txq *mtxq; in mt76_txq_remove() local
422 mtxq = (struct mt76_txq *) txq->drv_priv; in mt76_txq_remove()
423 hwq = mtxq->hwq; in mt76_txq_remove()
426 if (!list_empty(&mtxq->list)) in mt76_txq_remove()
427 list_del(&mtxq->list); in mt76_txq_remove()
430 while ((skb = skb_dequeue(&mtxq->retry_q)) != NULL) in mt76_txq_remove()
437 struct mt76_txq *mtxq = (struct mt76_txq *) txq->drv_priv; in mt76_txq_init() local
439 INIT_LIST_HEAD(&mtxq->list); in mt76_txq_init()
440 skb_queue_head_init(&mtxq->retry_q); in mt76_txq_init()
442 mtxq->hwq = &dev->q_tx[mt76_txq_get_qid(txq)]; in mt76_txq_init()