Lines Matching refs:tid

98     struct ath_atx_tid *tid, list_t *bf_list);
133 struct ath_atx_tid *tid; in arn_aggr_query() local
134 tid = ATH_AN_2_TID(an, tidno); in arn_aggr_query()
136 if (tid->state & AGGR_ADDBA_COMPLETE || in arn_aggr_query()
137 tid->state & AGGR_ADDBA_PROGRESS) in arn_aggr_query()
148 arn_tx_queue_tid(struct ath_txq *txq, struct ath_atx_tid *tid) in arn_tx_queue_tid() argument
150 struct ath_atx_ac *ac = tid->ac; in arn_tx_queue_tid()
153 if (tid->paused) in arn_tx_queue_tid()
157 if (tid->sched) in arn_tx_queue_tid()
160 tid->sched = B_TRUE; in arn_tx_queue_tid()
161 list_insert_tail(&ac->tid_q, &tid->list); in arn_tx_queue_tid()
173 arn_tx_pause_tid(struct arn_softc *sc, struct ath_atx_tid *tid) in arn_tx_pause_tid() argument
175 struct ath_txq *txq = &sc->sc_txq[tid->ac->qnum]; in arn_tx_pause_tid()
179 tid->paused++; in arn_tx_pause_tid()
186 arn_tx_resume_tid(struct arn_softc *sc, struct ath_atx_tid *tid) in arn_tx_resume_tid() argument
188 struct ath_txq *txq = &sc->sc_txq[tid->ac->qnum]; in arn_tx_resume_tid()
190 ASSERT(tid->paused > 0); in arn_tx_resume_tid()
193 tid->paused--; in arn_tx_resume_tid()
195 if (tid->paused > 0) in arn_tx_resume_tid()
198 if (list_empty(&tid->buf_q)) in arn_tx_resume_tid()
204 arn_tx_queue_tid(txq, tid); in arn_tx_resume_tid()
212 arn_tx_flush_tid(struct arn_softc *sc, struct ath_atx_tid *tid) in arn_tx_flush_tid() argument
214 struct ath_txq *txq = &sc->sc_txq[tid->ac->qnum]; in arn_tx_flush_tid()
221 ASSERT(tid->paused > 0); in arn_tx_flush_tid()
224 tid->paused--; in arn_tx_flush_tid()
226 if (tid->paused > 0) { in arn_tx_flush_tid()
231 while (!list_empty(&tid->buf_q)) { in arn_tx_flush_tid()
232 bf = list_head(&tid->buf_q); in arn_tx_flush_tid()
234 list_remove(&tid->buf_q, bf); in arn_tx_flush_tid()
236 arn_tx_send_ht_normal(sc, txq, tid, &list); in arn_tx_flush_tid()
244 arn_tx_update_baw(struct arn_softc *sc, struct ath_atx_tid *tid, int seqno) in arn_tx_update_baw() argument
248 index = ATH_BA_INDEX(tid->seq_start, seqno); in arn_tx_update_baw()
249 cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1); in arn_tx_update_baw()
251 tid->tx_buf[cindex] = NULL; in arn_tx_update_baw()
253 while (tid->baw_head != tid->baw_tail && !tid->tx_buf[tid->baw_head]) { in arn_tx_update_baw()
254 INCR(tid->seq_start, IEEE80211_SEQ_MAX); in arn_tx_update_baw()
255 INCR(tid->baw_head, ATH_TID_MAX_BUFS); in arn_tx_update_baw()
261 arn_tx_addto_baw(struct arn_softc *sc, struct ath_atx_tid *tid, in arn_tx_addto_baw() argument
269 index = ATH_BA_INDEX(tid->seq_start, bf->bf_seqno); in arn_tx_addto_baw()
270 cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1); in arn_tx_addto_baw()
272 ASSERT(tid->tx_buf[cindex] == NULL); in arn_tx_addto_baw()
273 tid->tx_buf[cindex] = bf; in arn_tx_addto_baw()
275 if (index >= ((tid->baw_tail - tid->baw_head) & in arn_tx_addto_baw()
277 tid->baw_tail = cindex; in arn_tx_addto_baw()
278 INCR(tid->baw_tail, ATH_TID_MAX_BUFS); in arn_tx_addto_baw()
291 struct ath_atx_tid *tid) in arn_tid_drain() argument
300 if (list_empty(&tid->buf_q)) in arn_tid_drain()
303 bf = list_head(&tid->buf_q); in arn_tid_drain()
304 list_remove(&tid->buf_q, bf); in arn_tid_drain()
308 arn_tx_update_baw(sc, tid, bf->bf_seqno); in arn_tid_drain()
315 tid->seq_next = tid->seq_start; in arn_tid_drain()
316 tid->baw_tail = tid->baw_head; in arn_tid_drain()
359 struct ath_atx_tid *tid = NULL; in arn_tx_complete_aggr() local
370 tid = ATH_AN_2_TID(an, bf->bf_tidno); in arn_tx_complete_aggr()
413 if (!(tid->state & AGGR_CLEANUP) && in arn_tx_complete_aggr()
449 arn_tx_update_baw(sc, tid, bf->bf_seqno); in arn_tx_complete_aggr()
493 if (tid->state & AGGR_CLEANUP) { in arn_tx_complete_aggr()
494 if (tid->baw_head == tid->baw_tail) { in arn_tx_complete_aggr()
495 tid->state &= ~AGGR_ADDBA_COMPLETE; in arn_tx_complete_aggr()
496 tid->addba_exchangeattempts = 0; in arn_tx_complete_aggr()
497 tid->state &= ~AGGR_CLEANUP; in arn_tx_complete_aggr()
500 arn_tx_flush_tid(sc, tid); in arn_tx_complete_aggr()
512 list_move_tail(&list_pending, &tid->buf_q); in arn_tx_complete_aggr()
513 arn_tx_queue_tid(txq, tid); in arn_tx_complete_aggr()
520 struct ath_atx_tid *tid) in arn_lookup_rate() argument
569 maxampdu = tid->an->maxampdu; in arn_lookup_rate()
582 arn_compute_num_delims(struct arn_softc *sc, struct ath_atx_tid *tid, in arn_compute_num_delims() argument
610 mpdudensity = tid->an->mpdudensity; in arn_compute_num_delims()
645 arn_tx_form_aggr(struct arn_softc *sc, struct ath_atx_tid *tid, in arn_tx_form_aggr() argument
652 al_delta, h_baw = tid->baw_size / 2; in arn_tx_form_aggr()
655 bf_first = list_head(&tid->buf_q); in arn_tx_form_aggr()
658 bf = list_head(&tid->buf_q); in arn_tx_form_aggr()
661 if (!BAW_WITHIN(tid->seq_start, tid->baw_size, bf->bf_seqno)) { in arn_tx_form_aggr()
667 aggr_limit = arn_lookup_rate(sc, bf, tid); in arn_tx_form_aggr()
695 arn_compute_num_delims(sc, tid, bf_first, bf->bf_frmlen); in arn_tx_form_aggr()
702 arn_tx_addto_baw(sc, tid, bf); in arn_tx_form_aggr()
704 list_remove(&tid->buf_q, bf); in arn_tx_form_aggr()
711 } while (!list_empty(&tid->buf_q)); in arn_tx_form_aggr()
722 struct ath_atx_tid *tid) in arn_tx_sched_aggr() argument
729 if (list_empty(&tid->buf_q)) in arn_tx_sched_aggr()
736 status = arn_tx_form_aggr(sc, tid, &bf_q); in arn_tx_sched_aggr()
774 uint16_t tid, uint16_t *ssn) in arn_tx_aggr_start() argument
782 txtid = ATH_AN_2_TID(an, tid); in arn_tx_aggr_start()
792 arn_tx_aggr_stop(struct arn_softc *sc, struct ieee80211_node *in, uint16_t tid) in arn_tx_aggr_stop() argument
795 struct ath_atx_tid *txtid = ATH_AN_2_TID(an, tid); in arn_tx_aggr_stop()
847 uint16_t tid) in arn_tx_aggr_resume() argument
855 txtid = ATH_AN_2_TID(an, tid); in arn_tx_aggr_resume()
890 struct ath_atx_tid *tid, *tid_tmp; in arn_txq_drain_pending_buffers() local
895 list_for_each_entry_safe(tid, tid_tmp, &ac->tid_q) { in arn_txq_drain_pending_buffers()
896 list_remove(&ac->tid_q, tid); in arn_txq_drain_pending_buffers()
897 tid->sched = B_FALSE; in arn_txq_drain_pending_buffers()
898 arn_tid_drain(sc, txq, tid); in arn_txq_drain_pending_buffers()
936 int tid = -1; in arn_test_get_txq() local
948 tid = qwh->i_qos[0] & IEEE80211_QOS_TID; in arn_test_get_txq()
949 switch (tid) { in arn_test_get_txq()
1004 struct ath_atx_tid *tid; in assign_aggr_tid_seqno() local
1038 tid = ATH_AN_2_TID(an, bf->bf_tidno); in assign_aggr_tid_seqno()
1041 LE_16(tid->seq_next << IEEE80211_SEQ_SEQ_SHIFT); in assign_aggr_tid_seqno()
1042 bf->bf_seqno = tid->seq_next; in assign_aggr_tid_seqno()
1044 INCR(tid->seq_next, IEEE80211_SEQ_MAX); in assign_aggr_tid_seqno()
1086 struct ath_atx_tid *tid, in arn_tx_send_ht_normal() argument
1095 INCR(tid->seq_start, IEEE80211_SEQ_MAX); in arn_tx_send_ht_normal()
2340 struct ath_atx_tid *tid; in arn_tx_node_init() local
2344 for (tidno = 0, tid = &an->tid[tidno]; tidno < WME_NUM_TID; in arn_tx_node_init()
2345 tidno++, tid++) { in arn_tx_node_init()
2346 tid->an = an; in arn_tx_node_init()
2347 tid->tidno = tidno; in arn_tx_node_init()
2348 tid->seq_start = tid->seq_next = 0; in arn_tx_node_init()
2349 tid->baw_size = WME_MAX_BA; in arn_tx_node_init()
2350 tid->baw_head = tid->baw_tail = 0; in arn_tx_node_init()
2351 tid->sched = B_FALSE; in arn_tx_node_init()
2352 tid->paused = B_FALSE; in arn_tx_node_init()
2353 tid->state &= ~AGGR_CLEANUP; in arn_tx_node_init()
2354 list_create(&tid->buf_q, sizeof (struct ath_buf), in arn_tx_node_init()
2357 tid->ac = &an->ac[acno]; in arn_tx_node_init()
2358 tid->state &= ~AGGR_ADDBA_COMPLETE; in arn_tx_node_init()
2359 tid->state &= ~AGGR_ADDBA_PROGRESS; in arn_tx_node_init()
2360 tid->addba_exchangeattempts = 0; in arn_tx_node_init()
2394 struct ath_atx_tid *tid, *tid_tmp; in arn_tx_node_cleanup() local
2405 tid = list_head(&ac->tid_q); in arn_tx_node_cleanup()
2406 if (tid && tid->an != an) in arn_tx_node_cleanup()
2411 list_for_each_entry_safe(tid, tid_tmp, in arn_tx_node_cleanup()
2413 list_remove(&ac->tid_q, tid); in arn_tx_node_cleanup()
2414 bf = list_head(&tid->buf_q); in arn_tx_node_cleanup()
2420 tid->sched = B_FALSE; in arn_tx_node_cleanup()
2421 arn_tid_drain(sc, txq, tid); in arn_tx_node_cleanup()
2422 tid->state &= ~AGGR_ADDBA_COMPLETE; in arn_tx_node_cleanup()
2423 tid->addba_exchangeattempts = 0; in arn_tx_node_cleanup()
2424 tid->state &= ~AGGR_CLEANUP; in arn_tx_node_cleanup()