From 4dd845b8c6061e076ce0251b8066c483e363e443 Mon Sep 17 00:00:00 2001 From: Norik Dzhandzhapanyan Date: Wed, 26 Jul 2017 15:43:39 +0800 Subject: [PATCH] ath10k: add per chain RSSI reporting BugLink: http://bugs.launchpad.net/bugs/1706531 Report per chain RSSI to mac80211. Signed-off-by: Norik Dzhandzhapanyan [kvalo@qca.qualcomm.com: fix conflicts and style] Signed-off-by: Kalle Valo (cherry picked from commit 8241253d03fe9098e98315a4d66027ae31ab65c5) Signed-off-by: AceLan Kao Acked-by: Stefan Bader Signed-off-by: Seth Forshee --- drivers/net/wireless/ath/ath10k/htt_rx.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c index 84b6067ff6e77..615ad4fcaf3a0 100644 --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c @@ -829,6 +829,19 @@ static void ath10k_htt_rx_h_signal(struct ath10k *ar, struct ieee80211_rx_status *status, struct htt_rx_desc *rxd) { + int i; + + for (i = 0; i < IEEE80211_MAX_CHAINS ; i++) { + status->chains &= ~BIT(i); + + if (rxd->ppdu_start.rssi_chains[i].pri20_mhz != 0x80) { + status->chain_signal[i] = ATH10K_DEFAULT_NOISE_FLOOR + + rxd->ppdu_start.rssi_chains[i].pri20_mhz; + + status->chains |= BIT(i); + } + } + /* FIXME: Get real NF */ status->signal = ATH10K_DEFAULT_NOISE_FLOOR + rxd->ppdu_start.rssi_comb;