diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-03-06 16:30:55 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-03-07 13:56:31 -0500 |
commit | b9ad70da6a7ed166539b188a95e0aef119555e14 (patch) | |
tree | dd07a1249c09f78494d7fbcf4d1fded81d45c0e0 | |
parent | e7a09438b3369732b9c5cfbca24d3bc894fc1ec1 (diff) |
iwlwifi: put use_rts_for_aggregation into hw_params
The hardware config ht_params shouldn't be modified,
so copy the use_rts_for_aggregation parameter into
hw_params and use/modify it there.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
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-rxon.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-debugfs.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-mac80211.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-shared.h | 2 |
6 files changed, 13 insertions, 9 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c index 2c5e7ec697e9..e191d394cfa0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | |||
@@ -436,8 +436,7 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | |||
436 | * force CTS-to-self frames protection if RTS-CTS is not preferred | 436 | * force CTS-to-self frames protection if RTS-CTS is not preferred |
437 | * one aggregation protection method | 437 | * one aggregation protection method |
438 | */ | 438 | */ |
439 | if (!(cfg(priv)->ht_params && | 439 | if (!hw_params(priv).use_rts_for_aggregation) |
440 | cfg(priv)->ht_params->use_rts_for_aggregation)) | ||
441 | ctx->staging.flags |= RXON_FLG_SELF_CTS_EN; | 440 | ctx->staging.flags |= RXON_FLG_SELF_CTS_EN; |
442 | 441 | ||
443 | if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) || | 442 | if ((ctx->vif && ctx->vif->bss_conf.use_short_slot) || |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index dd28785e1a5c..151400cf51e0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c | |||
@@ -594,8 +594,7 @@ int iwlagn_tx_agg_oper(struct iwl_priv *priv, struct ieee80211_vif *vif, | |||
594 | sta_priv->max_agg_bufsize = | 594 | sta_priv->max_agg_bufsize = |
595 | min(sta_priv->max_agg_bufsize, buf_size); | 595 | min(sta_priv->max_agg_bufsize, buf_size); |
596 | 596 | ||
597 | if (cfg(priv)->ht_params && | 597 | if (hw_params(priv).use_rts_for_aggregation) { |
598 | cfg(priv)->ht_params->use_rts_for_aggregation) { | ||
599 | /* | 598 | /* |
600 | * switch to RTS/CTS if it is the prefer protection | 599 | * switch to RTS/CTS if it is the prefer protection |
601 | * method for HT traffic | 600 | * method for HT traffic |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index ac23aa3dd6d7..ce62a2fcd67f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -1119,6 +1119,10 @@ static void iwl_uninit_drv(struct iwl_priv *priv) | |||
1119 | 1119 | ||
1120 | static void iwl_set_hw_params(struct iwl_priv *priv) | 1120 | static void iwl_set_hw_params(struct iwl_priv *priv) |
1121 | { | 1121 | { |
1122 | if (cfg(priv)->ht_params) | ||
1123 | hw_params(priv).use_rts_for_aggregation = | ||
1124 | cfg(priv)->ht_params->use_rts_for_aggregation; | ||
1125 | |||
1122 | if (iwlagn_mod_params.amsdu_size_8K) | 1126 | if (iwlagn_mod_params.amsdu_size_8K) |
1123 | hw_params(priv).rx_page_order = | 1127 | hw_params(priv).rx_page_order = |
1124 | get_order(IWL_RX_BUF_SIZE_8K); | 1128 | get_order(IWL_RX_BUF_SIZE_8K); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c index 116c7851f3b1..0a898c54c733 100644 --- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c +++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c | |||
@@ -2431,7 +2431,7 @@ static ssize_t iwl_dbgfs_protection_mode_read(struct file *file, | |||
2431 | if (cfg(priv)->ht_params) | 2431 | if (cfg(priv)->ht_params) |
2432 | pos += scnprintf(buf + pos, bufsz - pos, | 2432 | pos += scnprintf(buf + pos, bufsz - pos, |
2433 | "use %s for aggregation\n", | 2433 | "use %s for aggregation\n", |
2434 | (cfg(priv)->ht_params->use_rts_for_aggregation) ? | 2434 | (hw_params(priv).use_rts_for_aggregation) ? |
2435 | "rts/cts" : "cts-to-self"); | 2435 | "rts/cts" : "cts-to-self"); |
2436 | else | 2436 | else |
2437 | pos += scnprintf(buf + pos, bufsz - pos, "N/A"); | 2437 | pos += scnprintf(buf + pos, bufsz - pos, "N/A"); |
@@ -2458,9 +2458,9 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct file *file, | |||
2458 | if (sscanf(buf, "%d", &rts) != 1) | 2458 | if (sscanf(buf, "%d", &rts) != 1) |
2459 | return -EINVAL; | 2459 | return -EINVAL; |
2460 | if (rts) | 2460 | if (rts) |
2461 | cfg(priv)->ht_params->use_rts_for_aggregation = true; | 2461 | hw_params(priv).use_rts_for_aggregation = true; |
2462 | else | 2462 | else |
2463 | cfg(priv)->ht_params->use_rts_for_aggregation = false; | 2463 | hw_params(priv).use_rts_for_aggregation = false; |
2464 | return count; | 2464 | return count; |
2465 | } | 2465 | } |
2466 | 2466 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-mac80211.c b/drivers/net/wireless/iwlwifi/iwl-mac80211.c index 30861765b512..d2c1d714c89c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-mac80211.c +++ b/drivers/net/wireless/iwlwifi/iwl-mac80211.c | |||
@@ -660,8 +660,8 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw, | |||
660 | IWL_DEBUG_HT(priv, "priv->agg_tids_count = %u\n", | 660 | IWL_DEBUG_HT(priv, "priv->agg_tids_count = %u\n", |
661 | priv->agg_tids_count); | 661 | priv->agg_tids_count); |
662 | } | 662 | } |
663 | if (!priv->agg_tids_count && cfg(priv)->ht_params && | 663 | if (!priv->agg_tids_count && |
664 | cfg(priv)->ht_params->use_rts_for_aggregation) { | 664 | hw_params(priv).use_rts_for_aggregation) { |
665 | /* | 665 | /* |
666 | * switch off RTS/CTS if it was previously enabled | 666 | * switch off RTS/CTS if it was previously enabled |
667 | */ | 667 | */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-shared.h index ab2e1f771a11..7c9502703e82 100644 --- a/drivers/net/wireless/iwlwifi/iwl-shared.h +++ b/drivers/net/wireless/iwlwifi/iwl-shared.h | |||
@@ -174,6 +174,7 @@ struct iwl_mod_params { | |||
174 | * relevant for 1000, 6000 and up | 174 | * relevant for 1000, 6000 and up |
175 | * @wd_timeout: TX queues watchdog timeout | 175 | * @wd_timeout: TX queues watchdog timeout |
176 | * @struct iwl_sensitivity_ranges: range of sensitivity values | 176 | * @struct iwl_sensitivity_ranges: range of sensitivity values |
177 | * @use_rts_for_aggregation: use rts/cts protection for HT traffic | ||
177 | */ | 178 | */ |
178 | struct iwl_hw_params { | 179 | struct iwl_hw_params { |
179 | u8 max_txq_num; | 180 | u8 max_txq_num; |
@@ -183,6 +184,7 @@ struct iwl_hw_params { | |||
183 | u8 valid_tx_ant; | 184 | u8 valid_tx_ant; |
184 | u8 valid_rx_ant; | 185 | u8 valid_rx_ant; |
185 | u8 ht40_channel; | 186 | u8 ht40_channel; |
187 | bool use_rts_for_aggregation; | ||
186 | u16 sku; | 188 | u16 sku; |
187 | u32 rx_page_order; | 189 | u32 rx_page_order; |
188 | u32 ct_kill_threshold; | 190 | u32 ct_kill_threshold; |