Pārlūkot izejas kodu

qcacmn: Fix wrong rssi in monitor mode

If ppdu rssi unit is dbm, need convert to db for API:
qdf_nbuf_update_radiotap, only need convert once for first mdpu in the
ppdu. if convert for each mpdu, wrong rssi will be saved.

Change-Id: I85e92121ddb289e3513022ff092083825197efb4
CRs-Fixed: 3057041
Jianmin Zhu 3 gadi atpakaļ
vecāks
revīzija
fb1db30308

+ 0 - 2
dp/wifi3.0/monitor/dp_rx_mon.c

@@ -1419,8 +1419,6 @@ QDF_STATUS dp_rx_mon_deliver(struct dp_soc *soc, uint32_t mac_id,
 		mon_pdev->ppdu_info.rx_status.device_id = soc->device_id;
 		mon_pdev->ppdu_info.rx_status.chan_noise_floor =
 			pdev->chan_noise_floor;
-		/* convert rssi_comb from dBm to positive dB value */
-		dp_rx_mon_rssi_convert(&mon_pdev->ppdu_info.rx_status);
 
 		dp_handle_tx_capture(soc, pdev, mon_mpdu);
 

+ 0 - 22
dp/wifi3.0/monitor/dp_rx_mon.h

@@ -581,28 +581,6 @@ dp_cfr_rcc_mode_status(struct dp_pdev *pdev)
 }
 #endif /* WLAN_CFR_ENABLE && WLAN_ENH_CFR_ENABLE */
 
-
-#ifdef DP_MON_RSSI_IN_DBM
-/*
- * dp_rx_mon_rssi_convert(): convert rssi_comb from unit dBm to dB
- * to match with radiotap further conversion requirement
- * @rx_status: monitor mode rx status pointer
- *
- * Return: none
- */
-static inline
-void dp_rx_mon_rssi_convert(struct mon_rx_status *rx_status)
-{
-	rx_status->rssi_comb = rx_status->rssi_comb -
-			rx_status->chan_noise_floor;
-}
-#else
-static inline
-void dp_rx_mon_rssi_convert(struct mon_rx_status *rx_status)
-{
-}
-#endif
-
 /*
  * dp_rx_mon_deliver(): function to deliver packets to stack
  * @soc: DP soc

+ 9 - 1
qdf/linux/src/qdf_nbuf.c

@@ -4630,6 +4630,14 @@ static unsigned int qdf_nbuf_update_radiotap_ampdu_flags(
 	return rtap_len;
 }
 
+#ifdef DP_MON_RSSI_IN_DBM
+#define QDF_MON_STATUS_GET_RSSI_IN_DBM(rx_status) \
+(rx_status->rssi_comb)
+#else
+#define QDF_MON_STATUS_GET_RSSI_IN_DBM(rx_status) \
+(rx_status->rssi_comb + rx_status->chan_noise_floor)
+#endif
+
 /**
  * qdf_nbuf_update_radiotap() - Update radiotap header from rx_status
  * @rx_status: Pointer to rx_status.
@@ -4705,7 +4713,7 @@ unsigned int qdf_nbuf_update_radiotap(struct mon_rx_status *rx_status,
 	 * rssi_comb is int dB, need to convert it to dBm.
 	 * normalize value to noise floor of -96 dBm
 	 */
-	rtap_buf[rtap_len] = rx_status->rssi_comb + rx_status->chan_noise_floor;
+	rtap_buf[rtap_len] = QDF_MON_STATUS_GET_RSSI_IN_DBM(rx_status);
 	rtap_len += 1;
 
 	/* RX signal noise floor */