diff mbox

ath10k: add per chain RSSI reporting

Message ID 1501055019-24864-2-git-send-email-acelan.kao@canonical.com
State New
Headers show

Commit Message

AceLan Kao July 26, 2017, 7:43 a.m. UTC
From: Norik Dzhandzhapanyan <norikd@gmail.com>

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

Report per chain RSSI to mac80211.

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

(cherry picked from commit 8241253d03fe9098e98315a4d66027ae31ab65c5)
Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
---
 drivers/net/wireless/ath/ath10k/htt_rx.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Stefan Bader July 27, 2017, 2:44 p.m. UTC | #1
On 26.07.2017 09:43, AceLan Kao wrote:
> From: Norik Dzhandzhapanyan <norikd@gmail.com>
> 
> BugLink: http://bugs.launchpad.net/bugs/1706531
> 
> Report per chain RSSI to mac80211.
> 
> Signed-off-by: Norik Dzhandzhapanyan <norikd@gmail.com>
> [kvalo@qca.qualcomm.com: fix conflicts and style]
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
> 
> (cherry picked from commit 8241253d03fe9098e98315a4d66027ae31ab65c5)
> Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
Acked-by: Stefan Bader <stefan.bader@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;
>
Seth Forshee July 27, 2017, 7:41 p.m. UTC | #2
On Wed, Jul 26, 2017 at 03:43:39PM +0800, AceLan Kao wrote:
> From: Norik Dzhandzhapanyan <norikd@gmail.com>
> 
> BugLink: http://bugs.launchpad.net/bugs/1706531
> 
> Report per chain RSSI to mac80211.
> 
> Signed-off-by: Norik Dzhandzhapanyan <norikd@gmail.com>
> [kvalo@qca.qualcomm.com: fix conflicts and style]
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
> 
> (cherry picked from commit 8241253d03fe9098e98315a4d66027ae31ab65c5)
> Signed-off-by: AceLan Kao <acelan.kao@canonical.com>

Acked-by: Seth Forshee <seth.forshee@canonical.com>

Applied to artful/master-next and unstable/master, thanks.
Kleber Sacilotto de Souza Aug. 7, 2017, 1:32 p.m. UTC | #3
Applied on xenial/master-next and zesty/master-next branches.

Thank you,
Kleber
diff mbox

Patch

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;