Lines Matching refs:agg
401 tid_info = rcu_dereference(sta_info->agg[tid]);
1132 struct sk_buff_head agg;
1148 __skb_queue_head_init(&agg);
1204 __skb_queue_tail(&agg, skb);
1206 if (skb_queue_len(&agg) >= CARL9170_NUM_TX_AGG_MAX)
1224 if (skb_queue_empty(&agg))
1228 carl9170_set_ampdu_params(ar, skb_peek(&agg));
1231 carl9170_set_immba(ar, skb_peek_tail(&agg));
1234 skb_queue_splice_tail_init(&agg, &ar->tx_pending[queue]);
1402 struct carl9170_sta_tid *agg;
1412 agg = rcu_dereference(sta_info->agg[tid]);
1414 if (!agg)
1417 spin_lock_bh(&agg->lock);
1418 if (unlikely(agg->state < CARL9170_TID_STATE_IDLE))
1422 if (unlikely(!BAW_WITHIN(agg->bsn, CARL9170_BAW_BITS, seq)))
1425 if (WARN_ON_ONCE(!BAW_WITHIN(agg->snx, CARL9170_BAW_BITS, seq)))
1428 off = SEQ_DIFF(seq, agg->bsn);
1429 if (WARN_ON_ONCE(test_and_set_bit(off, agg->bitmap)))
1432 if (likely(BAW_WITHIN(agg->hsn, CARL9170_BAW_BITS, seq))) {
1433 __skb_queue_tail(&agg->queue, skb);
1434 agg->hsn = seq;
1438 skb_queue_reverse_walk(&agg->queue, iter) {
1442 __skb_queue_after(&agg->queue, iter, skb);
1447 __skb_queue_head(&agg->queue, skb);
1450 if (unlikely(agg->state != CARL9170_TID_STATE_XMIT)) {
1451 if (agg->snx == carl9170_get_seq(skb_peek(&agg->queue))) {
1452 agg->state = CARL9170_TID_STATE_XMIT;
1457 spin_unlock_bh(&agg->lock);
1463 spin_unlock_bh(&agg->lock);