[PATCH] ath10k: add per chain RSSI reporting

AceLan Kao acelan.kao at canonical.com
Wed Jul 26 07:43:39 UTC 2017


From: Norik Dzhandzhapanyan <norikd at gmail.com>

BugLink: http://bugs.launchpad.net/bugs/1706531

Report per chain RSSI to mac80211.

Signed-off-by: Norik Dzhandzhapanyan <norikd at gmail.com>
[kvalo at qca.qualcomm.com: fix conflicts and style]
Signed-off-by: Kalle Valo <kvalo at qca.qualcomm.com>

(cherry picked from commit 8241253d03fe9098e98315a4d66027ae31ab65c5)
Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
---
 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 6060dda..56b9575 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -875,6 +875,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;
-- 
2.7.4





More information about the kernel-team mailing list