iwlagn: enable 11n aggregation without checking traffic load
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Fri, 26 Aug 2011 06:10:55 +0000 (23:10 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 29 Aug 2011 19:25:33 +0000 (15:25 -0400)
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>
drivers/net/wireless/iwlwifi/iwl-agn-lib.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-shared.h

index 82fb55bc0b2828b95bfb8c2c8d5f25dbf9f3550f..6cfd236209738fd7b6885efd3d65a9a9edcba6e0 100644 (file)
@@ -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 */
 };
 
index cff6442ab0c023447ed18dc148e884be702483b0..3870b723c8c236cc92fdf235d106eeeecd6e8932 100644 (file)
@@ -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);
index f6884a54b7f82e77495ad0dbaca71f6521860174..be2ba4ddb92c0910d99e4a4917330d50027621f2 100644 (file)
@@ -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 ...
index a5ef79bb275a11d3ec82a410e2436210beebafe6..ec71ec7e1fc466d50993ef2e8751c80672d59ee2 100644 (file)
@@ -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 */
 };
 
 /**