wlan: Add routines to support CRDA
Add support for CRDA regulatory functionality
Change-Id: I544678c343af5882328642b17af7b2cb4ff32633
CR-Fixed: NA
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 8b1797e..de7678e 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -373,6 +373,11 @@
#define CFG_INTF3_MAC_ADDR_MAX "ffffffffffff"
#define CFG_INTF3_MAC_ADDR_DEFAULT "000AF5898983"
+#define CFG_CRDA_DEFAULT_COUNTRY_CODE "gCrdaDefaultCountryCode"
+#define CFG_CRDA_DEFAULT_COUNTRY_CODE_MIN "00"
+#define CFG_CRDA_DEFAULT_COUNTRY_CODE_MAX "ZZ"
+#define CFG_CRDA_DEFAULT_COUNTRY_CODE_DEFAULT "ZZ"
+
#ifdef WLAN_SOFTAP_FEATURE
#define CFG_AP_QOS_UAPSD_MODE_NAME "gEnableApUapsd" // ACs to setup U-APSD for at assoc
#define CFG_AP_QOS_UAPSD_MODE_MIN ( 0 )
@@ -1412,6 +1417,7 @@
v_U8_t intfAddrMask;
v_MACADDR_t intfMacAddr[VOS_MAX_CONCURRENCY_PERSONA];
+ v_U8_t crdaDefaultCountryCode [3];
#ifdef WLAN_SOFTAP_FEATURE
v_BOOL_t apUapsdEnabled;
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index eb7d44c..122f156 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -95,6 +95,8 @@
void wlan_hdd_cfg80211_pre_voss_stop(hdd_adapter_t* pAdapter);
+int wlan_hdd_crda_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request);
+int wlan_hdd_get_crda_regd_entry(struct wiphy *wiphy, hdd_config_t *pCfg);
#endif // CONFIG_CFG80211
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index a4cb046..2430cc9 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -100,6 +100,9 @@
#define WLAN_WAIT_TIME_SESSIONOPENCLOSE 15000
#define WLAN_WAIT_TIME_ABORTSCAN 2000
+/* Maximum time to get crda entry settings */
+#define CRDA_WAIT_TIME 300
+
/* Scan Req Timeout */
#define WLAN_WAIT_TIME_SCAN_REQ 100
@@ -822,6 +825,8 @@
/* Completion variable to indicate Mc Thread Suspended */
struct completion mc_sus_event_var;
+ /* Completion variable to wlan_hdd_get_crda_regd_entry */
+ struct completion driver_crda_req;
v_BOOL_t isWlanSuspended;
@@ -959,6 +964,7 @@
#ifdef CONFIG_CFG80211
void wlan_hdd_set_monitor_tx_adapter( hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter );
void hdd_cleanup_actionframe( hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter );
+v_BOOL_t is_crda_regulatory_entry_valid(void);
#endif
void wlan_hdd_set_concurrency_mode(hdd_context_t *pHddCtx, tVOS_CON_MODE mode);
void wlan_hdd_clear_concurrency_mode(hdd_context_t *pHddCtx, tVOS_CON_MODE mode);