Browse Source

qcacld-3.0: Use link info pointer to get rx peer stats

To get the peer Rx stats per link, modify the following API
to take link info argument which corresponds to the VDEV for
which the stats are to be fetched as saved in respective
stats structure in link info pointer.
The existing callers moved to deflink pointer.

1) wlan_hdd_get_peer_rx_rate_stats()

Change-Id: I0c3b1532ef9352f00d871b2c9b3073d72bef1bd4
CRs-Fixed: 3520672
Vinod Kumar Pirla 2 years ago
parent
commit
437d62fb08

+ 1 - 1
core/hdd/src/wlan_hdd_station_info.c

@@ -2447,7 +2447,7 @@ static int hdd_get_station_info_ex(struct wlan_hdd_link_info *link_info)
 	if (wlan_hdd_get_station_stats(link_info))
 		hdd_err_rl("wlan_hdd_get_station_stats fail");
 
-	wlan_hdd_get_peer_rx_rate_stats(adapter);
+	wlan_hdd_get_peer_rx_rate_stats(link_info);
 
 	if (big_data_stats_req) {
 		if (wlan_hdd_get_big_data_station_stats(link_info)) {

+ 8 - 10
core/hdd/src/wlan_hdd_stats.c

@@ -2089,7 +2089,7 @@ static void cache_station_stats_cb(struct stats_event *ev, void *cookie)
 			continue;
 		}
 		copy_station_stats_to_adapter(adapter->deflink, ev);
-		wlan_hdd_get_peer_rx_rate_stats(adapter);
+		wlan_hdd_get_peer_rx_rate_stats(adapter->deflink);
 		/* dev_put has to be done here */
 		hdd_adapter_dev_put_debug(adapter, dbgid);
 		if (next_adapter)
@@ -6564,7 +6564,7 @@ static int wlan_hdd_get_sta_stats(struct wlan_hdd_link_info *link_info,
 
 	wlan_hdd_get_station_stats(link_info);
 
-	wlan_hdd_get_peer_rx_rate_stats(adapter);
+	wlan_hdd_get_peer_rx_rate_stats(link_info);
 
 	wlan_hdd_mlo_update_stats_info(adapter);
 
@@ -7657,16 +7657,16 @@ int wlan_hdd_get_link_speed(struct hdd_adapter *adapter, uint32_t *link_speed)
 }
 
 #ifdef FEATURE_RX_LINKSPEED_ROAM_TRIGGER
-void wlan_hdd_get_peer_rx_rate_stats(struct hdd_adapter *adapter)
+void wlan_hdd_get_peer_rx_rate_stats(struct wlan_hdd_link_info *link_info)
 {
 	struct cdp_peer_stats *peer_stats;
 	QDF_STATUS status;
 	ol_txrx_soc_handle soc;
 	uint8_t *peer_mac_addr;
 	struct wlan_objmgr_psoc *psoc;
-	struct hdd_stats *hdd_stats = &adapter->deflink->hdd_stats;
+	struct hdd_stats *hdd_stats = &link_info->hdd_stats;
 
-	psoc = adapter->hdd_ctx->psoc;
+	psoc = link_info->adapter->hdd_ctx->psoc;
 	if (!ucfg_mlme_stats_is_link_speed_report_actual(psoc))
 		return;
 
@@ -7676,7 +7676,7 @@ void wlan_hdd_get_peer_rx_rate_stats(struct hdd_adapter *adapter)
 	if (!peer_stats)
 		return;
 
-	peer_mac_addr = adapter->deflink->session.station.conn_info.bssid.bytes;
+	peer_mac_addr = link_info->session.station.conn_info.bssid.bytes;
 
 	/*
 	 * If failed to get RX rates info, assign an invalid value to the
@@ -7684,10 +7684,8 @@ void wlan_hdd_get_peer_rx_rate_stats(struct hdd_adapter *adapter)
 	 * and rx_mcs_index are also assigned with tx_rate and tx_mcs_index
 	 * if they are invalid after ASSOC/REASSOC/ROAMING
 	 */
-	status = cdp_host_get_peer_stats(soc,
-					 adapter->deflink->vdev_id,
-					 peer_mac_addr,
-					 peer_stats);
+	status = cdp_host_get_peer_stats(soc, link_info->vdev_id,
+					 peer_mac_addr, peer_stats);
 	if (qdf_unlikely(QDF_IS_STATUS_ERROR(status)) ||
 	    qdf_unlikely(peer_stats->rx.last_rx_rate == 0)) {
 		hdd_debug("No rates, reporting max rate, rx mcs=%d, status=%d",

+ 3 - 4
core/hdd/src/wlan_hdd_stats.h

@@ -500,7 +500,7 @@ int wlan_hdd_get_link_speed(struct hdd_adapter *adapter, uint32_t *link_speed);
 #ifdef FEATURE_RX_LINKSPEED_ROAM_TRIGGER
 /**
  * wlan_hdd_get_peer_rx_rate_stats() - STA gets rx rate stats
- * @adapter: adapter upon which the measurement is requested
+ * @link_info: Link info pointer in HDD adapter
  *
  * STA gets rx rate stats through using the existed API
  * cdp_host_get_peer_stats. The reason that we make this
@@ -509,11 +509,10 @@ int wlan_hdd_get_link_speed(struct hdd_adapter *adapter, uint32_t *link_speed);
  *
  * Return: void
  */
-void
-wlan_hdd_get_peer_rx_rate_stats(struct hdd_adapter *adapter);
+void wlan_hdd_get_peer_rx_rate_stats(struct wlan_hdd_link_info *link_info);
 #else
 static inline void
-wlan_hdd_get_peer_rx_rate_stats(struct hdd_adapter *adapter)
+wlan_hdd_get_peer_rx_rate_stats(struct wlan_hdd_link_info *link_info)
 {
 }
 #endif

+ 1 - 1
core/hdd/src/wlan_hdd_wext.c

@@ -7903,7 +7903,7 @@ static int hdd_get_wlan_stats(struct hdd_adapter *adapter)
 {
 	int stats = wlan_hdd_get_station_stats(adapter->deflink);
 
-	wlan_hdd_get_peer_rx_rate_stats(adapter);
+	wlan_hdd_get_peer_rx_rate_stats(adapter->deflink);
 
 	return stats;
 }