Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 256475
b: refs/heads/master
c: 5d82c53
h: refs/heads/master
i:
  256473: 5c1591a
  256471: ae50135
v: v3
  • Loading branch information
Yogesh Ashok Powar authored and John W. Linville committed Jul 13, 2011
1 parent f30737b commit 956be94
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4e868796bbcbae2f2ea3a828c803686787392b71
refs/heads/master: 5d82c53a380ca96421a714481c9113ba54ede609
54 changes: 54 additions & 0 deletions trunk/drivers/net/wireless/mwifiex/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,59 @@ static const u32 mwifiex_cipher_suites[] = {
WLAN_CIPHER_SUITE_CCMP,
};

/*
* CFG802.11 operation handler for setting bit rates.
*
* Function selects legacy bang B/G/BG from corresponding bitrates selection.
* Currently only 2.4GHz band is supported.
*/
static int mwifiex_cfg80211_set_bitrate_mask(struct wiphy *wiphy,
struct net_device *dev,
const u8 *peer,
const struct cfg80211_bitrate_mask *mask)
{
struct mwifiex_ds_band_cfg band_cfg;
struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
int index = 0, mode = 0, i;

/* Currently only 2.4GHz is supported */
for (i = 0; i < mwifiex_band_2ghz.n_bitrates; i++) {
/*
* Rates below 6 Mbps in the table are CCK rates; 802.11b
* and from 6 they are OFDM; 802.11G
*/
if (mwifiex_rates[i].bitrate == 60) {
index = 1 << i;
break;
}
}

if (mask->control[IEEE80211_BAND_2GHZ].legacy < index) {
mode = BAND_B;
} else {
mode = BAND_G;
if (mask->control[IEEE80211_BAND_2GHZ].legacy % index)
mode |= BAND_B;
}

memset(&band_cfg, 0, sizeof(band_cfg));
band_cfg.config_bands = mode;

if (priv->bss_mode == NL80211_IFTYPE_ADHOC)
band_cfg.adhoc_start_band = mode;

band_cfg.sec_chan_offset = NO_SEC_CHANNEL;

if (mwifiex_set_radio_band_cfg(priv, &band_cfg))
return -EFAULT;

wiphy_debug(wiphy, "info: device configured in 802.11%s%s mode\n",
(mode & BAND_B) ? "b" : "",
(mode & BAND_G) ? "g" : "");

return 0;
}

/*
* CFG802.11 operation handler for disconnection request.
*
Expand Down Expand Up @@ -1225,6 +1278,7 @@ static struct cfg80211_ops mwifiex_cfg80211_ops = {
.set_default_key = mwifiex_cfg80211_set_default_key,
.set_power_mgmt = mwifiex_cfg80211_set_power_mgmt,
.set_tx_power = mwifiex_cfg80211_set_tx_power,
.set_bitrate_mask = mwifiex_cfg80211_set_bitrate_mask,
};

/*
Expand Down

0 comments on commit 956be94

Please sign in to comment.