|
@@ -1067,15 +1067,19 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
|
|
|
|
|
|
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;
|