Lines Matching refs:txq
733 struct ath5k_txq *txq, int padsize, in ath5k_txbuf_setup() argument
830 spin_lock_bh(&txq->lock); in ath5k_txbuf_setup()
831 list_add_tail(&bf->list, &txq->q); in ath5k_txbuf_setup()
832 txq->txq_len++; in ath5k_txbuf_setup()
833 if (txq->link == NULL) /* is this first packet? */ in ath5k_txbuf_setup()
834 ath5k_hw_set_txdp(ah, txq->qnum, bf->daddr); in ath5k_txbuf_setup()
836 *txq->link = bf->daddr; in ath5k_txbuf_setup()
838 txq->link = &ds->ds_link; in ath5k_txbuf_setup()
839 ath5k_hw_start_tx_dma(ah, txq->qnum); in ath5k_txbuf_setup()
840 spin_unlock_bh(&txq->lock); in ath5k_txbuf_setup()
977 struct ath5k_txq *txq; in ath5k_txq_setup() local
1010 txq = &ah->txqs[qnum]; in ath5k_txq_setup()
1011 if (!txq->setup) { in ath5k_txq_setup()
1012 txq->qnum = qnum; in ath5k_txq_setup()
1013 txq->link = NULL; in ath5k_txq_setup()
1014 INIT_LIST_HEAD(&txq->q); in ath5k_txq_setup()
1015 spin_lock_init(&txq->lock); in ath5k_txq_setup()
1016 txq->setup = true; in ath5k_txq_setup()
1017 txq->txq_len = 0; in ath5k_txq_setup()
1018 txq->txq_max = ATH5K_TXQ_LEN_MAX; in ath5k_txq_setup()
1019 txq->txq_poll_mark = false; in ath5k_txq_setup()
1020 txq->txq_stuck = 0; in ath5k_txq_setup()
1112 struct ath5k_txq *txq; in ath5k_drain_tx_buffs() local
1118 txq = &ah->txqs[i]; in ath5k_drain_tx_buffs()
1119 spin_lock_bh(&txq->lock); in ath5k_drain_tx_buffs()
1120 list_for_each_entry_safe(bf, bf0, &txq->q, list) { in ath5k_drain_tx_buffs()
1128 txq->txq_len--; in ath5k_drain_tx_buffs()
1131 txq->link = NULL; in ath5k_drain_tx_buffs()
1132 txq->txq_poll_mark = false; in ath5k_drain_tx_buffs()
1133 spin_unlock_bh(&txq->lock); in ath5k_drain_tx_buffs()
1141 struct ath5k_txq *txq = ah->txqs; in ath5k_txq_release() local
1144 for (i = 0; i < ARRAY_SIZE(ah->txqs); i++, txq++) in ath5k_txq_release()
1145 if (txq->setup) { in ath5k_txq_release()
1146 ath5k_hw_release_tx_queue(ah, txq->qnum); in ath5k_txq_release()
1147 txq->setup = false; in ath5k_txq_release()
1611 struct ath5k_txq *txq, struct ieee80211_tx_control *control) in ath5k_tx_queue() argument
1618 trace_ath5k_tx(ah, skb, txq); in ath5k_tx_queue()
1631 if (txq->txq_len >= txq->txq_max && in ath5k_tx_queue()
1632 txq->qnum <= AR5K_TX_QUEUE_ID_DATA_MAX) in ath5k_tx_queue()
1633 ieee80211_stop_queue(hw, txq->qnum); in ath5k_tx_queue()
1651 if (ath5k_txbuf_setup(ah, bf, txq, padsize, control)) { in ath5k_tx_queue()
1667 struct ath5k_txq *txq, struct ath5k_tx_status *ts, in ath5k_tx_frame_completed() argument
1727 trace_ath5k_tx_complete(ah, skb, txq, ts); in ath5k_tx_frame_completed()
1732 ath5k_tx_processq(struct ath5k_hw *ah, struct ath5k_txq *txq) in ath5k_tx_processq() argument
1740 spin_lock(&txq->lock); in ath5k_tx_processq()
1741 list_for_each_entry_safe(bf, bf0, &txq->q, list) { in ath5k_tx_processq()
1743 txq->txq_poll_mark = false; in ath5k_tx_processq()
1755 "queue %u\n", ret, txq->qnum); in ath5k_tx_processq()
1764 ath5k_tx_frame_completed(ah, skb, txq, &ts, bf); in ath5k_tx_processq()
1773 if (ath5k_hw_get_txdp(ah, txq->qnum) != bf->daddr) { in ath5k_tx_processq()
1777 txq->txq_len--; in ath5k_tx_processq()
1781 spin_unlock(&txq->lock); in ath5k_tx_processq()
1782 if (txq->txq_len < ATH5K_TXQ_LEN_LOW && txq->qnum < 4) in ath5k_tx_processq()
1783 ieee80211_wake_queue(ah->hw, txq->qnum); in ath5k_tx_processq()
2465 struct ath5k_txq *txq; in ath5k_tx_complete_poll_work() local
2476 txq = &ah->txqs[i]; in ath5k_tx_complete_poll_work()
2477 spin_lock_bh(&txq->lock); in ath5k_tx_complete_poll_work()
2478 if (txq->txq_len > 1) { in ath5k_tx_complete_poll_work()
2479 if (txq->txq_poll_mark) { in ath5k_tx_complete_poll_work()
2482 txq->qnum); in ath5k_tx_complete_poll_work()
2484 txq->txq_stuck++; in ath5k_tx_complete_poll_work()
2485 spin_unlock_bh(&txq->lock); in ath5k_tx_complete_poll_work()
2488 txq->txq_poll_mark = true; in ath5k_tx_complete_poll_work()
2491 spin_unlock_bh(&txq->lock); in ath5k_tx_complete_poll_work()
2986 struct ath5k_txq *txq; in ath5k_init() local
3036 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_VO); in ath5k_init()
3037 if (IS_ERR(txq)) { in ath5k_init()
3039 ret = PTR_ERR(txq); in ath5k_init()
3042 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_VI); in ath5k_init()
3043 if (IS_ERR(txq)) { in ath5k_init()
3045 ret = PTR_ERR(txq); in ath5k_init()
3048 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BE); in ath5k_init()
3049 if (IS_ERR(txq)) { in ath5k_init()
3051 ret = PTR_ERR(txq); in ath5k_init()
3054 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BK); in ath5k_init()
3055 if (IS_ERR(txq)) { in ath5k_init()
3057 ret = PTR_ERR(txq); in ath5k_init()
3063 txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BE); in ath5k_init()
3064 if (IS_ERR(txq)) { in ath5k_init()
3066 ret = PTR_ERR(txq); in ath5k_init()