Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 279374
b: refs/heads/master
c: 3aebee0
h: refs/heads/master
v: v3
  • Loading branch information
Amitkumar Karwar authored and John W. Linville committed Dec 21, 2011
1 parent 72fafcc commit 06c9213
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 21c3ba346486c3df39d23a2a085fcdfc7a59a853
refs/heads/master: 3aebee028aa8eb8ed49b7dbd52dfb841f6dc8dff
49 changes: 19 additions & 30 deletions trunk/drivers/net/wireless/mwifiex/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,30 +47,6 @@ mwifiex_cfg80211_channel_type_to_sec_chan_offset(enum nl80211_channel_type
}
}

/*
* This function maps the driver channel type into nl802.11 channel type.
*
* The mapping is as follows -
* IEEE80211_HT_PARAM_CHA_SEC_NONE -> NL80211_CHAN_HT20
* IEEE80211_HT_PARAM_CHA_SEC_ABOVE -> NL80211_CHAN_HT40PLUS
* IEEE80211_HT_PARAM_CHA_SEC_BELOW -> NL80211_CHAN_HT40MINUS
* Others -> NL80211_CHAN_HT20
*/
static enum nl80211_channel_type
mwifiex_channels_to_cfg80211_channel_type(int channel_type)
{
switch (channel_type) {
case IEEE80211_HT_PARAM_CHA_SEC_NONE:
return NL80211_CHAN_HT20;
case IEEE80211_HT_PARAM_CHA_SEC_ABOVE:
return NL80211_CHAN_HT40PLUS;
case IEEE80211_HT_PARAM_CHA_SEC_BELOW:
return NL80211_CHAN_HT40MINUS;
default:
return NL80211_CHAN_HT20;
}
}

/*
* This function checks whether WEP is set.
*/
Expand Down Expand Up @@ -337,10 +313,22 @@ mwifiex_set_rf_channel(struct mwifiex_private *priv,

if (chan) {
/* Set appropriate bands */
if (chan->band == IEEE80211_BAND_2GHZ)
config_bands = BAND_B | BAND_G | BAND_GN;
else
config_bands = BAND_AN | BAND_A;
if (chan->band == IEEE80211_BAND_2GHZ) {
if (channel_type == NL80211_CHAN_NO_HT)
if (priv->adapter->config_bands == BAND_B ||
priv->adapter->config_bands == BAND_G)
config_bands =
priv->adapter->config_bands;
else
config_bands = BAND_B | BAND_G;
else
config_bands = BAND_B | BAND_G | BAND_GN;
} else {
if (channel_type == NL80211_CHAN_NO_HT)
config_bands = BAND_A;
else
config_bands = BAND_AN | BAND_A;
}

if (!((config_bands | adapter->fw_bands) &
~adapter->fw_bands)) {
Expand All @@ -357,6 +345,7 @@ mwifiex_set_rf_channel(struct mwifiex_private *priv,
adapter->sec_chan_offset =
mwifiex_cfg80211_channel_type_to_sec_chan_offset
(channel_type);
adapter->channel_type = channel_type;

mwifiex_send_domain_info_cmd_fw(wiphy);
}
Expand Down Expand Up @@ -730,6 +719,7 @@ static int mwifiex_cfg80211_set_bitrate_mask(struct wiphy *wiphy,
}
}
adapter->sec_chan_offset = IEEE80211_HT_PARAM_CHA_SEC_NONE;
adapter->channel_type = NL80211_CHAN_NO_HT;

wiphy_debug(wiphy, "info: device configured in 802.11%s%s mode\n",
(mode & BAND_B) ? "b" : "",
Expand Down Expand Up @@ -849,8 +839,7 @@ mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, u8 *ssid,

if (channel)
ret = mwifiex_set_rf_channel(priv, channel,
mwifiex_channels_to_cfg80211_channel_type
(priv->adapter->sec_chan_offset));
priv->adapter->channel_type);

ret = mwifiex_set_encode(priv, NULL, 0, 0, 1); /* Disable keys */

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/mwifiex/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,7 @@ struct mwifiex_adapter {
u8 hw_dev_mcs_support;
u8 adhoc_11n_enabled;
u8 sec_chan_offset;
enum nl80211_channel_type channel_type;
struct mwifiex_dbg dbg;
u8 arp_filter[ARP_FILTER_MAX_BUF_SIZE];
u32 arp_filter_size;
Expand Down

0 comments on commit 06c9213

Please sign in to comment.