aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2011-08-25 23:10:55 -0700
committerJohn W. Linville <linville@tuxdriver.com>2011-08-29 15:25:33 -0400
commitdd5b6d0a2059027366028630746d951b1e1e24b3 (patch)
tree9d1b8cf4d04eaa83b6b3ce8a106969dabeb75f1e
parentiwlagn: move the NIC error flow to the transport layer (diff)
downloadlinux-dev-dd5b6d0a2059027366028630746d951b1e1e24b3.tar.xz
linux-dev-dd5b6d0a2059027366028630746d951b1e1e24b3.zip
iwlagn: enable 11n aggregation without checking traffic load
Enable HT aggregation when it reach reasonable traffic without checking traffic load which delay enabling the aggregation and lower the throughput but this behavior can be overwrite by module parameter this address https://bugzilla.kernel.org/show_bug.cgi?id=40042 Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-lib.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-shared.h1
4 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 82fb55bc0b28..6cfd23620973 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -612,6 +612,7 @@ struct iwl_mod_params iwlagn_mod_params = {
.power_level = IWL_POWER_INDEX_1,
.bt_ch_announce = 1,
.wanted_ucode_alternative = 1,
+ .auto_agg = true,
/* the rest are 0 by default */
};
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index cff6442ab0c0..3870b723c8c2 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -420,7 +420,7 @@ static int rs_tl_turn_on_agg_for_tid(struct iwl_priv *priv,
load = rs_tl_get_load(lq_data, tid);
- if (load > IWL_AGG_LOAD_THRESHOLD) {
+ if ((iwlagn_mod_params.auto_agg) || (load > IWL_AGG_LOAD_THRESHOLD)) {
IWL_DEBUG_HT(priv, "Starting Tx agg: STA: %pM tid: %d\n",
sta->addr, tid);
ret = ieee80211_start_tx_ba_session(sta, tid, 5000);
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index f6884a54b7f8..be2ba4ddb92c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3588,6 +3588,11 @@ module_param_named(power_level, iwlagn_mod_params.power_level,
MODULE_PARM_DESC(power_level,
"default power save level (range from 1 - 5, default: 1)");
+module_param_named(auto_agg, iwlagn_mod_params.auto_agg,
+ bool, S_IRUGO);
+MODULE_PARM_DESC(auto_agg,
+ "enable agg w/o check traffic load (default: enable)");
+
/*
* For now, keep using power level 1 instead of automatically
* adjusting ...
diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-shared.h
index a5ef79bb275a..ec71ec7e1fc4 100644
--- a/drivers/net/wireless/iwlwifi/iwl-shared.h
+++ b/drivers/net/wireless/iwlwifi/iwl-shared.h
@@ -93,6 +93,7 @@ struct iwl_mod_params {
int ant_coupling;
bool bt_ch_announce;
int wanted_ucode_alternative;
+ bool auto_agg; /* def: true = enable agg. without check */
};
/**