Commit 7469701e authored by Wey-Yi Guy's avatar Wey-Yi Guy Committed by John W. Linville

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: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent b15826a7
...@@ -2694,8 +2694,18 @@ static void rs_fill_link_cmd(struct iwl_priv *priv, ...@@ -2694,8 +2694,18 @@ static void rs_fill_link_cmd(struct iwl_priv *priv,
lq_cmd->agg_params.agg_frame_cnt_limit = LINK_QUAL_AGG_FRAME_LIMIT_DEF; lq_cmd->agg_params.agg_frame_cnt_limit = LINK_QUAL_AGG_FRAME_LIMIT_DEF;
lq_cmd->agg_params.agg_dis_start_th = LINK_QUAL_AGG_DISABLE_START_DEF; lq_cmd->agg_params.agg_dis_start_th = LINK_QUAL_AGG_DISABLE_START_DEF;
lq_cmd->agg_params.agg_time_limit = lq_cmd->agg_params.agg_time_limit =
cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF); cpu_to_le16(LINK_QUAL_AGG_TIME_LIMIT_DEF);
/*
* overwrite if needed, pass aggregation time limit
* to uCode in uSec
*/
if (priv && priv->cfg->agg_time_limit &&
priv->cfg->agg_time_limit >= LINK_QUAL_AGG_TIME_LIMIT_MIN &&
priv->cfg->agg_time_limit <= LINK_QUAL_AGG_TIME_LIMIT_MAX)
lq_cmd->agg_params.agg_time_limit =
cpu_to_le16(priv->cfg->agg_time_limit);
} }
static void *rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir) static void *rs_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir)
......
...@@ -2110,8 +2110,10 @@ struct iwl_link_qual_general_params { ...@@ -2110,8 +2110,10 @@ struct iwl_link_qual_general_params {
*/ */
struct iwl_link_qual_agg_params { struct iwl_link_qual_agg_params {
/* Maximum number of uSec in aggregation. /*
* Driver should set this to 4000 (4 milliseconds). */ *Maximum number of uSec in aggregation.
* default set to 4000 (4 milliseconds) if not configured in .cfg
*/
__le16 agg_time_limit; __le16 agg_time_limit;
/* /*
......
...@@ -280,6 +280,7 @@ struct iwl_mod_params { ...@@ -280,6 +280,7 @@ struct iwl_mod_params {
* @scan_antennas: available antenna for scan operation * @scan_antennas: available antenna for scan operation
* @need_dc_calib: need to perform init dc calibration * @need_dc_calib: need to perform init dc calibration
* @bt_statistics: use BT version of statistics notification * @bt_statistics: use BT version of statistics notification
* @agg_time_limit: maximum number of uSec in aggregation
* *
* We enable the driver to be backward compatible wrt API version. The * We enable the driver to be backward compatible wrt API version. The
* driver specifies which APIs it supports (with @ucode_api_max being the * driver specifies which APIs it supports (with @ucode_api_max being the
...@@ -350,6 +351,7 @@ struct iwl_cfg { ...@@ -350,6 +351,7 @@ struct iwl_cfg {
u8 scan_tx_antennas[IEEE80211_NUM_BANDS]; u8 scan_tx_antennas[IEEE80211_NUM_BANDS];
const bool need_dc_calib; const bool need_dc_calib;
const bool bt_statistics; const bool bt_statistics;
u16 agg_time_limit;
}; };
/*************************** /***************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment