Lines Matching refs:txq
732 struct ath5k_txq *txq, int padsize, in ath5k_txbuf_setup() argument
829 spin_lock_bh(&txq->lock); in ath5k_txbuf_setup()
830 list_add_tail(&bf->list, &txq->q); in ath5k_txbuf_setup()
831 txq->txq_len++; in ath5k_txbuf_setup()
832 if (txq->link == NULL) /* is this first packet? */ in ath5k_txbuf_setup()
833 ath5k_hw_set_txdp(ah, txq->qnum, bf->daddr); in ath5k_txbuf_setup()
835 *txq->link = bf->daddr; in ath5k_txbuf_setup()
837 txq->link = &ds->ds_link; in ath5k_txbuf_setup()
838 ath5k_hw_start_tx_dma(ah, txq->qnum); in ath5k_txbuf_setup()
839 spin_unlock_bh(&txq->lock); in ath5k_txbuf_setup()
976 struct ath5k_txq *txq; in ath5k_txq_setup() local
1009 txq = &ah->txqs[qnum]; in ath5k_txq_setup()
1010 if (!txq->setup) { in ath5k_txq_setup()
1011 txq->qnum = qnum; in ath5k_txq_setup()
1012 txq->link = NULL; in ath5k_txq_setup()
1013 INIT_LIST_HEAD(&txq->q); in ath5k_txq_setup()
1014 spin_lock_init(&txq->lock); in ath5k_txq_setup()
1015 txq->setup = true; in ath5k_txq_setup()
1016 txq->txq_len = 0; in ath5k_txq_setup()
1017 txq->txq_max = ATH5K_TXQ_LEN_MAX; in ath5k_txq_setup()
1018 txq->txq_poll_mark = false; in ath5k_txq_setup()
1019 txq->txq_stuck = 0; in ath5k_txq_setup()
1111 struct ath5k_txq *txq; in ath5k_drain_tx_buffs() local
1117 txq = &ah->txqs[i]; in ath5k_drain_tx_buffs()
1118 spin_lock_bh(&txq->lock); in ath5k_drain_tx_buffs()
1119 list_for_each_entry_safe(bf, bf0, &txq->q, list) { in ath5k_drain_tx_buffs()
1127 txq->txq_len--; in ath5k_drain_tx_buffs()
1130 txq->link = NULL; in ath5k_drain_tx_buffs()
1131 txq->txq_poll_mark = false; in ath5k_drain_tx_buffs()
1132 spin_unlock_bh(&txq->lock); in ath5k_drain_tx_buffs()
1140 struct ath5k_txq *txq = ah->txqs; in ath5k_txq_release() local
1143 for (i = 0; i < ARRAY_SIZE(ah->txqs); i++, txq++) in ath5k_txq_release()
1144 if (txq->setup) { in ath5k_txq_release()
1145 ath5k_hw_release_tx_queue(ah, txq->qnum); in ath5k_txq_release()
1146 txq->setup = false; in ath5k_txq_release()
1610 struct ath5k_txq *txq, struct ieee80211_tx_control *control) in ath5k_tx_queue() argument
1617 trace_ath5k_tx(ah, skb, txq); in ath5k_tx_queue()
1630 if (txq->txq_len >= txq->txq_max && in ath5k_tx_queue()
1631 txq->qnum <= AR5K_TX_QUEUE_ID_DATA_MAX) in ath5k_tx_queue()
1632 ieee80211_stop_queue(hw, txq->qnum); in ath5k_tx_queue()
1650 if (ath5k_txbuf_setup(ah, bf, txq, padsize, control)) { in ath5k_tx_queue()
1666 struct ath5k_txq *txq, struct ath5k_tx_status *ts, in ath5k_tx_frame_completed() argument
1726 trace_ath5k_tx_complete(ah, skb, txq, ts); in ath5k_tx_frame_completed()
1731 ath5k_tx_processq(struct ath5k_hw *ah, struct ath5k_txq *txq) in ath5k_tx_processq() argument
1739 spin_lock(&txq->lock); in ath5k_tx_processq()
1740 list_for_each_entry_safe(bf, bf0, &txq->q, list) { in ath5k_tx_processq()
1742 txq->txq_poll_mark = false; in ath5k_tx_processq()
1754 "queue %u\n", ret, txq->qnum); in ath5k_tx_processq()
1763 ath5k_tx_frame_completed(ah, skb, txq, &ts, bf); in ath5k_tx_processq()
1772 if (ath5k_hw_get_txdp(ah, txq->qnum) != bf->daddr) { in ath5k_tx_processq()
1776 txq->txq_len--; in ath5k_tx_processq()
1780 spin_unlock(&txq->lock); in ath5k_tx_processq()
1781 if (txq->txq_len < ATH5K_TXQ_LEN_LOW && txq->qnum < 4) in ath5k_tx_processq()
1782 ieee80211_wake_queue(ah->hw, txq->qnum); in ath5k_tx_processq()
2464 struct ath5k_txq *txq; in ath5k_tx_complete_poll_work() local
2475 txq = &ah->txqs[i]; in ath5k_tx_complete_poll_work()
2476 spin_lock_bh(&txq->lock); in ath5k_tx_complete_poll_work()
2477 if (txq->txq_len > 1) { in ath5k_tx_complete_poll_work()
2478 if (txq->txq_poll_mark) { in ath5k_tx_complete_poll_work()
2481 txq->qnum); in ath5k_tx_complete_poll_work()
2483 txq->txq_stuck++; in ath5k_tx_complete_poll_work()
2484 spin_unlock_bh(&txq->lock); in ath5k_tx_complete_poll_work()
2487 txq->txq_poll_mark = true; in ath5k_tx_complete_poll_work()
2490 spin_unlock_bh(&txq->lock); in ath5k_tx_complete_poll_work()
2985 struct ath5k_txq *txq; in ath5k_init() local
3035 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_VO); in ath5k_init()
3036 if (IS_ERR(txq)) { in ath5k_init()
3038 ret = PTR_ERR(txq); in ath5k_init()
3041 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_VI); in ath5k_init()
3042 if (IS_ERR(txq)) { in ath5k_init()
3044 ret = PTR_ERR(txq); in ath5k_init()
3047 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BE); in ath5k_init()
3048 if (IS_ERR(txq)) { in ath5k_init()
3050 ret = PTR_ERR(txq); in ath5k_init()
3053 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BK); in ath5k_init()
3054 if (IS_ERR(txq)) { in ath5k_init()
3056 ret = PTR_ERR(txq); in ath5k_init()
3062 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BE); in ath5k_init()
3063 if (IS_ERR(txq)) { in ath5k_init()
3065 ret = PTR_ERR(txq); in ath5k_init()