aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 834c2f9c15d7..b207e3e9299f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -43,7 +43,7 @@
43#include "iwl-core.h" 43#include "iwl-core.h"
44#include "iwl-io.h" 44#include "iwl-io.h"
45#include "iwl-helpers.h" 45#include "iwl-helpers.h"
46#include "iwl-calib.h" 46#include "iwl-agn-calib.h"
47#include "iwl-sta.h" 47#include "iwl-sta.h"
48#include "iwl-agn-led.h" 48#include "iwl-agn-led.h"
49#include "iwl-agn.h" 49#include "iwl-agn.h"
@@ -669,8 +669,8 @@ static int iwl4965_hw_set_hw_params(struct iwl_priv *priv)
669 priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant); 669 priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant);
670 priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant; 670 priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant;
671 priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant; 671 priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant;
672 if (priv->cfg->ops->lib->temp_ops.set_ct_kill) 672
673 priv->cfg->ops->lib->temp_ops.set_ct_kill(priv); 673 iwl4965_set_ct_threshold(priv);
674 674
675 priv->hw_params.sens = &iwl4965_sensitivity; 675 priv->hw_params.sens = &iwl4965_sensitivity;
676 priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS; 676 priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS;
@@ -2216,11 +2216,23 @@ static void iwl4965_cancel_deferred_work(struct iwl_priv *priv)
2216 2216
2217static struct iwl_hcmd_ops iwl4965_hcmd = { 2217static struct iwl_hcmd_ops iwl4965_hcmd = {
2218 .rxon_assoc = iwl4965_send_rxon_assoc, 2218 .rxon_assoc = iwl4965_send_rxon_assoc,
2219 .commit_rxon = iwl_commit_rxon, 2219 .commit_rxon = iwlagn_commit_rxon,
2220 .set_rxon_chain = iwl_set_rxon_chain, 2220 .set_rxon_chain = iwlagn_set_rxon_chain,
2221 .send_bt_config = iwl_send_bt_config, 2221 .send_bt_config = iwl_send_bt_config,
2222}; 2222};
2223 2223
2224static void iwl4965_post_scan(struct iwl_priv *priv)
2225{
2226 struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS];
2227
2228 /*
2229 * Since setting the RXON may have been deferred while
2230 * performing the scan, fire one off if needed
2231 */
2232 if (memcmp(&ctx->staging, &ctx->active, sizeof(ctx->staging)))
2233 iwlcore_commit_rxon(priv, ctx);
2234}
2235
2224static struct iwl_hcmd_utils_ops iwl4965_hcmd_utils = { 2236static struct iwl_hcmd_utils_ops iwl4965_hcmd_utils = {
2225 .get_hcmd_size = iwl4965_get_hcmd_size, 2237 .get_hcmd_size = iwl4965_get_hcmd_size,
2226 .build_addsta_hcmd = iwl4965_build_addsta_hcmd, 2238 .build_addsta_hcmd = iwl4965_build_addsta_hcmd,
@@ -2229,6 +2241,7 @@ static struct iwl_hcmd_utils_ops iwl4965_hcmd_utils = {
2229 .tx_cmd_protection = iwlcore_tx_cmd_protection, 2241 .tx_cmd_protection = iwlcore_tx_cmd_protection,
2230 .calc_rssi = iwl4965_calc_rssi, 2242 .calc_rssi = iwl4965_calc_rssi,
2231 .request_scan = iwlagn_request_scan, 2243 .request_scan = iwlagn_request_scan,
2244 .post_scan = iwl4965_post_scan,
2232}; 2245};
2233 2246
2234static struct iwl_lib_ops iwl4965_lib = { 2247static struct iwl_lib_ops iwl4965_lib = {
@@ -2253,9 +2266,7 @@ static struct iwl_lib_ops iwl4965_lib = {
2253 .set_channel_switch = iwl4965_hw_channel_switch, 2266 .set_channel_switch = iwl4965_hw_channel_switch,
2254 .apm_ops = { 2267 .apm_ops = {
2255 .init = iwl_apm_init, 2268 .init = iwl_apm_init,
2256 .stop = iwl_apm_stop,
2257 .config = iwl4965_nic_config, 2269 .config = iwl4965_nic_config,
2258 .set_pwr_src = iwl_set_pwr_src,
2259 }, 2270 },
2260 .eeprom_ops = { 2271 .eeprom_ops = {
2261 .regulatory_bands = { 2272 .regulatory_bands = {
@@ -2267,7 +2278,6 @@ static struct iwl_lib_ops iwl4965_lib = {
2267 EEPROM_4965_REGULATORY_BAND_24_HT40_CHANNELS, 2278 EEPROM_4965_REGULATORY_BAND_24_HT40_CHANNELS,
2268 EEPROM_4965_REGULATORY_BAND_52_HT40_CHANNELS 2279 EEPROM_4965_REGULATORY_BAND_52_HT40_CHANNELS
2269 }, 2280 },
2270 .verify_signature = iwlcore_eeprom_verify_signature,
2271 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore, 2281 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
2272 .release_semaphore = iwlcore_eeprom_release_semaphore, 2282 .release_semaphore = iwlcore_eeprom_release_semaphore,
2273 .calib_version = iwl4965_eeprom_calib_version, 2283 .calib_version = iwl4965_eeprom_calib_version,
@@ -2280,7 +2290,6 @@ static struct iwl_lib_ops iwl4965_lib = {
2280 .isr = iwl_isr_legacy, 2290 .isr = iwl_isr_legacy,
2281 .temp_ops = { 2291 .temp_ops = {
2282 .temperature = iwl4965_temperature_calib, 2292 .temperature = iwl4965_temperature_calib,
2283 .set_ct_kill = iwl4965_set_ct_threshold,
2284 }, 2293 },
2285 .manage_ibss_station = iwlagn_manage_ibss_station, 2294 .manage_ibss_station = iwlagn_manage_ibss_station,
2286 .update_bcast_stations = iwl_update_bcast_stations, 2295 .update_bcast_stations = iwl_update_bcast_stations,