aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel C Halperin <daniel.c.halperin@intel.com>2009-11-13 14:56:34 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-18 17:09:06 -0500
commitf513dfff9622ac72c461770e1fa01d291ba6ba5a (patch)
tree0f38660deea2d2db217fc4edf10bcb36a637d256
parent47ff65c48748086a5e9cde6032451691a28ab19f (diff)
iwlwifi: make iwlwifi send beacons
Handle BSS_CHANGED_BEACON_ENABLED to enable the sending of beacons. Also set the correct HT RXON and QoS config. Signed-off-by: Daniel C Halperin <daniel.c.halperin@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 29f3b73c7560..1c6506529b6e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2563,6 +2563,10 @@ void iwl_config_ap(struct iwl_priv *priv)
2563 IWL_WARN(priv, "REPLY_RXON_TIMING failed - " 2563 IWL_WARN(priv, "REPLY_RXON_TIMING failed - "
2564 "Attempting to continue.\n"); 2564 "Attempting to continue.\n");
2565 2565
2566 /* AP has all antennas */
2567 priv->chain_noise_data.active_chains =
2568 priv->hw_params.valid_rx_ant;
2569 iwl_set_rxon_ht(priv, &priv->current_ht_config);
2566 if (priv->cfg->ops->hcmd->set_rxon_chain) 2570 if (priv->cfg->ops->hcmd->set_rxon_chain)
2567 priv->cfg->ops->hcmd->set_rxon_chain(priv); 2571 priv->cfg->ops->hcmd->set_rxon_chain(priv);
2568 2572
@@ -2591,6 +2595,7 @@ void iwl_config_ap(struct iwl_priv *priv)
2591 /* restore RXON assoc */ 2595 /* restore RXON assoc */
2592 priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK; 2596 priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK;
2593 iwlcore_commit_rxon(priv); 2597 iwlcore_commit_rxon(priv);
2598 iwl_reset_qos(priv);
2594 spin_lock_irqsave(&priv->lock, flags); 2599 spin_lock_irqsave(&priv->lock, flags);
2595 iwl_activate_qos(priv, 1); 2600 iwl_activate_qos(priv, 1);
2596 spin_unlock_irqrestore(&priv->lock, flags); 2601 spin_unlock_irqrestore(&priv->lock, flags);
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 33da44f96e9f..a2636f4b068f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -2497,6 +2497,14 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw,
2497 } 2497 }
2498 } 2498 }
2499 2499
2500 if ((changes & BSS_CHANGED_BEACON_ENABLED) &&
2501 vif->bss_conf.enable_beacon) {
2502 memcpy(priv->staging_rxon.bssid_addr,
2503 bss_conf->bssid, ETH_ALEN);
2504 memcpy(priv->bssid, bss_conf->bssid, ETH_ALEN);
2505 iwlcore_config_ap(priv);
2506 }
2507
2500 mutex_unlock(&priv->mutex); 2508 mutex_unlock(&priv->mutex);
2501 2509
2502 IWL_DEBUG_MAC80211(priv, "leave\n"); 2510 IWL_DEBUG_MAC80211(priv, "leave\n");