Browse Source

qcacld-3.0: Use link info pointer to get station stats

Modify the following API to request station stats on per link
in the adapter. Request and store FW stats corresponding to
the VDEV in the link info structure.
The existing callers moved to deflink pointer.

Change-Id: I6cc9dd7609ce754e2ab7bcb53977aa6637051143
CRs-Fixed: 3520654
Vinod Kumar Pirla 2 years ago
parent
commit
0450e3b41e

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

@@ -2444,7 +2444,7 @@ static int hdd_get_station_info_ex(struct wlan_hdd_link_info *link_info)
 	if (hdd_cm_is_disconnected(link_info) && big_data_fw_support)
 		big_data_stats_req = true;
 
-	if (wlan_hdd_get_station_stats(adapter))
+	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);

+ 6 - 7
core/hdd/src/wlan_hdd_stats.c

@@ -4633,7 +4633,7 @@ static int wlan_hdd_get_sap_stats(struct wlan_hdd_link_info *link_info,
 {
 	int ret;
 
-	ret = wlan_hdd_get_station_stats(adapter);
+	ret = wlan_hdd_get_station_stats(link_info);
 	if (ret) {
 		hdd_err("Failed to get SAP stats; status:%d", ret);
 		return ret;
@@ -6562,7 +6562,7 @@ static int wlan_hdd_get_sta_stats(struct wlan_hdd_link_info *link_info,
 		wlan_hdd_get_rcpi(adapter, (uint8_t *)mac, &rcpi_value,
 				  RCPI_MEASUREMENT_TYPE_AVG_MGMT);
 
-	wlan_hdd_get_station_stats(adapter);
+	wlan_hdd_get_station_stats(link_info);
 
 	wlan_hdd_get_peer_rx_rate_stats(adapter);
 
@@ -7718,7 +7718,7 @@ void wlan_hdd_get_peer_rx_rate_stats(struct hdd_adapter *adapter)
 }
 #endif
 
-int wlan_hdd_get_station_stats(struct hdd_adapter *adapter)
+int wlan_hdd_get_station_stats(struct wlan_hdd_link_info *link_info)
 {
 	int ret = 0;
 	struct stats_event *stats;
@@ -7729,8 +7729,7 @@ int wlan_hdd_get_station_stats(struct hdd_adapter *adapter)
 		return 0;
 	}
 
-	vdev = hdd_objmgr_get_vdev_by_user(adapter->deflink,
-					   WLAN_OSIF_STATS_ID);
+	vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_OSIF_STATS_ID);
 	if (!vdev)
 		return -EINVAL;
 
@@ -7752,8 +7751,8 @@ int wlan_hdd_get_station_stats(struct hdd_adapter *adapter)
 	}
 
 	/* update get stats cached time stamp */
-	hdd_update_station_stats_cached_timestamp(adapter);
-	copy_station_stats_to_adapter(adapter->deflink, stats);
+	hdd_update_station_stats_cached_timestamp(link_info->adapter);
+	copy_station_stats_to_adapter(link_info, stats);
 out:
 	wlan_cfg80211_mc_cp_stats_free_stats_event(stats);
 	hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_STATS_ID);

+ 2 - 2
core/hdd/src/wlan_hdd_stats.h

@@ -520,11 +520,11 @@ wlan_hdd_get_peer_rx_rate_stats(struct hdd_adapter *adapter)
 
 /**
  * wlan_hdd_get_station_stats() - Get station statistics
- * @adapter: adapter for which statistics are desired
+ * @link_info: Link info pointer in HDD adapter.
  *
  * Return: status of operation
  */
-int wlan_hdd_get_station_stats(struct hdd_adapter *adapter);
+int wlan_hdd_get_station_stats(struct wlan_hdd_link_info *link_info);
 
 int wlan_hdd_qmi_get_sync_resume(void);
 int wlan_hdd_qmi_put_suspend(void);

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

@@ -7901,7 +7901,7 @@ static int iw_set_packet_filter_params(struct net_device *dev,
 
 static int hdd_get_wlan_stats(struct hdd_adapter *adapter)
 {
-	int stats = wlan_hdd_get_station_stats(adapter);
+	int stats = wlan_hdd_get_station_stats(adapter->deflink);
 
 	wlan_hdd_get_peer_rx_rate_stats(adapter);