Lines Matching defs:agg
400 tid_info = rcu_dereference(sta_info->agg[tid]);
1129 struct sk_buff_head agg;
1145 __skb_queue_head_init(&agg);
1201 __skb_queue_tail(&agg, skb);
1203 if (skb_queue_len(&agg) >= CARL9170_NUM_TX_AGG_MAX)
1221 if (skb_queue_empty(&agg))
1225 carl9170_set_ampdu_params(ar, skb_peek(&agg));
1228 carl9170_set_immba(ar, skb_peek_tail(&agg));
1231 skb_queue_splice_tail_init(&agg, &ar->tx_pending[queue]);
1399 struct carl9170_sta_tid *agg;
1409 agg = rcu_dereference(sta_info->agg[tid]);
1411 if (!agg)
1414 spin_lock_bh(&agg->lock);
1415 if (unlikely(agg->state < CARL9170_TID_STATE_IDLE))
1419 if (unlikely(!BAW_WITHIN(agg->bsn, CARL9170_BAW_BITS, seq)))
1422 if (WARN_ON_ONCE(!BAW_WITHIN(agg->snx, CARL9170_BAW_BITS, seq)))
1425 off = SEQ_DIFF(seq, agg->bsn);
1426 if (WARN_ON_ONCE(test_and_set_bit(off, agg->bitmap)))
1429 if (likely(BAW_WITHIN(agg->hsn, CARL9170_BAW_BITS, seq))) {
1430 __skb_queue_tail(&agg->queue, skb);
1431 agg->hsn = seq;
1435 skb_queue_reverse_walk(&agg->queue, iter) {
1439 __skb_queue_after(&agg->queue, iter, skb);
1444 __skb_queue_head(&agg->queue, skb);
1447 if (unlikely(agg->state != CARL9170_TID_STATE_XMIT)) {
1448 if (agg->snx == carl9170_get_seq(skb_peek(&agg->queue))) {
1449 agg->state = CARL9170_TID_STATE_XMIT;
1454 spin_unlock_bh(&agg->lock);
1460 spin_unlock_bh(&agg->lock);