aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
diff options
context:
space:
mode:
authorMeenakshi Venkataraman <meenakshi.venkataraman@intel.com>2012-02-08 15:04:41 -0500
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2012-02-17 13:58:39 -0500
commit758f555f5e69bb44fc85edb90b3d15e68a29bc0c (patch)
tree2c1028372ffeec02cbd2a2341ec4b02461d6d6b9 /drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
parentdd63b84eb44ba4e34daa83cf535a8bb79bc7f2e2 (diff)
iwlwifi: enable receiving beacons when not associated
If the firmware implements beacon filtering, beacons are filtered when not associated. This causes association failures on channels marked passive. Enabling this flag indicates to the firmware to allow the beacons to pass through when not associated only. Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-rxon.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rxon.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
index 8ca9570ec365..35dd7e364b46 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
@@ -900,6 +900,22 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
900 } 900 }
901 } 901 }
902 902
903 /*
904 * If the ucode decides to do beacon filtering before
905 * association, it will lose beacons that are needed
906 * before sending frames out on passive channels. This
907 * causes association failures on those channels. Enable
908 * receiving beacons in such cases.
909 */
910
911 if (vif->type == NL80211_IFTYPE_STATION) {
912 if (!bss_conf->assoc)
913 ctx->staging.filter_flags |= RXON_FILTER_BCON_AWARE_MSK;
914 else
915 ctx->staging.filter_flags &=
916 ~RXON_FILTER_BCON_AWARE_MSK;
917 }
918
903 if (force || memcmp(&ctx->staging, &ctx->active, sizeof(ctx->staging))) 919 if (force || memcmp(&ctx->staging, &ctx->active, sizeof(ctx->staging)))
904 iwlagn_commit_rxon(priv, ctx); 920 iwlagn_commit_rxon(priv, ctx);
905 921