|
@@ -1700,6 +1700,7 @@ static void rs_rate_scale_perform(struct iwl_priv *priv,
|
|
|
u16 high_low;
|
|
|
s32 sr;
|
|
|
u8 tid = MAX_TID_COUNT;
|
|
|
+ struct iwl_tid_data *tid_data;
|
|
|
|
|
|
IWL_DEBUG_RATE(priv, "rate scale calculate new rate for skb\n");
|
|
|
|
|
@@ -2035,8 +2036,15 @@ lq_update:
|
|
|
if ((lq_sta->last_tpt > IWL_AGG_TPT_THREHOLD) &&
|
|
|
(lq_sta->tx_agg_tid_en & (1 << tid)) &&
|
|
|
(tid != MAX_TID_COUNT)) {
|
|
|
- IWL_DEBUG_RATE(priv, "try to aggregate tid %d\n", tid);
|
|
|
- rs_tl_turn_on_agg(priv, tid, lq_sta, sta);
|
|
|
+ tid_data =
|
|
|
+ &priv->stations[lq_sta->lq.sta_id].tid[tid];
|
|
|
+ if (tid_data->agg.state == IWL_AGG_OFF) {
|
|
|
+ IWL_DEBUG_RATE(priv,
|
|
|
+ "try to aggregate tid %d\n",
|
|
|
+ tid);
|
|
|
+ rs_tl_turn_on_agg(priv, tid,
|
|
|
+ lq_sta, sta);
|
|
|
+ }
|
|
|
}
|
|
|
lq_sta->action_counter = 0;
|
|
|
rs_set_stay_in_table(priv, 0, lq_sta);
|