wlan: Configure PNO Feature support through ini
Advertise PNO driver capability based on configurable INI
parameter "gPNOScanSupport".
Change-Id: I8a0dc8bfa08dd50b0fcdec07d21dbd33c43e8945
CRs-fixed: 573508
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index ec7ee7d..1fa8604 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1914,6 +1914,11 @@
#define CFG_SPLIT_SCAN_TRAFFIC_MONITOR_TIMER_DEFAULT ( 5000 )
#ifdef FEATURE_WLAN_SCAN_PNO
+#define CFG_PNO_SCAN_SUPPORT "gPNOScanSupport"
+#define CFG_PNO_SCAN_SUPPORT_ENABLE ( 1 )
+#define CFG_PNO_SCAN_SUPPORT_DISABLE ( 0 )
+#define CFG_PNO_SCAN_SUPPORT_DEFAULT ( 1 )
+
#define CFG_PNO_SCAN_TIMER_REPEAT_VALUE "gPNOScanTimerRepeatValue"
#define CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT ( 6 )
#define CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN ( 0 )
@@ -2336,6 +2341,7 @@
v_BOOL_t fEnableSNRMonitoring;
/*PNO related parameters */
#ifdef FEATURE_WLAN_SCAN_PNO
+ v_BOOL_t configPNOScanSupport;
v_U32_t configPNOScanTimerRepeatValue;
#endif
v_U8_t isAmsduSupportInAMPDU;
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 4c0c68d..1a97f16 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2778,6 +2778,13 @@
CFG_ENABLE_SNR_MONITORING_MAX),
#ifdef FEATURE_WLAN_SCAN_PNO
+ REG_VARIABLE( CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
+ hdd_config_t, configPNOScanSupport,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_PNO_SCAN_SUPPORT_DEFAULT,
+ CFG_PNO_SCAN_SUPPORT_DISABLE,
+ CFG_PNO_SCAN_SUPPORT_ENABLE),
+
REG_VARIABLE( CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
hdd_config_t, configPNOScanTimerRepeatValue,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index fbf933f..5c433d5 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -678,10 +678,13 @@
| WIPHY_FLAG_TDLS_EXTERNAL_SETUP;
#endif
#ifdef FEATURE_WLAN_SCAN_PNO
- wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN;
- wiphy->max_sched_scan_ssids = SIR_PNO_MAX_SUPP_NETWORKS;
- wiphy->max_match_sets = SIR_PNO_MAX_SUPP_NETWORKS;
- wiphy->max_sched_scan_ie_len = SIR_MAC_MAX_IE_LENGTH;
+ if (pCfg->configPNOScanSupport)
+ {
+ wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN;
+ wiphy->max_sched_scan_ssids = SIR_PNO_MAX_SUPP_NETWORKS;
+ wiphy->max_match_sets = SIR_PNO_MAX_SUPP_NETWORKS;
+ wiphy->max_sched_scan_ie_len = SIR_MAC_MAX_IE_LENGTH;
+ }
#endif/*FEATURE_WLAN_SCAN_PNO*/
#ifdef CONFIG_ENABLE_LINUX_REG