Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 134502
b: refs/heads/master
c: 9a03d6d
h: refs/heads/master
v: v3
  • Loading branch information
Johannes Berg authored and John W. Linville committed Feb 13, 2009
1 parent 2cbf946 commit 1aaeb03
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 13 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: 00d3f14cf9f12c21428121026a5e1d5f65926447
refs/heads/master: 9a03d6d7a8698f26f8ef02dd3c91f8f68c4edcc7
1 change: 0 additions & 1 deletion trunk/net/mac80211/ieee80211_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,6 @@ struct ieee80211_local {
int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss;
unsigned int filter_flags; /* FIF_* */
struct iw_statistics wstats;
u8 wstats_flags;
bool tim_in_locked_section; /* see ieee80211_beacon_get() */
int tx_headroom; /* required headroom for hardware/radiotap */

Expand Down
8 changes: 0 additions & 8 deletions trunk/net/mac80211/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -905,14 +905,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)

local->hw.conf.listen_interval = local->hw.max_listen_interval;

local->wstats_flags |= local->hw.flags & (IEEE80211_HW_SIGNAL_UNSPEC |
IEEE80211_HW_SIGNAL_DBM) ?
IW_QUAL_QUAL_UPDATED : IW_QUAL_QUAL_INVALID;
local->wstats_flags |= local->hw.flags & IEEE80211_HW_NOISE_DBM ?
IW_QUAL_NOISE_UPDATED : IW_QUAL_NOISE_INVALID;
if (local->hw.flags & IEEE80211_HW_SIGNAL_DBM)
local->wstats_flags |= IW_QUAL_DBM;

result = sta_info_start(local);
if (result < 0)
goto fail_sta_info;
Expand Down
21 changes: 18 additions & 3 deletions trunk/net/mac80211/wext.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,21 @@ static int ieee80211_ioctl_siwgenie(struct net_device *dev,
return -EOPNOTSUPP;
}

static u8 ieee80211_get_wstats_flags(struct ieee80211_local *local)
{
u8 wstats_flags = 0;

wstats_flags |= local->hw.flags & (IEEE80211_HW_SIGNAL_UNSPEC |
IEEE80211_HW_SIGNAL_DBM) ?
IW_QUAL_QUAL_UPDATED : IW_QUAL_QUAL_INVALID;
wstats_flags |= local->hw.flags & IEEE80211_HW_NOISE_DBM ?
IW_QUAL_NOISE_UPDATED : IW_QUAL_NOISE_INVALID;
if (local->hw.flags & IEEE80211_HW_SIGNAL_DBM)
wstats_flags |= IW_QUAL_DBM;

return wstats_flags;
}

static int ieee80211_ioctl_giwrange(struct net_device *dev,
struct iw_request_info *info,
struct iw_point *data, char *extra)
Expand Down Expand Up @@ -187,13 +202,13 @@ static int ieee80211_ioctl_giwrange(struct net_device *dev,
range->max_qual.noise = 0;

range->max_qual.qual = 100;
range->max_qual.updated = local->wstats_flags;
range->max_qual.updated = ieee80211_get_wstats_flags(local);

range->avg_qual.qual = 50;
/* not always true but better than nothing */
range->avg_qual.level = range->max_qual.level / 2;
range->avg_qual.noise = range->max_qual.noise / 2;
range->avg_qual.updated = local->wstats_flags;
range->avg_qual.updated = ieee80211_get_wstats_flags(local);

range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 |
IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP;
Expand Down Expand Up @@ -979,7 +994,7 @@ static struct iw_statistics *ieee80211_get_wireless_stats(struct net_device *dev
wstats->qual.level = sta->last_signal;
wstats->qual.qual = sta->last_qual;
wstats->qual.noise = sta->last_noise;
wstats->qual.updated = local->wstats_flags;
wstats->qual.updated = ieee80211_get_wstats_flags(local);
}

rcu_read_unlock();
Expand Down

0 comments on commit 1aaeb03

Please sign in to comment.