diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-06-24 16:50:17 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-06-27 17:09:20 +0400 |
commit | f37d08bddc5cb8de18e55f2b0a401b3eb6269af4 (patch) | |
tree | ddb9b80a0b8a89766b0b7c21f4c917855e6981de /net/mac80211 | |
parent | b9fcc4f2987a757acb3af43aa31dc860bb957970 (diff) | |
download | linux-f37d08bddc5cb8de18e55f2b0a401b3eb6269af4.tar.xz |
mac80211: add phy information to giwname
This patch add phy information to giwname.
Quoting:
It's not useless, it's supposed to tell you about the protocol
capability of the device, like "IEEE 802.11b" or "IEEE 802.11abg"
Jean
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/wext.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c index 5e76ab120cd6..df0531c28141 100644 --- a/net/mac80211/wext.c +++ b/net/mac80211/wext.c @@ -135,7 +135,39 @@ static int ieee80211_ioctl_giwname(struct net_device *dev, struct iw_request_info *info, char *name, char *extra) { + struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); + struct ieee80211_supported_band *sband; + u8 is_ht = 0, is_a = 0, is_b = 0, is_g = 0; + + + sband = local->hw.wiphy->bands[IEEE80211_BAND_5GHZ]; + if (sband) { + is_a = 1; + is_ht |= sband->ht_info.ht_supported; + } + + sband = local->hw.wiphy->bands[IEEE80211_BAND_2GHZ]; + if (sband) { + int i; + /* Check for mandatory rates */ + for (i = 0; i < sband->n_bitrates; i++) { + if (sband->bitrates[i].bitrate == 10) + is_b = 1; + if (sband->bitrates[i].bitrate == 60) + is_g = 1; + } + is_ht |= sband->ht_info.ht_supported; + } + strcpy(name, "IEEE 802.11"); + if (is_a) + strcat(name, "a"); + if (is_b) + strcat(name, "b"); + if (is_g) + strcat(name, "g"); + if (is_ht) + strcat(name, "n"); return 0; } |