qcacld-3.0: Move fields from hdd_stats to adapter
Move below two fields from hdd_stats struct to hdd_adapter 1) is_ll_stats_req_pending Stats will be requested on adapter and in case of MLO the bitmap of VDEV is send to FW to request all associated VDEV's stats. 2) sta_stats_cached_timestamp As stats for each VDEV in adapter will be queried in one request to FW, the timestamp of last stats update is per adapter. Change-Id: I7291e7700a4e6de47196869731b4fdf353a17e78 CRs-Fixed: 3451925
Dieser Commit ist enthalten in:

committet von
Rahul Choudhary

Ursprung
f523ce01c2
Commit
64cf277083
@@ -592,11 +592,6 @@ struct hdd_stats {
|
||||
struct hdd_peer_stats peer_stats;
|
||||
struct hdd_pmf_stats hdd_pmf_stats;
|
||||
struct pmf_bcn_protect_stats bcn_protect_stats;
|
||||
qdf_atomic_t is_ll_stats_req_pending;
|
||||
|
||||
#ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION
|
||||
uint32_t sta_stats_cached_timestamp;
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1077,6 +1072,8 @@ struct wlan_hdd_tx_power {
|
||||
* @event_flags: a bitmap of hdd_adapter_flags
|
||||
* @active_links: a bitmap of active links in @link_info array
|
||||
* @hdd_stats: HDD statistics
|
||||
* @is_ll_stats_req_pending: atomic variable to check active stats req
|
||||
* @sta_stats_cached_timestamp: last updated stats timestamp
|
||||
* @estimated_linkspeed: estimated link speed
|
||||
* @qdf_monitor_mode_vdev_up_event: QDF event for monitor mode vdev up
|
||||
* @disconnect_comp_var: completion variable for disconnect callback
|
||||
@@ -1208,6 +1205,11 @@ struct hdd_adapter {
|
||||
unsigned long active_links;
|
||||
|
||||
struct hdd_stats hdd_stats;
|
||||
qdf_atomic_t is_ll_stats_req_pending;
|
||||
|
||||
#ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION
|
||||
uint32_t sta_stats_cached_timestamp;
|
||||
#endif
|
||||
|
||||
uint32_t estimated_linkspeed;
|
||||
|
||||
|
@@ -1609,7 +1609,7 @@ hdd_update_feature_cfg_club_get_sta_in_ll_stats_req(
|
||||
static void
|
||||
hdd_init_get_sta_in_ll_stats_config(struct hdd_adapter *adapter)
|
||||
{
|
||||
adapter->hdd_stats.sta_stats_cached_timestamp = 0;
|
||||
adapter->sta_stats_cached_timestamp = 0;
|
||||
}
|
||||
#else
|
||||
static void
|
||||
@@ -6425,7 +6425,7 @@ hdd_alloc_station_adapter(struct hdd_context *hdd_ctx, tSirMacAddr mac_addr,
|
||||
adapter->start_time = qdf_system_ticks();
|
||||
adapter->last_time = adapter->start_time;
|
||||
|
||||
qdf_atomic_init(&adapter->hdd_stats.is_ll_stats_req_pending);
|
||||
qdf_atomic_init(&adapter->is_ll_stats_req_pending);
|
||||
hdd_init_get_sta_in_ll_stats_config(adapter);
|
||||
|
||||
return adapter;
|
||||
|
@@ -375,7 +375,7 @@ static void copy_station_big_data_stats_to_adapter(
|
||||
static void
|
||||
hdd_update_station_stats_cached_timestamp(struct hdd_adapter *adapter)
|
||||
{
|
||||
adapter->hdd_stats.sta_stats_cached_timestamp =
|
||||
adapter->sta_stats_cached_timestamp =
|
||||
qdf_system_ticks_to_msecs(qdf_system_ticks());
|
||||
}
|
||||
#else
|
||||
@@ -2057,12 +2057,12 @@ static void wlan_hdd_dealloc_ll_stats(void *priv)
|
||||
static QDF_STATUS
|
||||
wlan_hdd_set_ll_stats_request_pending(struct hdd_adapter *adapter)
|
||||
{
|
||||
if (qdf_atomic_read(&adapter->hdd_stats.is_ll_stats_req_pending)) {
|
||||
if (qdf_atomic_read(&adapter->is_ll_stats_req_pending)) {
|
||||
hdd_nofl_debug("Previous ll_stats request is in progress");
|
||||
return QDF_STATUS_E_ALREADY;
|
||||
}
|
||||
|
||||
qdf_atomic_set(&adapter->hdd_stats.is_ll_stats_req_pending, 1);
|
||||
qdf_atomic_set(&adapter->is_ll_stats_req_pending, 1);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -2255,7 +2255,7 @@ static QDF_STATUS wlan_hdd_stats_request_needed(struct hdd_adapter *adapter)
|
||||
|
||||
stats_cached_duration =
|
||||
qdf_system_ticks_to_msecs(qdf_system_ticks()) -
|
||||
adapter->hdd_stats.sta_stats_cached_timestamp;
|
||||
adapter->sta_stats_cached_timestamp;
|
||||
if (stats_cached_duration <=
|
||||
adapter->hdd_ctx->config->sta_stats_cache_expiry_time)
|
||||
return QDF_STATUS_E_ALREADY;
|
||||
@@ -2384,7 +2384,7 @@ static int wlan_hdd_send_ll_stats_req(struct hdd_adapter *adapter,
|
||||
}
|
||||
qdf_list_destroy(&priv->ll_stats_q);
|
||||
exit:
|
||||
qdf_atomic_set(&adapter->hdd_stats.is_ll_stats_req_pending, 0);
|
||||
qdf_atomic_set(&adapter->is_ll_stats_req_pending, 0);
|
||||
wlan_hdd_reset_station_stats_request_pending(hdd_ctx->psoc, adapter);
|
||||
hdd_exit();
|
||||
osif_request_put(request);
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren