STA+GO New INI parameter to enable FCC regulatory rule
Ini parameter gEnableStrictRegulatoryForFCC to enable
or disable FCC regulatory rule
By default Strict Regulatory FCC rule is enabled.
Change-Id: I64681698727c9d45451e32fe3739dcfb6989fd59
CRs-fixed: 607653
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index b0b97ec..50eb3f5 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2022,6 +2022,7 @@
#define CFG_CTS2S_DURING_BTC_SCO_MIN WNI_CFG_BTC_CTS2S_DURING_SCO_STAMIN
#define CFG_CTS2S_DURING_BTC_SCO_MAX WNI_CFG_BTC_CTS2S_DURING_SCO_STAMAX
+
/*
* Connection related log Enable/Disable.
* 0x1 - Enable mgmt pkt logs (no probe req/rsp).
@@ -2034,6 +2035,12 @@
#define CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX (0xFF)
#define CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT (0)
+#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_NAME "gEnableStrictRegulatoryForFCC"
+#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_MIN ( 0 )
+#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_MAX ( 1 )
+#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_DEFAULT ( 1 )
+
+
/*---------------------------------------------------------------------------
Type declarations
-------------------------------------------------------------------------*/
@@ -2462,6 +2469,7 @@
v_U16_t nOBSSScanActiveDwellTime;
v_U16_t nOBSSScanPassiveDwellTime;
v_U16_t nOBSSScanWidthTriggerInterval;
+ v_BOOL_t gEnableStrictRegulatoryForFCC;
} hdd_config_t;
/*---------------------------------------------------------------------------
Function declarations and documenation
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 74ac6f7..881daae 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2880,6 +2880,14 @@
CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX ),
+
+ REG_VARIABLE( CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, gEnableStrictRegulatoryForFCC,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_DEFAULT,
+ CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_MIN,
+ CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_MAX ),
+
};
/*
diff --git a/CORE/VOSS/src/vos_nvitem.c b/CORE/VOSS/src/vos_nvitem.c
index be7f572..89555c8 100644
--- a/CORE/VOSS/src/vos_nvitem.c
+++ b/CORE/VOSS/src/vos_nvitem.c
@@ -4061,7 +4061,17 @@
/* Haven't seen any condition that will set by driver after init.
If we do, then we should also call sme_ChangeCountryCode */
- if (wiphy->bands[IEEE80211_BAND_5GHZ])
+
+ /* To Disable the strict regulatory FCC rule, need set
+ gEnableStrictRegulatoryForFCC to zero from INI.
+ By default regulatory FCC rule enable or set to 1, and
+ in this case one can control dynamically using IOCTL
+ (nEnableStrictRegulatoryForFCC).
+ If gEnableStrictRegulatoryForFCC is set to zero then
+ IOCTL operation is inactive */
+
+ if ( pHddCtx->cfg_ini->gEnableStrictRegulatoryForFCC &&
+ wiphy->bands[IEEE80211_BAND_5GHZ])
{
for (j=0; j<wiphy->bands[IEEE80211_BAND_5GHZ]->n_channels; j++)
{
diff --git a/firmware_bin/WCNSS_qcom_cfg.ini b/firmware_bin/WCNSS_qcom_cfg.ini
index a5f8ffb..c670148 100644
--- a/firmware_bin/WCNSS_qcom_cfg.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.ini
@@ -429,6 +429,10 @@
gEnableTrafficMonitor=1
gTrafficIdleTimeout=3000
+#Disable/Enable Strict FCC Regulatory
+# 0 to disable, 1 to enable
+gEnableStrictRegulatoryForFCC=1
+
END
# Note: Configuration parser would not read anything past the END marker