From: Alagu Sankar <[email protected]>

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 <[email protected]>
---
 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


_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to