mac80211: move HT operation mode BSS info
There really is no need to have a separate struct for a single variable. The fact that it exists is due to the code legacy, but we can remove that now. Very simple. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
5a9940118a
commit
9ed6bcce77
@@ -2225,9 +2225,9 @@ static void iwl_ht_conf(struct iwl_priv *priv,
|
|||||||
|
|
||||||
iwl_conf->tx_chan_width = iwl_conf->supported_chan_width != 0;
|
iwl_conf->tx_chan_width = iwl_conf->supported_chan_width != 0;
|
||||||
iwl_conf->ht_protection =
|
iwl_conf->ht_protection =
|
||||||
bss_conf->ht.operation_mode & IEEE80211_HT_OP_MODE_PROTECTION;
|
bss_conf->ht_operation_mode & IEEE80211_HT_OP_MODE_PROTECTION;
|
||||||
iwl_conf->non_GF_STA_present =
|
iwl_conf->non_GF_STA_present =
|
||||||
!!(bss_conf->ht.operation_mode & IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT);
|
!!(bss_conf->ht_operation_mode & IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT);
|
||||||
|
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
|
@@ -642,7 +642,7 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,
|
|||||||
if (changed & BSS_CHANGED_HT) {
|
if (changed & BSS_CHANGED_HT) {
|
||||||
printk(KERN_DEBUG " %s: HT: op_mode=0x%x\n",
|
printk(KERN_DEBUG " %s: HT: op_mode=0x%x\n",
|
||||||
wiphy_name(hw->wiphy),
|
wiphy_name(hw->wiphy),
|
||||||
info->ht.operation_mode);
|
info->ht_operation_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed & BSS_CHANGED_BASIC_RATES) {
|
if (changed & BSS_CHANGED_BASIC_RATES) {
|
||||||
|
@@ -2369,7 +2369,7 @@ static int mwl8k_cmd_set_aid(struct ieee80211_hw *hw,
|
|||||||
if (info->use_cts_prot) {
|
if (info->use_cts_prot) {
|
||||||
prot_mode = MWL8K_FRAME_PROT_11G;
|
prot_mode = MWL8K_FRAME_PROT_11G;
|
||||||
} else {
|
} else {
|
||||||
switch (info->ht.operation_mode &
|
switch (info->ht_operation_mode &
|
||||||
IEEE80211_HT_OP_MODE_PROTECTION) {
|
IEEE80211_HT_OP_MODE_PROTECTION) {
|
||||||
case IEEE80211_HT_OP_MODE_PROTECTION_20MHZ:
|
case IEEE80211_HT_OP_MODE_PROTECTION_20MHZ:
|
||||||
prot_mode = MWL8K_FRAME_PROT_11N_HT_40MHZ_ONLY;
|
prot_mode = MWL8K_FRAME_PROT_11N_HT_40MHZ_ONLY;
|
||||||
|
@@ -170,14 +170,6 @@ enum ieee80211_bss_change {
|
|||||||
BSS_CHANGED_BEACON_ENABLED = 1<<9,
|
BSS_CHANGED_BEACON_ENABLED = 1<<9,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* struct ieee80211_bss_ht_conf - BSS's changing HT configuration
|
|
||||||
* @operation_mode: HT operation mode (like in &struct ieee80211_ht_info)
|
|
||||||
*/
|
|
||||||
struct ieee80211_bss_ht_conf {
|
|
||||||
u16 operation_mode;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct ieee80211_bss_conf - holds the BSS's changing parameters
|
* struct ieee80211_bss_conf - holds the BSS's changing parameters
|
||||||
*
|
*
|
||||||
@@ -203,6 +195,8 @@ struct ieee80211_bss_ht_conf {
|
|||||||
* the current band.
|
* the current band.
|
||||||
* @bssid: The BSSID for this BSS
|
* @bssid: The BSSID for this BSS
|
||||||
* @enable_beacon: whether beaconing should be enabled or not
|
* @enable_beacon: whether beaconing should be enabled or not
|
||||||
|
* @ht_operation_mode: HT operation mode (like in &struct ieee80211_ht_info).
|
||||||
|
* This field is only valid when the channel type is one of the HT types.
|
||||||
*/
|
*/
|
||||||
struct ieee80211_bss_conf {
|
struct ieee80211_bss_conf {
|
||||||
const u8 *bssid;
|
const u8 *bssid;
|
||||||
@@ -219,7 +213,7 @@ struct ieee80211_bss_conf {
|
|||||||
u16 assoc_capability;
|
u16 assoc_capability;
|
||||||
u64 timestamp;
|
u64 timestamp;
|
||||||
u32 basic_rates;
|
u32 basic_rates;
|
||||||
struct ieee80211_bss_ht_conf ht;
|
u16 ht_operation_mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -95,16 +95,14 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
|
|||||||
struct ieee80211_local *local = sdata->local;
|
struct ieee80211_local *local = sdata->local;
|
||||||
struct ieee80211_supported_band *sband;
|
struct ieee80211_supported_band *sband;
|
||||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||||
struct ieee80211_bss_ht_conf ht;
|
|
||||||
struct sta_info *sta;
|
struct sta_info *sta;
|
||||||
u32 changed = 0;
|
u32 changed = 0;
|
||||||
|
u16 ht_opmode;
|
||||||
bool enable_ht = true, ht_changed;
|
bool enable_ht = true, ht_changed;
|
||||||
enum nl80211_channel_type channel_type = NL80211_CHAN_NO_HT;
|
enum nl80211_channel_type channel_type = NL80211_CHAN_NO_HT;
|
||||||
|
|
||||||
sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
|
sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
|
||||||
|
|
||||||
memset(&ht, 0, sizeof(ht));
|
|
||||||
|
|
||||||
/* HT is not supported */
|
/* HT is not supported */
|
||||||
if (!sband->ht_cap.ht_supported)
|
if (!sband->ht_cap.ht_supported)
|
||||||
enable_ht = false;
|
enable_ht = false;
|
||||||
@@ -148,19 +146,18 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
|
|||||||
IEEE80211_RC_HT_CHANGED);
|
IEEE80211_RC_HT_CHANGED);
|
||||||
|
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* disable HT */
|
/* disable HT */
|
||||||
if (!enable_ht)
|
if (!enable_ht)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ht.operation_mode = le16_to_cpu(hti->operation_mode);
|
ht_opmode = le16_to_cpu(hti->operation_mode);
|
||||||
|
|
||||||
/* if bss configuration changed store the new one */
|
/* if bss configuration changed store the new one */
|
||||||
if (memcmp(&sdata->vif.bss_conf.ht, &ht, sizeof(ht))) {
|
if (sdata->vif.bss_conf.ht_operation_mode != ht_opmode) {
|
||||||
changed |= BSS_CHANGED_HT;
|
changed |= BSS_CHANGED_HT;
|
||||||
sdata->vif.bss_conf.ht = ht;
|
sdata->vif.bss_conf.ht_operation_mode = ht_opmode;
|
||||||
}
|
}
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
|
Reference in New Issue
Block a user