From 248a0600d6d1698e3240c2d3a12e809208627bcd Mon Sep 17 00:00:00 2001 From: Rajeev Kumar Date: Tue, 10 Nov 2020 14:31:18 -0800 Subject: [PATCH] qcacld-3.0: Avoid target wake up for multiple get stats req If get stats request has been fetched recently then avoid target wake up for next subsequent get stats req by returning cached station stats. Change-Id: I3aba4fdc7966a5e9e4ff38003bb80ebd7a3178f1 CRs-Fixed: 2833838 --- core/hdd/src/wlan_hdd_stats.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/core/hdd/src/wlan_hdd_stats.c b/core/hdd/src/wlan_hdd_stats.c index 015789f5b1eb..0db97b6e8059 100644 --- a/core/hdd/src/wlan_hdd_stats.c +++ b/core/hdd/src/wlan_hdd_stats.c @@ -185,6 +185,20 @@ static int rssi_mcs_tbl[][14] = { static bool get_station_fw_request_needed = true; +#ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION +static void +hdd_update_station_stats_cached_timestamp(struct hdd_adapter *adapter) +{ + adapter->hdd_stats.sta_stats_cached_timestamp = + qdf_system_ticks_to_msecs(qdf_system_ticks()); +} +#else +static void +hdd_update_station_stats_cached_timestamp(struct hdd_adapter *adapter) +{ +} +#endif /* FEATURE_CLUB_LL_STATS_AND_GET_STATION */ + #ifdef WLAN_FEATURE_LINK_LAYER_STATS /** @@ -1579,20 +1593,6 @@ static void wlan_hdd_dealloc_ll_stats(void *priv) qdf_list_destroy(&ll_stats_priv->ll_stats_q); } -#ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION -static void -hdd_update_station_stats_cached_timestamp(struct hdd_adapter *adapter) -{ - adapter->hdd_stats.sta_stats_cached_timestamp = - qdf_system_ticks_to_msecs(qdf_system_ticks()); -} -#else -static void -hdd_update_station_stats_cached_timestamp(struct hdd_adapter *adapter) -{ -} -#endif /* FEATURE_CLUB_LL_STATS_AND_GET_STATION */ - /* * copy_station_stats_to_adapter() - Copy station stats to adapter * @adapter: Pointer to the adapter @@ -6448,6 +6448,8 @@ int wlan_hdd_get_station_stats(struct hdd_adapter *adapter) goto out; } + /* update get stats cached time stamp */ + hdd_update_station_stats_cached_timestamp(adapter); copy_station_stats_to_adapter(adapter, stats); wlan_cfg80211_mc_cp_stats_free_stats_event(stats);