Lines Matching defs:tid

294 	u8 sta_id, tid = IWL_MAX_TID_COUNT;
404 tid = qc[0] & IEEE80211_QOS_CTL_TID_MASK;
405 if (WARN_ON_ONCE(tid >= IWL_MAX_TID_COUNT))
407 tid_data = &priv->tid_data[sta_id][tid];
409 /* aggregation is on for this <sta,tid> */
415 IWL_ERR(priv, "sta_id = %d, tid = %d seq_num = %d",
416 sta_id, tid, SEQ_TO_SN(tid_data->seq_number));
438 if (iwl_trans_tx(trans(priv), skb, dev_cmd, ctx->ctxid, sta_id, tid))
443 priv->tid_data[sta_id][tid].seq_number = seq_number;
468 struct ieee80211_sta *sta, u16 tid)
476 IWL_ERR(priv, "Invalid station for AGG tid %d\n", tid);
482 tid_data = &priv->tid_data[sta_id][tid];
484 switch (priv->tid_data[sta_id][tid].agg.state) {
498 "or starting for %d on %d (%d)\n", sta_id, tid,
499 priv->tid_data[sta_id][tid].agg.state);
512 priv->tid_data[sta_id][tid].agg.state =
521 priv->tid_data[sta_id][tid].agg.state = IWL_AGG_OFF;
525 iwl_trans_tx_agg_disable(trans(priv), sta_id, tid);
527 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
533 struct ieee80211_sta *sta, u16 tid, u16 *ssn)
539 IWL_DEBUG_HT(priv, "TX AGG request on ra = %pM tid = %d\n",
540 sta->addr, tid);
547 if (unlikely(tid >= IWL_MAX_TID_COUNT))
550 if (priv->tid_data[sta_id][tid].agg.state != IWL_AGG_OFF) {
555 ret = iwl_sta_tx_modify_enable_tid(priv, sta_id, tid);
561 tid_data = &priv->tid_data[sta_id][tid];
566 ret = iwl_trans_tx_agg_alloc(trans(priv), sta_id, tid);
576 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
591 struct ieee80211_sta *sta, u16 tid, u8 buf_size)
600 ssn = priv->tid_data[sta_priv->sta_id][tid].agg.ssn;
603 iwl_trans_tx_agg_setup(trans(priv), ctx->ctxid, sta_priv->sta_id, tid,
642 IWL_DEBUG_HT(priv, "Tx aggregation enabled on ra = %pM tid = %d\n",
643 sta->addr, tid);
649 static void iwlagn_check_ratid_empty(struct iwl_priv *priv, int sta_id, u8 tid)
651 struct iwl_tid_data *tid_data = &priv->tid_data[sta_id][tid];
662 switch (priv->tid_data[sta_id][tid].agg.state) {
669 iwl_trans_tx_agg_disable(trans(priv), sta_id, tid);
671 ieee80211_stop_tx_ba_cb_irqsafe(vif, addr, tid);
681 ieee80211_start_tx_ba_cb_irqsafe(vif, addr, tid);
822 int tid = (tx_resp->ra_tid & IWLAGN_TX_RES_TID_MSK) >>
826 struct iwl_ht_agg *agg = &priv->tid_data[sta_id][tid].agg;
830 WARN_ON(tid == IWL_TID_NON_QOS);
1019 int tid;
1028 tid = (tx_resp->ra_tid & IWLAGN_TX_RES_TID_MSK) >>
1059 if (tid != IWL_TID_NON_QOS) {
1060 priv->tid_data[sta_id][tid].next_reclaimed =
1067 WARN_ON(iwl_trans_reclaim(trans(priv), sta_id, tid,
1069 iwlagn_check_ratid_empty(priv, sta_id, tid);
1152 int tid;
1169 tid = ba_resp->tid;
1170 agg = &priv->tid_data[sta_id][tid].agg;
1186 if (iwl_trans_reclaim(trans(priv), sta_id, tid, scd_flow,
1199 ba_resp->tid, le16_to_cpu(ba_resp->seq_ctl),
1220 priv->tid_data[sta_id][tid].next_reclaimed = ba_resp_scd_ssn;
1222 iwlagn_check_ratid_empty(priv, sta_id, tid);