Return-path: Received: from mail-pf0-f194.google.com ([209.85.192.194]:35702 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752217AbdI3Ril (ORCPT ); Sat, 30 Sep 2017 13:38:41 -0400 Received: by mail-pf0-f194.google.com with SMTP id i23so1766249pfi.2 for ; Sat, 30 Sep 2017 10:38:41 -0700 (PDT) From: silexcommon@gmail.com To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Alagu Sankar Subject: [PATCH 07/11] ath10k_sdio: fix rssi indication Date: Sat, 30 Sep 2017 23:07:44 +0530 Message-Id: <1506793068-27445-8-git-send-email-alagusankar@silex-india.com> (sfid-20170930_193803_815759_5C872FEE) In-Reply-To: <1506793068-27445-1-git-send-email-alagusankar@silex-india.com> References: <1506793068-27445-1-git-send-email-alagusankar@silex-india.com> Sender: linux-wireless-owner@vger.kernel.org List-ID: From: Alagu Sankar Receive descriptor of sdio device does not include the rssi. notify mac80211 accordingly. Without the fix, the rssi value indicated by iw changes between the actual value and -95. Signed-off-by: Alagu Sankar --- drivers/net/wireless/ath/ath10k/htt_rx.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c index f025363..21adcad 100644 --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c @@ -1646,9 +1646,16 @@ static bool ath10k_htt_rx_proc_rx_ind_hl(struct ath10k_htt *htt, hdr = (struct ieee80211_hdr *)skb->data; rx_status = IEEE80211_SKB_RXCB(skb); rx_status->chains |= BIT(0); - rx_status->signal = ATH10K_DEFAULT_NOISE_FLOOR + - rx->ppdu.combined_rssi; - rx_status->flag &= ~RX_FLAG_NO_SIGNAL_VAL; + + if (ar->hif.bus == ATH10K_BUS_SDIO) { + /* SDIO firmware does not provide signal */ + rx_status->signal = 0; + rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; + } else { + rx_status->signal = ATH10K_DEFAULT_NOISE_FLOOR + + rx->ppdu.combined_rssi; + rx_status->flag &= ~RX_FLAG_NO_SIGNAL_VAL; + } spin_lock_bh(&ar->data_lock); ch = ar->scan_channel; -- 1.9.1