Преглед изворни кода

qcacmn: Update rssi only when its valid

Peer stats struct members initial value 0, so when other functions call
to update peer stats have 0 rssi value which updates mininum
rssi since its the least value. So initialize the rssi with invalid
value initially

Change-Id: Ife033598c7ac47a9a26595f97bff058570d3e91f
CRs-Fixed: 2403735
Surya Prakash пре 6 година
родитељ
комит
07c81e7d77
3 измењених фајлова са 5 додато и 1 уклоњено
  1. 2 0
      dp/inc/cdp_txrx_stats_struct.h
  2. 2 0
      dp/wifi3.0/dp_main.c
  3. 1 1
      dp/wifi3.0/dp_rx_mon_status.c

+ 2 - 0
dp/inc/cdp_txrx_stats_struct.h

@@ -118,6 +118,8 @@
 #define CDP_FC_IS_RETRY_SET(_fc) \
 	((_fc) & qdf_cpu_to_le16(CDP_FCTL_RETRY))
 
+#define INVALID_RSSI 255
+
 /* Different Packet Types */
 enum cdp_packet_type {
 	DOT11_A = 0,

+ 2 - 0
dp/wifi3.0/dp_main.c

@@ -4941,6 +4941,7 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
 
 		dp_local_peer_id_alloc(pdev, peer);
 		DP_STATS_INIT(peer);
+		DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI);
 
 		return (void *)peer;
 	} else {
@@ -5032,6 +5033,7 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
 	peer->valid = 1;
 	dp_local_peer_id_alloc(pdev, peer);
 	DP_STATS_INIT(peer);
+	DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI);
 
 	qdf_mem_copy(peer_cookie.mac_addr, peer->mac_addr.raw,
 		     QDF_MAC_ADDR_SIZE);

+ 1 - 1
dp/wifi3.0/dp_rx_mon_status.c

@@ -220,7 +220,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
 		return;
 
 	DP_STATS_UPD(peer, rx.rssi, ppdu->rssi);
-	if (!peer->stats.rx.avg_rssi)
+	if (peer->stats.rx.avg_rssi == INVALID_RSSI)
 		peer->stats.rx.avg_rssi = ppdu->rssi;
 	else
 		peer->stats.rx.avg_rssi =