diff options
| author | Zhang Qian <zhangq@codeaurora.org> | 2019-03-01 16:09:52 +0800 |
|---|---|---|
| committer | Zhang Qian <zhangq@codeaurora.org> | 2019-03-04 18:18:12 +0800 |
| commit | 112b05aa02ea75e581b69a5ab3154acde2b1fa44 (patch) | |
| tree | 393e1df10b6356e6fce68bf40664eb495a5012db | |
| parent | 63ea3bbf4d588a0e9130b7aa3b2b11b6b7b10292 (diff) | |
qcacld-2.0: Add register key per_chain_stats
Add register key per_chain_stats and disable per
antenna stats by default.
Change-Id: I20e713fbc7cacc0c2b424340e095a09fa1695df5
CRs-Fixed: 2407762
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 25 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 6 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 13 |
3 files changed, 42 insertions, 2 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index 5eef84e603ef..284b6455e373 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -5592,6 +5592,29 @@ FG_BTC_BT_INTERVAL_PAGE_P2P_STA_DEFAULT #define CFG_IS_SAE_ENABLED_MIN (0) #define CFG_IS_SAE_ENABLED_MAX (1) +/* + * <ini> + * per_chain_stats - Enable/Disable per antenna LL stats + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to enable/disable per antenna LL stats. + * When antenna diversity is enabled this should be set to 1. + * + * Related: None + * + * Supported Feature: antenna diversity + * Usage: External + * + * </ini> + */ + +#define CFG_IS_PER_CHAIN_STATS_ENABLED_NAME "per_chain_stats" +#define CFG_IS_PER_CHAIN_STATS_ENABLED_DEFAULT (0) +#define CFG_IS_PER_CHAIN_STATS_ENABLED_MIN (0) +#define CFG_IS_PER_CHAIN_STATS_ENABLED_MAX (1) + /*--------------------------------------------------------------------------- Type declarations -------------------------------------------------------------------------*/ @@ -6522,6 +6545,8 @@ struct hdd_config { #ifdef WLAN_FEATURE_SAE bool is_sae_enabled; #endif + + bool per_chain_stats_enabled; }; typedef struct hdd_config hdd_config_t; diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index be633249f250..c6283f308c77 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -5446,6 +5446,12 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_IS_SAE_ENABLED_MIN, CFG_IS_SAE_ENABLED_MAX), #endif + REG_VARIABLE(CFG_IS_PER_CHAIN_STATS_ENABLED_NAME, WLAN_PARAM_Integer, + struct hdd_config, per_chain_stats_enabled, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_IS_SAE_ENABLED_DEFAULT, + CFG_IS_SAE_ENABLED_MIN, + CFG_IS_SAE_ENABLED_MAX), }; diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 388a7517b109..306285d9fbd4 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -7131,13 +7131,22 @@ static int put_wifi_signal_info(struct sir_wifi_peer_signal_stats *peer_signal, { uint32_t i, chain_count; struct nlattr *chains, *att; + v_CONTEXT_t vos_context = vos_get_global_context(0, NULL); + hdd_context_t *hdd_ctx; + + hdd_ctx = vos_get_context(VOS_MODULE_ID_HDD, vos_context); /* There might be no signal info for a peer */ if (peer_signal == NULL) return 0; - chain_count = peer_signal->num_chain < WIFI_MAX_CHAINS ? - peer_signal->num_chain : WIFI_MAX_CHAINS; + if ((!hdd_ctx) || (hdd_ctx->cfg_ini->per_chain_stats_enabled == 0)) + chain_count = WIFI_MAX_CHAINS; + else + chain_count = peer_signal->num_chain < WIFI_MAX_CHAINS ? + peer_signal->num_chain : WIFI_MAX_CHAINS; + + hddLog(LOG2, FL("chain_count=%d"), chain_count); if (nla_put_u32(skb, QCA_WLAN_VENDOR_ATTR_LL_STATS_EXT_PEER_ANT_NUM, chain_count)) { |
