aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-07-28 12:18:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-08-24 16:32:00 -0400
commit7469701e10adb6bcc3d66544bd9f6d553fc678c9 (patch)
tree4354eb557c73869f6ade4e8af3a1b0ca9c4d8165
parentb15826a795969cbdd85a0b5100165e240e6508e4 (diff)
iwlwifi: make aggregation time limit configurable
By default, aggregation time limit is 4000 uSec, add the parameter to .cfg to allow this parameter can be configure per device base if needed. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c10
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
3 files changed, 16 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 23e5c42e7d7e..7c4deee4c527 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -2694,8 +2694,18 @@ static void rs_fill_link_cmd(struct iwl_priv *priv,
2694 2694
2695 lq_cmd->agg_params.agg_frame_cnt_limit = LINK_QUAL_AGG_FRAME_LIMIT_DEF; 2695 lq_cmd->agg_params.agg_frame_cnt_limit = LINK_QUAL_AGG_FRAME_LIMIT_DEF;
2696 lq_cmd->agg_params.agg_dis_start_th = LINK_QUAL_AGG_DISABLE_START_DEF; 2696 lq_cmd->agg_params.agg_dis_start_th = LINK_QUAL_AGG_DISABLE_START_DEF;
2697
2697 lq_cmd->agg_params.agg_time_limit = 2698 lq_cmd->agg_params.agg_time_limit =
2698 cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF); 2699 cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF);
2700 /*
2701 * overwrite if needed, pass aggregation time limit
2702 * to uCode in uSec
2703 */
2704 if (priv && priv->cfg->agg_time_limit &&
2705 priv->cfg->agg_time_limit >= LINK_QUAL_AGG_TIME_LIMIT_MIN &&
2706 priv->cfg->agg_time_limit <= LINK_QUAL_AGG_TIME_LIMIT_MAX)
2707 lq_cmd->agg_params.agg_time_limit =
2708 cpu_to_le16(priv->cfg->agg_time_limit);
2699} 2709}
2700 2710
2701static void *rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir) 2711static void *rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index c6a0470b2f50..14a7a8c0711a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -2110,8 +2110,10 @@ struct iwl_link_qual_general_params {
2110 */ 2110 */
2111struct iwl_link_qual_agg_params { 2111struct iwl_link_qual_agg_params {
2112 2112
2113 /* Maximum number of uSec in aggregation. 2113 /*
2114 * Driver should set this to 4000 (4 milliseconds). */ 2114 *Maximum number of uSec in aggregation.
2115 * default set to 4000 (4 milliseconds) if not configured in .cfg
2116 */
2115 __le16 agg_time_limit; 2117 __le16 agg_time_limit;
2116 2118
2117 /* 2119 /*
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 702d62bf4ee4..f5586b5e0496 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -280,6 +280,7 @@ struct iwl_mod_params {
280 * @scan_antennas: available antenna for scan operation 280 * @scan_antennas: available antenna for scan operation
281 * @need_dc_calib: need to perform init dc calibration 281 * @need_dc_calib: need to perform init dc calibration
282 * @bt_statistics: use BT version of statistics notification 282 * @bt_statistics: use BT version of statistics notification
283 * @agg_time_limit: maximum number of uSec in aggregation
283 * 284 *
284 * We enable the driver to be backward compatible wrt API version. The 285 * We enable the driver to be backward compatible wrt API version. The
285 * driver specifies which APIs it supports (with @ucode_api_max being the 286 * driver specifies which APIs it supports (with @ucode_api_max being the
@@ -350,6 +351,7 @@ struct iwl_cfg {
350 u8 scan_tx_antennas[IEEE80211_NUM_BANDS]; 351 u8 scan_tx_antennas[IEEE80211_NUM_BANDS];
351 const bool need_dc_calib; 352 const bool need_dc_calib;
352 const bool bt_statistics; 353 const bool bt_statistics;
354 u16 agg_time_limit;
353}; 355};
354 356
355/*************************** 357/***************************