]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: ath11k: modify the calculation of the average signal strength in station mode
authorLingbo Kong <quic_lingbok@quicinc.com>
Sat, 9 Mar 2024 12:11:29 +0000 (20:11 +0800)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 19 Jun 2024 14:00:12 +0000 (17:00 +0300)
Currently, the calculation of the average signal strength in station mode
is incorrect.

This is because before calculating the average signal strength, ath11k need
to determine whether the hardware and firmware support db2dbm, if the
hardware and firmware support db2dbm, do not need to add noise floor,
otherwise, need to add noise floor.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23

Signed-off-by: Lingbo Kong <quic_lingbok@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://patch.msgid.link/20240309121129.5379-1-quic_lingbok@quicinc.com
drivers/net/wireless/ath/ath11k/mac.c

index bb56160048ba589b304b205db0d91111211be001..779009774567f5eda7c55fc60eeead6209183977 100644 (file)
@@ -8984,8 +8984,11 @@ static void ath11k_mac_op_sta_statistics(struct ieee80211_hw *hw,
                sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL);
        }
 
-       sinfo->signal_avg = ewma_avg_rssi_read(&arsta->avg_rssi) +
-               ATH11K_DEFAULT_NOISE_FLOOR;
+       sinfo->signal_avg = ewma_avg_rssi_read(&arsta->avg_rssi);
+
+       if (!db2dbm)
+               sinfo->signal_avg += ATH11K_DEFAULT_NOISE_FLOOR;
+
        sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
 }