ath10k: report per-chain RSSI.
Signed-off-by: Dmitry Ivanov <[email protected]>
---
drivers/net/wireless/ath/ath10k/htt_rx.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c
b/drivers/net/wireless/ath/ath10k/htt_rx.c
index d7d1183..2d50939 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -832,6 +832,20 @@ static void ath10k_htt_rx_h_signal(struct ath10k *ar,
struct ieee80211_rx_status *status,
struct htt_rx_desc *rxd)
{
+ {
+ /* Linux array has size IEEE80211_MAX_CHAINS, FW array has size
4 */
+ BUILD_BUG_ON(IEEE80211_MAX_CHAINS != 4);
+ u32 i = IEEE80211_MAX_CHAINS;
+ u8 signal_per_chain;
+ do {
+ i--;
+ signal_per_chain =
rxd->ppdu_start.rssi_chains[i].pri20_mhz;
+ if (signal_per_chain != 0x80) {
+ status->chains |= BIT(i);
+ status->chain_signal[i] =
ATH10K_DEFAULT_NOISE_FLOOR + signal_per_chain;
+ }
+ } while (i);
+ }
/* FIXME: Get real NF */
status->signal = ATH10K_DEFAULT_NOISE_FLOOR +
rxd->ppdu_start.rssi_comb;
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html