aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorRon Rindjunsky <ron.rindjunsky@intel.com>2008-06-11 21:46:58 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-06-14 12:18:06 -0400
commitfaa297183897ac6f55c4dd97a0b3aee122aeec46 (patch)
tree0124944891235a086ff83195fea7246e22c32945 /drivers/net/wireless/iwlwifi
parent263b5f5aae8a3ec72fd3e5a98031664759e7fd72 (diff)
iwlwifi: fix allow iwlwifi to aggregate according to tid load
This fix opens back the aggregation decision path for iwlwifi. Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-rs.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
index a928741e5573..77884e16a134 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
@@ -273,8 +273,8 @@ static void rs_tl_rm_old_stats(struct iwl4965_traffic_load *tl, u32 curr_time)
273 * increment traffic load value for tid and also remove 273 * increment traffic load value for tid and also remove
274 * any old values if passed the certain time period 274 * any old values if passed the certain time period
275 */ 275 */
276static void rs_tl_add_packet(struct iwl4965_lq_sta *lq_data, 276static u8 rs_tl_add_packet(struct iwl4965_lq_sta *lq_data,
277 struct ieee80211_hdr *hdr) 277 struct ieee80211_hdr *hdr)
278{ 278{
279 u32 curr_time = jiffies_to_msecs(jiffies); 279 u32 curr_time = jiffies_to_msecs(jiffies);
280 u32 time_diff; 280 u32 time_diff;
@@ -287,7 +287,7 @@ static void rs_tl_add_packet(struct iwl4965_lq_sta *lq_data,
287 u8 *qc = ieee80211_get_qos_ctrl(hdr, ieee80211_get_hdrlen(fc)); 287 u8 *qc = ieee80211_get_qos_ctrl(hdr, ieee80211_get_hdrlen(fc));
288 tid = qc[0] & 0xf; 288 tid = qc[0] & 0xf;
289 } else 289 } else
290 return; 290 return MAX_TID_COUNT;
291 291
292 tl = &lq_data->load[tid]; 292 tl = &lq_data->load[tid];
293 293
@@ -300,7 +300,7 @@ static void rs_tl_add_packet(struct iwl4965_lq_sta *lq_data,
300 tl->queue_count = 1; 300 tl->queue_count = 1;
301 tl->head = 0; 301 tl->head = 0;
302 tl->packet_count[0] = 1; 302 tl->packet_count[0] = 1;
303 return; 303 return MAX_TID_COUNT;
304 } 304 }
305 305
306 time_diff = TIME_WRAP_AROUND(tl->time_stamp, curr_time); 306 time_diff = TIME_WRAP_AROUND(tl->time_stamp, curr_time);
@@ -317,6 +317,8 @@ static void rs_tl_add_packet(struct iwl4965_lq_sta *lq_data,
317 317
318 if ((index + 1) > tl->queue_count) 318 if ((index + 1) > tl->queue_count)
319 tl->queue_count = index + 1; 319 tl->queue_count = index + 1;
320
321 return tid;
320} 322}
321 323
322/* 324/*
@@ -1680,7 +1682,8 @@ static void rs_rate_scale_perform(struct iwl_priv *priv,
1680 } 1682 }
1681 lq_sta = (struct iwl4965_lq_sta *)sta->rate_ctrl_priv; 1683 lq_sta = (struct iwl4965_lq_sta *)sta->rate_ctrl_priv;
1682 1684
1683 rs_tl_add_packet(lq_sta, hdr); 1685 tid = rs_tl_add_packet(lq_sta, hdr);
1686
1684 /* 1687 /*
1685 * Select rate-scale / modulation-mode table to work with in 1688 * Select rate-scale / modulation-mode table to work with in
1686 * the rest of this function: "search" if searching for better 1689 * the rest of this function: "search" if searching for better