ath9k_htc: fix signal strength reporting issues
SVN-Revision: 35749
This commit is contained in:
parent
0ab5ab2c08
commit
d642c4465f
1 changed files with 29 additions and 0 deletions
|
@ -3155,3 +3155,32 @@
|
||||||
p += sprintf(p, "\nTotal packet count:: ideal %d "
|
p += sprintf(p, "\nTotal packet count:: ideal %d "
|
||||||
"lookaround %d\n",
|
"lookaround %d\n",
|
||||||
max(0, (int) mi->total_packets - (int) mi->sample_packets),
|
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;
|
||||||
|
|
Loading…
Reference in a new issue