aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-05-06 15:21:40 -0400
committerReinette Chatre <reinette.chatre@intel.com>2010-05-13 13:45:24 -0400
commitc213d745b25b24b68f790fe55fc0a2159218a079 (patch)
tree0167dab957cdea2fde74386410cd74ec7ec6c803 /drivers/net/wireless/iwlwifi/iwl-agn.c
parentd73e4923d1b3311dda4cd1bd5d3596d75af1d1c3 (diff)
iwlwifi: use proper short slot/preamble settings
The short preamble setting might change on the fly, and then we already use the right mac80211 variable. However, in other places we don't, which is especially wrong in the AP code since in that case the assoc_capability is invalid. Also, the IBSS special case is not needed since "use_short_slot" will be properly cleared, but the "assoc_capability" might be invalid (which must be the reason for the special case). Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 5bfa7b310c1a..eb74f2803448 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2860,20 +2860,16 @@ void iwl_post_associate(struct iwl_priv *priv, struct ieee80211_vif *vif)
2860 IWL_DEBUG_ASSOC(priv, "assoc id %d beacon interval %d\n", 2860 IWL_DEBUG_ASSOC(priv, "assoc id %d beacon interval %d\n",
2861 vif->bss_conf.aid, vif->bss_conf.beacon_int); 2861 vif->bss_conf.aid, vif->bss_conf.beacon_int);
2862 2862
2863 if (vif->bss_conf.assoc_capability & WLAN_CAPABILITY_SHORT_PREAMBLE) 2863 if (vif->bss_conf.use_short_preamble)
2864 priv->staging_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK; 2864 priv->staging_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK;
2865 else 2865 else
2866 priv->staging_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK; 2866 priv->staging_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK;
2867 2867
2868 if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) { 2868 if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) {
2869 if (vif->bss_conf.assoc_capability & 2869 if (vif->bss_conf.use_short_slot)
2870 WLAN_CAPABILITY_SHORT_SLOT_TIME)
2871 priv->staging_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK; 2870 priv->staging_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK;
2872 else 2871 else
2873 priv->staging_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; 2872 priv->staging_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK;
2874
2875 if (vif->type == NL80211_IFTYPE_ADHOC)
2876 priv->staging_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK;
2877 } 2873 }
2878 2874
2879 iwlcore_commit_rxon(priv); 2875 iwlcore_commit_rxon(priv);
@@ -3099,8 +3095,7 @@ void iwl_config_ap(struct iwl_priv *priv, struct ieee80211_vif *vif)
3099 3095
3100 priv->staging_rxon.assoc_id = 0; 3096 priv->staging_rxon.assoc_id = 0;
3101 3097
3102 if (vif->bss_conf.assoc_capability & 3098 if (vif->bss_conf.use_short_preamble)
3103 WLAN_CAPABILITY_SHORT_PREAMBLE)
3104 priv->staging_rxon.flags |= 3099 priv->staging_rxon.flags |=
3105 RXON_FLG_SHORT_PREAMBLE_MSK; 3100 RXON_FLG_SHORT_PREAMBLE_MSK;
3106 else 3101 else
@@ -3108,17 +3103,12 @@ void iwl_config_ap(struct iwl_priv *priv, struct ieee80211_vif *vif)
3108 ~RXON_FLG_SHORT_PREAMBLE_MSK; 3103 ~RXON_FLG_SHORT_PREAMBLE_MSK;
3109 3104
3110 if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) { 3105 if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) {
3111 if (vif->bss_conf.assoc_capability & 3106 if (vif->bss_conf.use_short_slot)
3112 WLAN_CAPABILITY_SHORT_SLOT_TIME)
3113 priv->staging_rxon.flags |= 3107 priv->staging_rxon.flags |=
3114 RXON_FLG_SHORT_SLOT_MSK; 3108 RXON_FLG_SHORT_SLOT_MSK;
3115 else 3109 else
3116 priv->staging_rxon.flags &= 3110 priv->staging_rxon.flags &=
3117 ~RXON_FLG_SHORT_SLOT_MSK; 3111 ~RXON_FLG_SHORT_SLOT_MSK;
3118
3119 if (vif->type == NL80211_IFTYPE_ADHOC)
3120 priv->staging_rxon.flags &=
3121 ~RXON_FLG_SHORT_SLOT_MSK;
3122 } 3112 }
3123 /* restore RXON assoc */ 3113 /* restore RXON assoc */
3124 priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK; 3114 priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK;