diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-02-22 16:10:15 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-02-22 16:10:15 +0000 |
commit | d642c4465fd2084dbef63349de973a70cd0013bf (patch) | |
tree | 94204aa78868728abda5aefcbd3b0e0c0ab27ba1 /package | |
parent | 0ab5ab2c08ea1f6f36b178319a04650981f77edb (diff) | |
download | upstream-d642c4465fd2084dbef63349de973a70cd0013bf.tar.gz upstream-d642c4465fd2084dbef63349de973a70cd0013bf.tar.bz2 upstream-d642c4465fd2084dbef63349de973a70cd0013bf.zip |
ath9k_htc: fix signal strength reporting issues
SVN-Revision: 35749
Diffstat (limited to 'package')
-rw-r--r-- | package/mac80211/patches/300-pending_work.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch index 3cba6e42ae..7bd287fbbf 100644 --- a/package/mac80211/patches/300-pending_work.patch +++ b/package/mac80211/patches/300-pending_work.patch @@ -3155,3 +3155,32 @@ p += sprintf(p, "\nTotal packet count:: ideal %d " "lookaround %d\n", max(0, (int) mi->total_packets - (int) mi->sample_packets), +--- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c ++++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +@@ -1067,15 +1067,19 @@ static bool ath9k_rx_prepare(struct ath9 + + last_rssi = priv->rx.last_rssi; + +- if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) +- rxbuf->rxstatus.rs_rssi = ATH_EP_RND(last_rssi, +- ATH_RSSI_EP_MULTIPLIER); ++ if (ieee80211_is_beacon(hdr->frame_control) && ++ !is_zero_ether_addr(common->curbssid) && ++ ether_addr_equal(hdr->addr3, common->curbssid)) { ++ s8 rssi = rxbuf->rxstatus.rs_rssi; + +- if (rxbuf->rxstatus.rs_rssi < 0) +- rxbuf->rxstatus.rs_rssi = 0; ++ if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) ++ rssi = ATH_EP_RND(last_rssi, ATH_RSSI_EP_MULTIPLIER); + +- if (ieee80211_is_beacon(fc)) +- priv->ah->stats.avgbrssi = rxbuf->rxstatus.rs_rssi; ++ if (rssi < 0) ++ rssi = 0; ++ ++ priv->ah->stats.avgbrssi = rssi; ++ } + + rx_status->mactime = be64_to_cpu(rxbuf->rxstatus.rs_tstamp); + rx_status->band = hw->conf.channel->band; |