From 915f53b12f83745b8a6df44d24c1f212c4651ba3 Mon Sep 17 00:00:00 2001 From: Aniruddha Paul Date: Wed, 13 May 2020 17:43:58 +0530 Subject: [PATCH] qcacmn: Add INI support for peer ext stats Add INI support for peer extended stats. The extended stats as of now include per peer Tx/Rx delay per packet path. Change-Id: I20d3c7f81f65f4db5f111eb103945151a8cd83aa --- wlan_cfg/cfg_dp.h | 7 ++++++- wlan_cfg/wlan_cfg.c | 14 ++++++++++++++ wlan_cfg/wlan_cfg.h | 26 +++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h index 3688788b65..e0f6ec6b02 100644 --- a/wlan_cfg/cfg_dp.h +++ b/wlan_cfg/cfg_dp.h @@ -846,6 +846,10 @@ WLAN_CFG_NUM_REO_RINGS_MAP, \ CFG_VALUE_OR_DEFAULT, "REO Destination Rings Mapping") +#define CFG_DP_PEER_EXT_STATS \ + CFG_INI_BOOL("peer_ext_stats", \ + false, "Peer extended stats") + #define CFG_DP \ CFG(CFG_DP_HTT_PACKET_TYPE) \ CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \ @@ -921,6 +925,7 @@ CFG(CFG_DP_PKTLOG_BUFFER_SIZE) \ CFG(CFG_DP_RX_FISA_ENABLE) \ CFG(CFG_DP_FULL_MON_MODE) \ - CFG(CFG_DP_REO_RINGS_MAP) + CFG(CFG_DP_REO_RINGS_MAP) \ + CFG(CFG_DP_PEER_EXT_STATS) #endif /* _CFG_DP_H_ */ diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index b809d9c275..e94f09469a 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -605,6 +605,7 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc) cfg_get(psoc, CFG_DP_RXDMA_MONITOR_RX_DROP_THRESHOLD); wlan_cfg_ctx->is_rx_fisa_enabled = cfg_get(psoc, CFG_DP_RX_FISA_ENABLE); wlan_cfg_ctx->reo_rings_mapping = cfg_get(psoc, CFG_DP_REO_RINGS_MAP); + wlan_cfg_ctx->pext_stats_enabled = cfg_get(psoc, CFG_DP_PEER_EXT_STATS); return wlan_cfg_ctx; } @@ -1356,3 +1357,16 @@ wlan_cfg_is_rx_mon_protocol_flow_tag_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) { return cfg->is_rx_mon_protocol_flow_tag_enabled; } + +void +wlan_cfg_set_peer_ext_stats(struct wlan_cfg_dp_soc_ctxt *cfg, + bool val) +{ + cfg->pext_stats_enabled = val; +} + +bool +wlan_cfg_is_peer_ext_stats_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) +{ + return cfg->pext_stats_enabled; +} diff --git a/wlan_cfg/wlan_cfg.h b/wlan_cfg/wlan_cfg.h index b158abda79..596cec193b 100644 --- a/wlan_cfg/wlan_cfg.h +++ b/wlan_cfg/wlan_cfg.h @@ -183,7 +183,7 @@ struct wlan_srng_cfg { * 5 tuple flow entry * @pktlog_buffer_size: packet log buffer size * @is_rx_fisa_enabled: flag to enable/disable FISA Rx - * @reo_rings_mapping: reo destination ring bitmap + * @pext_stats_enabled: Flag to enable and disabled peer extended stats */ struct wlan_cfg_dp_soc_ctxt { int num_int_ctxts; @@ -285,6 +285,7 @@ struct wlan_cfg_dp_soc_ctxt { bool is_tso_desc_attach_defer; uint32_t delayed_replenish_entries; uint32_t reo_rings_mapping; + bool pext_stats_enabled; }; /** @@ -1340,3 +1341,26 @@ bool wlan_cfg_is_tso_desc_attach_defer(struct wlan_cfg_dp_soc_ctxt *cfg); * Return: reo ring bitmap. */ uint32_t wlan_cfg_get_reo_rings_mapping(struct wlan_cfg_dp_soc_ctxt *cfg); + +/** + * wlan_cfg_set_peer_ext_stats() - set peer extended stats + * + * @wlan_cfg_dp_soc_ctxt: soc configuration context + * @val: Flag value read from INI + * + * Return: void + */ +void +wlan_cfg_set_peer_ext_stats(struct wlan_cfg_dp_soc_ctxt *cfg, + bool val); + +/** + * wlan_cfg_is_peer_ext_stats_enabled() - Check if peer extended + * stats are enabled + * + * @wlan_cfg_dp_soc_ctxt: soc configuration context + * + * Return: bool + */ +bool +wlan_cfg_is_peer_ext_stats_enabled(struct wlan_cfg_dp_soc_ctxt *cfg);