summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-04-23 08:38:56 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-04-23 08:38:56 -0700
commitd12bdf22113b954d7632f14f4b404062af863af4 (patch)
treeb090e6bfe8c56bb20440afaffc9995436cf31f54
parent1e545c6e660ea631a937b0eeadde65b340374068 (diff)
parent120970190c260998f82a59340718f6c10983fc65 (diff)
Merge "Release 1.0.0.97 QCACLD WLAN Driver"
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h23
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg80211.h2
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h1
-rw-r--r--CORE/HDD/inc/wlan_hdd_tdls.h11
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c2026
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c166
-rw-r--r--CORE/HDD/src/wlan_hdd_early_suspend.c31
-rw-r--r--CORE/HDD/src/wlan_hdd_ftm.c26
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c84
-rw-r--r--CORE/HDD/src/wlan_hdd_p2p.c121
-rw-r--r--CORE/HDD/src/wlan_hdd_tdls.c54
-rw-r--r--CORE/HDD/src/wlan_hdd_wext.c46
-rw-r--r--CORE/MAC/inc/aniGlobal.h2
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/inc/sirApi.h5
-rw-r--r--CORE/MAC/inc/sirMacProtDef.h5
-rw-r--r--CORE/MAC/inc/wniCfgAp.h15
-rw-r--r--CORE/MAC/inc/wniCfgSta.h9
-rw-r--r--CORE/MAC/src/cfg/cfgParamName.c1
-rw-r--r--CORE/MAC/src/cfg/cfgUtil/cfg.txt11
-rw-r--r--CORE/MAC/src/include/dphGlobal.h1
-rw-r--r--CORE/MAC/src/include/sirParams.h4
-rw-r--r--CORE/MAC/src/pe/include/limSession.h3
-rw-r--r--CORE/MAC/src/pe/include/rrmApi.h2
-rw-r--r--CORE/MAC/src/pe/lim/limApi.c15
-rw-r--r--CORE/MAC/src/pe/lim/limAssocUtils.c3
-rw-r--r--CORE/MAC/src/pe/lim/limProcessActionFrame.c10
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c12
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c4
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMessageQueue.c13
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c37
-rw-r--r--CORE/MAC/src/pe/lim/limProcessTdls.c101
-rw-r--r--CORE/MAC/src/pe/lim/limSendMessages.c41
-rw-r--r--CORE/MAC/src/pe/lim/limSendMessages.h3
-rw-r--r--CORE/MAC/src/pe/lim/limSmeReqUtils.c38
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.c36
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.h6
-rw-r--r--CORE/MAC/src/pe/rrm/rrmApi.c343
-rw-r--r--CORE/MAC/src/pe/sch/schBeaconProcess.c4
-rw-r--r--CORE/SERVICES/BMI/ol_fw.c24
-rw-r--r--CORE/SERVICES/HIF/PCIe/hif_pci.c8
-rw-r--r--CORE/SERVICES/HIF/PCIe/if_pci.c2
-rw-r--r--CORE/SERVICES/HIF/ath_procfs.c10
-rw-r--r--CORE/SERVICES/HTC/htc_send.c2
-rw-r--r--CORE/SERVICES/WMA/wma.c53
-rw-r--r--CORE/SERVICES/WMA/wma.h1
-rw-r--r--CORE/SME/inc/csrApi.h9
-rw-r--r--CORE/SME/inc/pmc.h3
-rw-r--r--CORE/SME/inc/smeInside.h5
-rw-r--r--CORE/SME/src/csr/csrTdlsProcess.c25
-rw-r--r--CORE/SME/src/pmc/pmc.c109
-rw-r--r--CORE/SME/src/pmc/pmcApi.c1
-rw-r--r--CORE/VOSS/inc/vos_power.h601
-rw-r--r--CORE/VOSS/inc/vos_trace.h2
-rw-r--r--CORE/VOSS/src/vos_api.c2
-rw-r--r--CORE/VOSS/src/vos_power.c676
-rw-r--r--CORE/VOSS/src/vos_sched.c5
-rw-r--r--CORE/VOSS/src/vos_sched.h5
-rw-r--r--CORE/VOSS/src/vos_trace.c58
-rw-r--r--CORE/WDA/inc/legacy/halMsgApi.h19
-rw-r--r--CORE/WDA/inc/wlan_qct_wda.h1
-rw-r--r--CORE/WDA/src/wlan_qct_wda.c31
-rw-r--r--CORE/WDI/CP/inc/wlan_qct_wdi.h10
-rw-r--r--CORE/WDI/CP/src/wlan_qct_wdi.c14
-rw-r--r--Kbuild1
-rw-r--r--firmware_bin/WCNSS_cfg.datbin10778 -> 10810 bytes
-rwxr-xr-xfirmware_bin/WCNSS_qcom_cfg.ini11
67 files changed, 2122 insertions, 2885 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 00624ae5117a..c951fb53b731 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -305,6 +305,16 @@ typedef enum
#define CFG_DOT11_MODE_DEFAULT eHDD_DOT11_MODE_11n
#endif
+#define CFG_SAP_DOT11_MODE_NAME "gSapDot11Mode"
+#define CFG_SAP_DOT11_MODE_MIN eHDD_DOT11_MODE_AUTO
+#ifdef WLAN_FEATURE_11AC
+#define CFG_SAP_DOT11_MODE_MAX eHDD_DOT11_MODE_11ac
+#define CFG_SAP_DOT11_MODE_DEFAULT eHDD_DOT11_MODE_11ac
+#else
+#define CFG_SAP_DOT11_MODE_MAX eHDD_DOT11_MODE_11b_ONLY
+#define CFG_SAP_DOT11_MODE_DEFAULT eHDD_DOT11_MODE_11n
+#endif
+
#define CFG_CHANNEL_BONDING_MODE_24GHZ_NAME "gChannelBondingMode24GHz"
#define CFG_CHANNEL_BONDING_MODE_MIN WNI_CFG_CHANNEL_BONDING_MODE_STAMIN
#define CFG_CHANNEL_BONDING_MODE_MAX WNI_CFG_CHANNEL_BONDING_MODE_STAMAX
@@ -1382,6 +1392,11 @@ typedef enum
#define CFG_ENABLE_HOST_ARPOFFLOAD_MAX ( 1 )
#define CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT ( 0 )
+#define CFG_ENABLE_HOST_SSDP_NAME "ssdp"
+#define CFG_ENABLE_HOST_SSDP_MIN ( 0 )
+#define CFG_ENABLE_HOST_SSDP_MAX ( 1 )
+#define CFG_ENABLE_HOST_SSDP_DEFAULT ( 1 )
+
#define CFG_ENABLE_HOST_NSOFFLOAD_NAME "hostNSOffload"
#define CFG_ENABLE_HOST_NSOFFLOAD_MIN ( 0 )
#define CFG_ENABLE_HOST_NSOFFLOAD_MAX ( 1 )
@@ -1987,6 +2002,11 @@ typedef enum
#define CFG_TDLS_EXTERNAL_CONTROL_MIN (0)
#define CFG_TDLS_EXTERNAL_CONTROL_MAX (1)
#define CFG_TDLS_EXTERNAL_CONTROL_DEFAULT (0)
+
+#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE "gEnableTDLSOffChannel"
+#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN (0)
+#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX (1)
+#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT (0)
#endif
#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
@@ -2683,6 +2703,7 @@ typedef struct
v_BOOL_t bSingleTidRc;
v_U8_t mcastBcastFilterSetting;
v_BOOL_t fhostArpOffload;
+ v_BOOL_t ssdp;
#ifdef FEATURE_WLAN_SCAN_PNO
v_BOOL_t PnoOffload;
#endif
@@ -2805,6 +2826,7 @@ typedef struct
v_U32_t fTDLSPuapsdInactivityTimer;
v_U32_t fTDLSRxFrameThreshold;
v_BOOL_t fTDLSExternalControl;
+ v_U32_t fEnableTDLSOffChannel;
#endif
#ifdef WLAN_SOFTAP_VSTA_FEATURE
v_BOOL_t fEnableVSTASupport;
@@ -2923,6 +2945,7 @@ typedef struct
v_BOOL_t allowDFSChannelRoam;
v_BOOL_t debugP2pRemainOnChannel;
+ eHddDot11Mode sapDot11Mode;
} hdd_config_t;
/*---------------------------------------------------------------------------
Function declarations and documenation
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index ae0949510eb5..e492d50a307b 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -97,6 +97,8 @@
#endif
#endif
+#define MAX_CHANNEL (MAX_2_4GHZ_CHANNEL + NUM_5GHZ_CHANNELS)
+
typedef struct {
u8 element_id;
u8 len;
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index 9afb22b77ef3..a6ddfa4fcb32 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -619,6 +619,7 @@ typedef struct hdd_remain_on_chan_ctx
v_U32_t p2pRemOnChanTimeStamp;
vos_timer_t hdd_remain_on_chan_timer;
action_pkt_buffer_t action_pkt_buff;
+ v_BOOL_t hdd_remain_on_chan_cancel_in_progress;
}hdd_remain_on_chan_ctx_t;
typedef enum{
diff --git a/CORE/HDD/inc/wlan_hdd_tdls.h b/CORE/HDD/inc/wlan_hdd_tdls.h
index f4361b12e30a..b6bbb94de292 100644
--- a/CORE/HDD/inc/wlan_hdd_tdls.h
+++ b/CORE/HDD/inc/wlan_hdd_tdls.h
@@ -171,6 +171,11 @@ typedef struct _hddTdlsPeer_t {
tANI_U8 uapsdQueues;
tANI_U8 maxSp;
tANI_U8 isBufSta;
+ tANI_U8 isOffChannelSupported;
+ tANI_U8 supported_channels_len;
+ tANI_U8 supported_channels[SIR_MAC_MAX_SUPP_CHANNELS];
+ tANI_U8 supported_oper_classes_len;
+ tANI_U8 supported_oper_classes[SIR_MAC_MAX_SUPP_OPER_CLASSES];
#ifndef QCA_WIFI_2_0
vos_timer_t peerIdleTimer;
#endif
@@ -230,9 +235,9 @@ int wlan_hdd_tdls_recv_discovery_resp(hdd_adapter_t *pAdapter, u8 *mac);
int wlan_hdd_tdls_set_peer_caps(hdd_adapter_t *pAdapter,
u8 *mac,
- tANI_U8 uapsdQueues,
- tANI_U8 maxSp,
- tANI_BOOLEAN isBufSta);
+ tCsrStaParams *StaParams,
+ tANI_BOOLEAN isBufSta,
+ tANI_BOOLEAN isOffChannelSupported);
int wlan_hdd_tdls_set_rssi(hdd_adapter_t *pAdapter, u8 *mac, tANI_S8 rxRssi);
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index bdb947681221..639b7b2e5135 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -648,76 +648,76 @@ REG_TABLE_ENTRY g_registry_table[] =
(void *)CFG_AP_COUNTRY_CODE_DEFAULT ),
REG_VARIABLE( CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
- hdd_config_t, apRandomBssidEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
- CFG_AP_ENABLE_RANDOM_BSSID_MIN,
- CFG_AP_ENABLE_RANDOM_BSSID_MAX ),
+ hdd_config_t, apRandomBssidEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
+ CFG_AP_ENABLE_RANDOM_BSSID_MIN,
+ CFG_AP_ENABLE_RANDOM_BSSID_MAX ),
REG_VARIABLE( CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, apProtEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
- CFG_AP_ENABLE_PROTECTION_MODE_MIN,
- CFG_AP_ENABLE_PROTECTION_MODE_MAX ),
+ hdd_config_t, apProtEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
+ CFG_AP_ENABLE_PROTECTION_MODE_MIN,
+ CFG_AP_ENABLE_PROTECTION_MODE_MAX ),
REG_VARIABLE( CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
- hdd_config_t, apProtection,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_PROTECTION_MODE_DEFAULT,
- CFG_AP_PROTECTION_MODE_MIN,
- CFG_AP_PROTECTION_MODE_MAX ),
+ hdd_config_t, apProtection,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_AP_PROTECTION_MODE_DEFAULT,
+ CFG_AP_PROTECTION_MODE_MIN,
+ CFG_AP_PROTECTION_MODE_MAX ),
REG_VARIABLE( CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, apOBSSProtEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
- CFG_AP_OBSS_PROTECTION_MODE_MIN,
- CFG_AP_OBSS_PROTECTION_MODE_MAX ),
+ hdd_config_t, apOBSSProtEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
+ CFG_AP_OBSS_PROTECTION_MODE_MIN,
+ CFG_AP_OBSS_PROTECTION_MODE_MAX ),
REG_VARIABLE( CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
- hdd_config_t, apDisableIntraBssFwd,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
- CFG_AP_STA_SECURITY_SEPERATION_MIN,
- CFG_AP_STA_SECURITY_SEPERATION_MAX ),
+ hdd_config_t, apDisableIntraBssFwd,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
+ CFG_AP_STA_SECURITY_SEPERATION_MIN,
+ CFG_AP_STA_SECURITY_SEPERATION_MAX ),
REG_VARIABLE( CFG_FRAMES_PROCESSING_TH_MODE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, MinFramesProcThres,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_FRAMES_PROCESSING_TH_DEFAULT,
- CFG_FRAMES_PROCESSING_TH_MIN,
- CFG_FRAMES_PROCESSING_TH_MAX ),
+ hdd_config_t, MinFramesProcThres,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_FRAMES_PROCESSING_TH_DEFAULT,
+ CFG_FRAMES_PROCESSING_TH_MIN,
+ CFG_FRAMES_PROCESSING_TH_MAX ),
- REG_VARIABLE(CFG_SAP_CHANNEL_SELECT_START_CHANNEL , WLAN_PARAM_Integer,
+ REG_VARIABLE( CFG_SAP_CHANNEL_SELECT_START_CHANNEL , WLAN_PARAM_Integer,
hdd_config_t, apStartChannelNum,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SAP_CHANNEL_SELECT_START_CHANNEL_DEFAULT,
CFG_SAP_CHANNEL_SELECT_START_CHANNEL_MIN,
CFG_SAP_CHANNEL_SELECT_START_CHANNEL_MAX ),
- REG_VARIABLE(CFG_SAP_CHANNEL_SELECT_END_CHANNEL , WLAN_PARAM_Integer,
+ REG_VARIABLE( CFG_SAP_CHANNEL_SELECT_END_CHANNEL , WLAN_PARAM_Integer,
hdd_config_t, apEndChannelNum,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SAP_CHANNEL_SELECT_END_CHANNEL_DEFAULT,
CFG_SAP_CHANNEL_SELECT_END_CHANNEL_MIN,
CFG_SAP_CHANNEL_SELECT_END_CHANNEL_MAX ),
- REG_VARIABLE(CFG_SAP_CHANNEL_SELECT_OPERATING_BAND , WLAN_PARAM_Integer,
+ REG_VARIABLE( CFG_SAP_CHANNEL_SELECT_OPERATING_BAND , WLAN_PARAM_Integer,
hdd_config_t, apOperatingBand,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_DEFAULT,
CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MIN,
CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MAX ),
- REG_VARIABLE(CFG_SAP_AUTO_CHANNEL_SELECTION_NAME , WLAN_PARAM_Integer,
+ REG_VARIABLE( CFG_SAP_AUTO_CHANNEL_SELECTION_NAME , WLAN_PARAM_Integer,
hdd_config_t, apAutoChannelSelection,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SAP_AUTO_CHANNEL_SELECTION_DEFAULT,
CFG_SAP_AUTO_CHANNEL_SELECTION_MIN,
CFG_SAP_AUTO_CHANNEL_SELECTION_MAX ),
- REG_VARIABLE(CFG_ENABLE_LTE_COEX , WLAN_PARAM_Integer,
+ REG_VARIABLE( CFG_ENABLE_LTE_COEX , WLAN_PARAM_Integer,
hdd_config_t, enableLTECoex,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_LTE_COEX_DEFAULT,
@@ -752,7 +752,7 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_GO_LINK_MONITOR_PERIOD_MIN,
CFG_GO_LINK_MONITOR_PERIOD_MAX),
- REG_VARIABLE(CFG_DISABLE_PACKET_FILTER , WLAN_PARAM_Integer,
+ REG_VARIABLE( CFG_DISABLE_PACKET_FILTER , WLAN_PARAM_Integer,
hdd_config_t, disablePacketFilter,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_DISABLE_PACKET_FILTER_DEFAULT,
@@ -1084,55 +1084,56 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
+
REG_DYNAMIC_VARIABLE( CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, isEseIniFeatureEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ESE_FEATURE_ENABLED_DEFAULT,
- CFG_ESE_FEATURE_ENABLED_MIN,
- CFG_ESE_FEATURE_ENABLED_MAX,
- cbNotifySetEseFeatureEnabled, 0 ),
+ hdd_config_t, isEseIniFeatureEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ESE_FEATURE_ENABLED_DEFAULT,
+ CFG_ESE_FEATURE_ENABLED_MIN,
+ CFG_ESE_FEATURE_ENABLED_MAX,
+ cbNotifySetEseFeatureEnabled, 0 ),
#endif // FEATURE_WLAN_ESE
#ifdef FEATURE_WLAN_LFR
// flag to turn ON/OFF Legacy Fast Roaming
REG_DYNAMIC_VARIABLE( CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, isFastRoamIniFeatureEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LFR_FEATURE_ENABLED_DEFAULT,
- CFG_LFR_FEATURE_ENABLED_MIN,
- CFG_LFR_FEATURE_ENABLED_MAX,
- NotifyIsFastRoamIniFeatureEnabled, 0 ),
+ hdd_config_t, isFastRoamIniFeatureEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LFR_FEATURE_ENABLED_DEFAULT,
+ CFG_LFR_FEATURE_ENABLED_MIN,
+ CFG_LFR_FEATURE_ENABLED_MAX,
+ NotifyIsFastRoamIniFeatureEnabled, 0 ),
/* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
REG_DYNAMIC_VARIABLE( CFG_LFR_MAWC_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, MAWCEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
- CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
- CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
- NotifyIsMAWCIniFeatureEnabled, 0 ),
+ hdd_config_t, MAWCEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
+ CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
+ CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
+ NotifyIsMAWCIniFeatureEnabled, 0 ),
#endif // FEATURE_WLAN_LFR
#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
// flag to turn ON/OFF 11r and ESE FastTransition
REG_DYNAMIC_VARIABLE( CFG_FAST_TRANSITION_ENABLED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, isFastTransitionEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
- CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
- CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
- cbNotifySetFastTransitionEnabled, 0 ),
+ hdd_config_t, isFastTransitionEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
+ CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
+ CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
+ cbNotifySetFastTransitionEnabled, 0 ),
/* Variable to specify the delta/difference between the RSSI of current AP
* and roamable AP while roaming */
REG_DYNAMIC_VARIABLE( CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
- hdd_config_t, RoamRssiDiff,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_RSSI_DIFF_DEFAULT,
- CFG_ROAM_RSSI_DIFF_MIN,
- CFG_ROAM_RSSI_DIFF_MAX,
- cbNotifySetRoamRssiDiff, 0),
+ hdd_config_t, RoamRssiDiff,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_RSSI_DIFF_DEFAULT,
+ CFG_ROAM_RSSI_DIFF_MIN,
+ CFG_ROAM_RSSI_DIFF_MAX,
+ cbNotifySetRoamRssiDiff, 0),
REG_DYNAMIC_VARIABLE( CFG_IMMEDIATE_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
hdd_config_t, nImmediateRoamRssiDiff,
@@ -1152,12 +1153,12 @@ REG_TABLE_ENTRY g_registry_table[] =
#endif
#ifdef FEATURE_WLAN_OKC
REG_DYNAMIC_VARIABLE( CFG_OKC_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, isOkcIniFeatureEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_OKC_FEATURE_ENABLED_DEFAULT,
- CFG_OKC_FEATURE_ENABLED_MIN,
- CFG_OKC_FEATURE_ENABLED_MAX,
- cbNotifySetOkcFeatureEnabled, 0 ),
+ hdd_config_t, isOkcIniFeatureEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_OKC_FEATURE_ENABLED_DEFAULT,
+ CFG_OKC_FEATURE_ENABLED_MIN,
+ CFG_OKC_FEATURE_ENABLED_MAX,
+ cbNotifySetOkcFeatureEnabled, 0 ),
#endif
#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
REG_DYNAMIC_VARIABLE( CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
@@ -1909,12 +1910,12 @@ REG_TABLE_ENTRY g_registry_table[] =
#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
REG_DYNAMIC_VARIABLE( CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nNeighborScanPeriod,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
- CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
- CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
- cbNotifySetNeighborScanPeriod, 0 ),
+ hdd_config_t, nNeighborScanPeriod,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
+ CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
+ CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
+ cbNotifySetNeighborScanPeriod, 0 ),
REG_VARIABLE( CFG_NEIGHBOR_REASSOC_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
hdd_config_t, nNeighborReassocRssiThreshold,
@@ -1924,28 +1925,28 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_NEIGHBOR_REASSOC_RSSI_THRESHOLD_MAX ),
REG_DYNAMIC_VARIABLE( CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nNeighborLookupRssiThreshold,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
- CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
- CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
- cbNotifySetNeighborLookupRssiThreshold, 0 ),
+ hdd_config_t, nNeighborLookupRssiThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
+ CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
+ CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
+ cbNotifySetNeighborLookupRssiThreshold, 0 ),
REG_DYNAMIC_VARIABLE( CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nOpportunisticThresholdDiff,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
- CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
- CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
- cbNotifySetOpportunisticScanThresholdDiff, 0 ),
+ hdd_config_t, nOpportunisticThresholdDiff,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
+ CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
+ CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
+ cbNotifySetOpportunisticScanThresholdDiff, 0 ),
REG_DYNAMIC_VARIABLE( CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nRoamRescanRssiDiff,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
- CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
- CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
- cbNotifySetRoamRescanRssiDiff, 0 ),
+ hdd_config_t, nRoamRescanRssiDiff,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
+ CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
+ CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
+ cbNotifySetRoamRescanRssiDiff, 0 ),
REG_VARIABLE_STRING( CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
hdd_config_t, neighborScanChanList,
@@ -1953,20 +1954,20 @@ REG_TABLE_ENTRY g_registry_table[] =
(void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT ),
REG_DYNAMIC_VARIABLE( CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nNeighborScanMinChanTime,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
- CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
- CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
- cbNotifySetNeighborScanMinChanTime, 0 ),
+ hdd_config_t, nNeighborScanMinChanTime,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
+ CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
+ CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
+ cbNotifySetNeighborScanMinChanTime, 0 ),
REG_DYNAMIC_VARIABLE( CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nNeighborScanMaxChanTime,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
- CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
- CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
- cbNotifySetNeighborScanMaxChanTime, 0 ),
+ hdd_config_t, nNeighborScanMaxChanTime,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
+ CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
+ CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
+ cbNotifySetNeighborScanMaxChanTime, 0 ),
REG_VARIABLE( CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
hdd_config_t, nMaxNeighborReqTries,
@@ -1976,12 +1977,12 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
REG_DYNAMIC_VARIABLE( CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nNeighborResultsRefreshPeriod,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
- CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
- CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
- cbNotifySetNeighborResultsRefreshPeriod, 0 ),
+ hdd_config_t, nNeighborResultsRefreshPeriod,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
+ CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
+ CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
+ cbNotifySetNeighborResultsRefreshPeriod, 0 ),
REG_DYNAMIC_VARIABLE( CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME, WLAN_PARAM_Integer,
hdd_config_t, nEmptyScanRefreshPeriod,
@@ -1992,28 +1993,28 @@ REG_TABLE_ENTRY g_registry_table[] =
cbNotifySetEmptyScanRefreshPeriod, 0 ),
REG_DYNAMIC_VARIABLE( CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nRoamBmissFirstBcnt,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
- CFG_ROAM_BMISS_FIRST_BCNT_MIN,
- CFG_ROAM_BMISS_FIRST_BCNT_MAX,
- cbNotifySetRoamBmissFirstBcnt, 0 ),
+ hdd_config_t, nRoamBmissFirstBcnt,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
+ CFG_ROAM_BMISS_FIRST_BCNT_MIN,
+ CFG_ROAM_BMISS_FIRST_BCNT_MAX,
+ cbNotifySetRoamBmissFirstBcnt, 0 ),
REG_DYNAMIC_VARIABLE( CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nRoamBmissFinalBcnt,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
- CFG_ROAM_BMISS_FINAL_BCNT_MIN,
- CFG_ROAM_BMISS_FINAL_BCNT_MAX,
- cbNotifySetRoamBmissFinalBcnt, 0 ),
+ hdd_config_t, nRoamBmissFinalBcnt,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
+ CFG_ROAM_BMISS_FINAL_BCNT_MIN,
+ CFG_ROAM_BMISS_FINAL_BCNT_MAX,
+ cbNotifySetRoamBmissFinalBcnt, 0 ),
REG_DYNAMIC_VARIABLE( CFG_ROAM_BEACON_RSSI_WEIGHT_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nRoamBeaconRssiWeight,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
- CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
- CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
- cbNotifySetRoamBeaconRssiWeight, 0 ),
+ hdd_config_t, nRoamBeaconRssiWeight,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
+ CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
+ CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
+ cbNotifySetRoamBeaconRssiWeight, 0 ),
#endif /* WLAN_FEATURE_NEIGHBOR_ROAMING */
REG_VARIABLE( CFG_QOS_WMM_BURST_SIZE_DEFN_NAME , WLAN_PARAM_Integer,
@@ -2037,6 +2038,13 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
CFG_ENABLE_HOST_ARPOFFLOAD_MAX ),
+ REG_VARIABLE( CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, ssdp,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_HOST_SSDP_DEFAULT,
+ CFG_ENABLE_HOST_SSDP_MIN,
+ CFG_ENABLE_HOST_SSDP_MAX ),
+
REG_VARIABLE( CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
hdd_config_t, fhostNSOffload,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2095,18 +2103,18 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_VALIDATE_SCAN_LIST_MAX ),
REG_VARIABLE( CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nNullDataApRespTimeout,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
- CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
- CFG_NULLDATA_AP_RESP_TIMEOUT_MAX ),
+ hdd_config_t, nNullDataApRespTimeout,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
+ CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
+ CFG_NULLDATA_AP_RESP_TIMEOUT_MAX ),
REG_VARIABLE( CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, apDataAvailPollPeriodInMs,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
- CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
- CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX ),
+ hdd_config_t, apDataAvailPollPeriodInMs,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
+ CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
+ CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX ),
REG_VARIABLE( CFG_ENABLE_BTAMP_NAME, WLAN_PARAM_Integer,
hdd_config_t, enableBtAmp,
@@ -2123,6 +2131,7 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_BT_AMP_PREFERRED_CHANNEL_MIN,
CFG_BT_AMP_PREFERRED_CHANNEL_MAX ),
#endif //WLAN_BTAMP_FEATURE
+
REG_VARIABLE( CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
hdd_config_t, nBandCapability,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2131,53 +2140,54 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_BAND_CAPABILITY_MAX ),
REG_VARIABLE( CFG_ENABLE_BEACON_EARLY_TERMINATION_NAME, WLAN_PARAM_Integer,
- hdd_config_t, fEnableBeaconEarlyTermination,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_BEACON_EARLY_TERMINATION_DEFAULT,
- CFG_ENABLE_BEACON_EARLY_TERMINATION_MIN,
- CFG_ENABLE_BEACON_EARLY_TERMINATION_MAX ),
+ hdd_config_t, fEnableBeaconEarlyTermination,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_BEACON_EARLY_TERMINATION_DEFAULT,
+ CFG_ENABLE_BEACON_EARLY_TERMINATION_MIN,
+ CFG_ENABLE_BEACON_EARLY_TERMINATION_MAX ),
+
/* CFG_VOS_TRACE_ENABLE Parameters */
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_BAP_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableBAP,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableBAP,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_TL_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableTL,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableTL,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableWDI,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableWDI,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableHDD,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableHDD,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableSME,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableSME,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnablePE,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnablePE,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_PMC_NAME, WLAN_PARAM_Integer,
hdd_config_t, vosTraceEnablePMC,
@@ -2187,733 +2197,740 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_WDA_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableWDA,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableWDA,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableSYS,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableSYS,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_VOSS_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableVOSS,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableVOSS,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableSAP,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableSAP,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_VOS_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vosTraceEnableHDDSAP,
- VAR_FLAGS_OPTIONAL,
- CFG_VOS_TRACE_ENABLE_DEFAULT,
- CFG_VOS_TRACE_ENABLE_MIN,
- CFG_VOS_TRACE_ENABLE_MAX ),
+ hdd_config_t, vosTraceEnableHDDSAP,
+ VAR_FLAGS_OPTIONAL,
+ CFG_VOS_TRACE_ENABLE_DEFAULT,
+ CFG_VOS_TRACE_ENABLE_MIN,
+ CFG_VOS_TRACE_ENABLE_MAX ),
/* note that since the default value is out of range we cannot
enable range check, otherwise we get a system log message */
REG_VARIABLE( CFG_WDI_TRACE_ENABLE_DAL_NAME, WLAN_PARAM_Integer,
- hdd_config_t, wdiTraceEnableDAL,
- VAR_FLAGS_OPTIONAL,
- CFG_WDI_TRACE_ENABLE_DEFAULT,
- CFG_WDI_TRACE_ENABLE_MIN,
- CFG_WDI_TRACE_ENABLE_MAX ),
+ hdd_config_t, wdiTraceEnableDAL,
+ VAR_FLAGS_OPTIONAL,
+ CFG_WDI_TRACE_ENABLE_DEFAULT,
+ CFG_WDI_TRACE_ENABLE_MIN,
+ CFG_WDI_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_WDI_TRACE_ENABLE_CTL_NAME, WLAN_PARAM_Integer,
- hdd_config_t, wdiTraceEnableCTL,
- VAR_FLAGS_OPTIONAL,
- CFG_WDI_TRACE_ENABLE_DEFAULT,
- CFG_WDI_TRACE_ENABLE_MIN,
- CFG_WDI_TRACE_ENABLE_MAX ),
+ hdd_config_t, wdiTraceEnableCTL,
+ VAR_FLAGS_OPTIONAL,
+ CFG_WDI_TRACE_ENABLE_DEFAULT,
+ CFG_WDI_TRACE_ENABLE_MIN,
+ CFG_WDI_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_WDI_TRACE_ENABLE_DAT_NAME, WLAN_PARAM_Integer,
- hdd_config_t, wdiTraceEnableDAT,
- VAR_FLAGS_OPTIONAL,
- CFG_WDI_TRACE_ENABLE_DEFAULT,
- CFG_WDI_TRACE_ENABLE_MIN,
- CFG_WDI_TRACE_ENABLE_MAX ),
+ hdd_config_t, wdiTraceEnableDAT,
+ VAR_FLAGS_OPTIONAL,
+ CFG_WDI_TRACE_ENABLE_DEFAULT,
+ CFG_WDI_TRACE_ENABLE_MIN,
+ CFG_WDI_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_WDI_TRACE_ENABLE_PAL_NAME, WLAN_PARAM_Integer,
- hdd_config_t, wdiTraceEnablePAL,
- VAR_FLAGS_OPTIONAL,
- CFG_WDI_TRACE_ENABLE_DEFAULT,
- CFG_WDI_TRACE_ENABLE_MIN,
- CFG_WDI_TRACE_ENABLE_MAX ),
+ hdd_config_t, wdiTraceEnablePAL,
+ VAR_FLAGS_OPTIONAL,
+ CFG_WDI_TRACE_ENABLE_DEFAULT,
+ CFG_WDI_TRACE_ENABLE_MIN,
+ CFG_WDI_TRACE_ENABLE_MAX ),
REG_VARIABLE( CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nTeleBcnTransListenInterval,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TELE_BCN_TRANS_LI_DEFAULT,
- CFG_TELE_BCN_TRANS_LI_MIN,
- CFG_TELE_BCN_TRANS_LI_MAX ),
+ hdd_config_t, nTeleBcnTransListenInterval,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TELE_BCN_TRANS_LI_DEFAULT,
+ CFG_TELE_BCN_TRANS_LI_MIN,
+ CFG_TELE_BCN_TRANS_LI_MAX ),
REG_VARIABLE( CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nTeleBcnTransLiNumIdleBeacons,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
- CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
- CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX ),
+ hdd_config_t, nTeleBcnTransLiNumIdleBeacons,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
+ CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
+ CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX ),
REG_VARIABLE( CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nTeleBcnMaxListenInterval,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TELE_BCN_MAX_LI_DEFAULT,
- CFG_TELE_BCN_MAX_LI_MIN,
- CFG_TELE_BCN_MAX_LI_MAX ),
+ hdd_config_t, nTeleBcnMaxListenInterval,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TELE_BCN_MAX_LI_DEFAULT,
+ CFG_TELE_BCN_MAX_LI_MIN,
+ CFG_TELE_BCN_MAX_LI_MAX ),
REG_VARIABLE( CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nTeleBcnMaxLiNumIdleBeacons,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
- CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
- CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX ),
+ hdd_config_t, nTeleBcnMaxLiNumIdleBeacons,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
+ CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
+ CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX ),
REG_VARIABLE( CFG_BCN_EARLY_TERM_WAKE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, bcnEarlyTermWakeInterval,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_BCN_EARLY_TERM_WAKE_DEFAULT,
- CFG_BCN_EARLY_TERM_WAKE_MIN,
- CFG_BCN_EARLY_TERM_WAKE_MAX ),
+ hdd_config_t, bcnEarlyTermWakeInterval,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_BCN_EARLY_TERM_WAKE_DEFAULT,
+ CFG_BCN_EARLY_TERM_WAKE_MIN,
+ CFG_BCN_EARLY_TERM_WAKE_MAX ),
REG_VARIABLE( CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, apDataAvailPollPeriodInMs,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
- CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
- CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX ),
+ hdd_config_t, apDataAvailPollPeriodInMs,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
+ CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
+ CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX ),
REG_VARIABLE( CFG_ENABLE_CLOSE_LOOP_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableCloseLoop,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_CLOSE_LOOP_DEFAULT,
- CFG_ENABLE_CLOSE_LOOP_MIN,
- CFG_ENABLE_CLOSE_LOOP_MAX ),
+ hdd_config_t, enableCloseLoop,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_CLOSE_LOOP_DEFAULT,
+ CFG_ENABLE_CLOSE_LOOP_MIN,
+ CFG_ENABLE_CLOSE_LOOP_MAX ),
REG_VARIABLE( CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableBypass11d,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_BYPASS_11D_DEFAULT,
- CFG_ENABLE_BYPASS_11D_MIN,
- CFG_ENABLE_BYPASS_11D_MAX ),
+ hdd_config_t, enableBypass11d,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_BYPASS_11D_DEFAULT,
+ CFG_ENABLE_BYPASS_11D_MIN,
+ CFG_ENABLE_BYPASS_11D_MAX ),
REG_VARIABLE( CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableDFSChnlScan,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
- CFG_ENABLE_DFS_CHNL_SCAN_MIN,
- CFG_ENABLE_DFS_CHNL_SCAN_MAX ),
+ hdd_config_t, enableDFSChnlScan,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
+ CFG_ENABLE_DFS_CHNL_SCAN_MIN,
+ CFG_ENABLE_DFS_CHNL_SCAN_MAX ),
REG_VARIABLE( CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableDynamicDTIM,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
- CFG_ENABLE_DYNAMIC_DTIM_MIN,
- CFG_ENABLE_DYNAMIC_DTIM_MAX ),
+ hdd_config_t, enableDynamicDTIM,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
+ CFG_ENABLE_DYNAMIC_DTIM_MIN,
+ CFG_ENABLE_DYNAMIC_DTIM_MAX ),
REG_VARIABLE( CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableAutomaticTxPowerControl,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_DEFAULT,
- CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_MIN,
- CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_MAX ),
+ hdd_config_t, enableAutomaticTxPowerControl,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_DEFAULT,
+ CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_MIN,
+ CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_MAX ),
REG_VARIABLE( CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
- hdd_config_t, ShortGI40MhzEnable,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_SHORT_GI_40MHZ_DEFAULT,
- CFG_SHORT_GI_40MHZ_MIN,
- CFG_SHORT_GI_40MHZ_MAX ),
+ hdd_config_t, ShortGI40MhzEnable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_SHORT_GI_40MHZ_DEFAULT,
+ CFG_SHORT_GI_40MHZ_MIN,
+ CFG_SHORT_GI_40MHZ_MAX ),
REG_DYNAMIC_VARIABLE( CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
- hdd_config_t, reportMaxLinkSpeed,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
- CFG_REPORT_MAX_LINK_SPEED_MIN,
- CFG_REPORT_MAX_LINK_SPEED_MAX,
- NULL, 0 ),
+ hdd_config_t, reportMaxLinkSpeed,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
+ CFG_REPORT_MAX_LINK_SPEED_MIN,
+ CFG_REPORT_MAX_LINK_SPEED_MAX,
+ NULL, 0 ),
REG_DYNAMIC_VARIABLE( CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
- hdd_config_t, linkSpeedRssiHigh,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
- CFG_LINK_SPEED_RSSI_HIGH_MIN,
- CFG_LINK_SPEED_RSSI_HIGH_MAX,
- NULL, 0 ),
+ hdd_config_t, linkSpeedRssiHigh,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
+ CFG_LINK_SPEED_RSSI_HIGH_MIN,
+ CFG_LINK_SPEED_RSSI_HIGH_MAX,
+ NULL, 0 ),
REG_DYNAMIC_VARIABLE( CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
- hdd_config_t, linkSpeedRssiMid,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LINK_SPEED_RSSI_MID_DEFAULT,
- CFG_LINK_SPEED_RSSI_MID_MIN,
- CFG_LINK_SPEED_RSSI_MID_MAX,
- NULL, 0 ),
+ hdd_config_t, linkSpeedRssiMid,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LINK_SPEED_RSSI_MID_DEFAULT,
+ CFG_LINK_SPEED_RSSI_MID_MIN,
+ CFG_LINK_SPEED_RSSI_MID_MAX,
+ NULL, 0 ),
REG_DYNAMIC_VARIABLE( CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
- hdd_config_t, linkSpeedRssiLow,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
- CFG_LINK_SPEED_RSSI_LOW_MIN,
- CFG_LINK_SPEED_RSSI_LOW_MAX,
- NULL, 0 ),
+ hdd_config_t, linkSpeedRssiLow,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
+ CFG_LINK_SPEED_RSSI_LOW_MIN,
+ CFG_LINK_SPEED_RSSI_LOW_MAX,
+ NULL, 0 ),
#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
REG_DYNAMIC_VARIABLE( CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
- hdd_config_t, nRoamPrefer5GHz,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_PREFER_5GHZ_DEFAULT,
- CFG_ROAM_PREFER_5GHZ_MIN,
- CFG_ROAM_PREFER_5GHZ_MAX,
- cbNotifySetRoamPrefer5GHz, 0 ),
+ hdd_config_t, nRoamPrefer5GHz,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_PREFER_5GHZ_DEFAULT,
+ CFG_ROAM_PREFER_5GHZ_MIN,
+ CFG_ROAM_PREFER_5GHZ_MAX,
+ cbNotifySetRoamPrefer5GHz, 0 ),
REG_DYNAMIC_VARIABLE( CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
- hdd_config_t, nRoamIntraBand,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_INTRA_BAND_DEFAULT,
- CFG_ROAM_INTRA_BAND_MIN,
- CFG_ROAM_INTRA_BAND_MAX,
- cbNotifySetRoamIntraBand, 0 ),
-
- REG_DYNAMIC_VARIABLE( CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
- hdd_config_t, nProbes,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_SCAN_N_PROBES_DEFAULT,
- CFG_ROAM_SCAN_N_PROBES_MIN,
- CFG_ROAM_SCAN_N_PROBES_MAX,
- cbNotifySetRoamScanNProbes, 0 ),
-
- REG_DYNAMIC_VARIABLE( CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
- hdd_config_t, nRoamScanHomeAwayTime,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
- CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
- CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
- cbNotifySetRoamScanHomeAwayTime, 0 ),
+ hdd_config_t, nRoamIntraBand,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_INTRA_BAND_DEFAULT,
+ CFG_ROAM_INTRA_BAND_MIN,
+ CFG_ROAM_INTRA_BAND_MAX,
+ cbNotifySetRoamIntraBand, 0 ),
+
+ REG_DYNAMIC_VARIABLE( CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
+ hdd_config_t, nProbes,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_SCAN_N_PROBES_DEFAULT,
+ CFG_ROAM_SCAN_N_PROBES_MIN,
+ CFG_ROAM_SCAN_N_PROBES_MAX,
+ cbNotifySetRoamScanNProbes, 0 ),
+
+ REG_DYNAMIC_VARIABLE( CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
+ hdd_config_t, nRoamScanHomeAwayTime,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
+ CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
+ CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
+ cbNotifySetRoamScanHomeAwayTime, 0 ),
#endif
REG_VARIABLE( CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, isP2pDeviceAddrAdministrated,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
- CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
- CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX ),
+ hdd_config_t, isP2pDeviceAddrAdministrated,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
+ CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
+ CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX ),
REG_VARIABLE( CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableMCC,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_MCC_ENABLED_DEFAULT,
- CFG_ENABLE_MCC_ENABLED_MIN,
- CFG_ENABLE_MCC_ENABLED_MAX ),
+ hdd_config_t, enableMCC,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_MCC_ENABLED_DEFAULT,
+ CFG_ENABLE_MCC_ENABLED_MIN,
+ CFG_ENABLE_MCC_ENABLED_MAX ),
REG_VARIABLE( CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
- hdd_config_t, allowMCCGODiffBI,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
- CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
- CFG_ALLOW_MCC_GO_DIFF_BI_MAX ),
+ hdd_config_t, allowMCCGODiffBI,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
+ CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
+ CFG_ALLOW_MCC_GO_DIFF_BI_MAX ),
REG_VARIABLE( CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalMitigationEnable,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
- CFG_THERMAL_MIGRATION_ENABLE_MIN,
- CFG_THERMAL_MIGRATION_ENABLE_MAX ),
+ hdd_config_t, thermalMitigationEnable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
+ CFG_THERMAL_MIGRATION_ENABLE_MIN,
+ CFG_THERMAL_MIGRATION_ENABLE_MAX ),
#ifndef QCA_WIFI_ISOC
REG_VARIABLE( CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, throttlePeriod,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THROTTLE_PERIOD_DEFAULT,
- CFG_THROTTLE_PERIOD_MIN,
- CFG_THROTTLE_PERIOD_MAX ),
+ hdd_config_t, throttlePeriod,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THROTTLE_PERIOD_DEFAULT,
+ CFG_THROTTLE_PERIOD_MIN,
+ CFG_THROTTLE_PERIOD_MAX ),
#endif
REG_VARIABLE( CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableModulatedDTIM,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_MODULATED_DTIM_DEFAULT,
- CFG_ENABLE_MODULATED_DTIM_MIN,
- CFG_ENABLE_MODULATED_DTIM_MAX ),
+ hdd_config_t, enableModulatedDTIM,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_MODULATED_DTIM_DEFAULT,
+ CFG_ENABLE_MODULATED_DTIM_MIN,
+ CFG_ENABLE_MODULATED_DTIM_MAX ),
REG_VARIABLE( CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, fEnableMCAddrList,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
- CFG_MC_ADDR_LIST_ENABLE_MIN,
- CFG_MC_ADDR_LIST_ENABLE_MAX ),
+ hdd_config_t, fEnableMCAddrList,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
+ CFG_MC_ADDR_LIST_ENABLE_MIN,
+ CFG_MC_ADDR_LIST_ENABLE_MAX ),
#ifdef WLAN_FEATURE_11AC
REG_VARIABLE( CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
- hdd_config_t, vhtChannelWidth,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_VHT_CHANNEL_WIDTH_DEFAULT,
- CFG_VHT_CHANNEL_WIDTH_MIN,
- CFG_VHT_CHANNEL_WIDTH_MAX),
+ hdd_config_t, vhtChannelWidth,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_VHT_CHANNEL_WIDTH_DEFAULT,
+ CFG_VHT_CHANNEL_WIDTH_MIN,
+ CFG_VHT_CHANNEL_WIDTH_MAX),
REG_VARIABLE( CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
- hdd_config_t, vhtRxMCS,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
- CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
- CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
+ hdd_config_t, vhtRxMCS,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
+ CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
+ CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
REG_VARIABLE( CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
- hdd_config_t, vhtTxMCS,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
- CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
- CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
-
-REG_VARIABLE( CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
- hdd_config_t, vhtRxMCS2x2,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
- CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
- CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
-
-REG_VARIABLE( CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
- hdd_config_t, vhtTxMCS2x2,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
- CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
- CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
-
-REG_VARIABLE( CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enable2x2,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
- CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
- CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX ),
-
-REG_VARIABLE( CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enableMuBformee,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
- CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
- CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX ),
-
-REG_VARIABLE( CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enableVhtpAid,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
- CFG_VHT_ENABLE_PAID_FEATURE_MIN,
- CFG_VHT_ENABLE_PAID_FEATURE_MAX ),
-
-REG_VARIABLE( CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enableVhtGid,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
- CFG_VHT_ENABLE_GID_FEATURE_MIN,
- CFG_VHT_ENABLE_GID_FEATURE_MAX ),
+ hdd_config_t, vhtTxMCS,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
+ CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
+ CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
+
+ REG_VARIABLE( CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
+ hdd_config_t, vhtRxMCS2x2,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
+ CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
+ CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
+
+ REG_VARIABLE( CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
+ hdd_config_t, vhtTxMCS2x2,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
+ CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
+ CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
+
+ REG_VARIABLE( CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
+ hdd_config_t, enable2x2,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
+ CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
+ CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX ),
+
+ REG_VARIABLE( CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
+ hdd_config_t, enableMuBformee,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
+ CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
+ CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX ),
+
+ REG_VARIABLE( CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
+ hdd_config_t, enableVhtpAid,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
+ CFG_VHT_ENABLE_PAID_FEATURE_MIN,
+ CFG_VHT_ENABLE_PAID_FEATURE_MAX ),
+
+ REG_VARIABLE( CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
+ hdd_config_t, enableVhtGid,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
+ CFG_VHT_ENABLE_GID_FEATURE_MIN,
+ CFG_VHT_ENABLE_GID_FEATURE_MAX ),
#endif
-REG_VARIABLE( CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
- hdd_config_t, txchainmask1x1,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
- CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
- CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX ),
-
-REG_VARIABLE( CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
- hdd_config_t, rxchainmask1x1,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
- CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
- CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX ),
-
-REG_VARIABLE( CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enableAmpduPs,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
- CFG_ENABLE_AMPDUPS_FEATURE_MIN,
- CFG_ENABLE_AMPDUPS_FEATURE_MAX ),
-
-REG_VARIABLE( CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enableHtSmps,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
- CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
- CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX ),
-
-REG_VARIABLE( CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, htSmps,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
- CFG_HT_SMPS_CAP_FEATURE_MIN,
- CFG_HT_SMPS_CAP_FEATURE_MAX ),
-
-REG_VARIABLE( CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
- hdd_config_t, disableDFSChSwitch,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
- CFG_DISABLE_DFS_CH_SWITCH_MIN,
- CFG_DISABLE_DFS_CH_SWITCH_MAX ),
+ REG_VARIABLE( CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
+ hdd_config_t, txchainmask1x1,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
+ CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
+ CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX ),
+
+ REG_VARIABLE( CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
+ hdd_config_t, rxchainmask1x1,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
+ CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
+ CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX ),
+
+ REG_VARIABLE( CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
+ hdd_config_t, enableAmpduPs,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
+ CFG_ENABLE_AMPDUPS_FEATURE_MIN,
+ CFG_ENABLE_AMPDUPS_FEATURE_MAX ),
+
+ REG_VARIABLE( CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
+ hdd_config_t, enableHtSmps,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
+ CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
+ CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX ),
+
+ REG_VARIABLE( CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
+ hdd_config_t, htSmps,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
+ CFG_HT_SMPS_CAP_FEATURE_MIN,
+ CFG_HT_SMPS_CAP_FEATURE_MAX ),
+
+ REG_VARIABLE( CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
+ hdd_config_t, disableDFSChSwitch,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
+ CFG_DISABLE_DFS_CH_SWITCH_MIN,
+ CFG_DISABLE_DFS_CH_SWITCH_MAX ),
REG_VARIABLE( CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableFirstScan2GOnly,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
- CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
- CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX ),
+ hdd_config_t, enableFirstScan2GOnly,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
+ CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
+ CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX ),
REG_VARIABLE( CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
- hdd_config_t, skipDfsChnlInP2pSearch,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
- CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
- CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX ),
+ hdd_config_t, skipDfsChnlInP2pSearch,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
+ CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
+ CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX ),
REG_VARIABLE( CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, ignoreDynamicDtimInP2pMode,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
- CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
- CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX ),
+ hdd_config_t, ignoreDynamicDtimInP2pMode,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
+ CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
+ CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX ),
REG_VARIABLE( CFG_NUM_BUFF_ADVERT_NAME, WLAN_PARAM_Integer,
- hdd_config_t,numBuffAdvert ,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_NUM_BUFF_ADVERT_DEFAULT,
- CFG_NUM_BUFF_ADVERT_MIN,
- CFG_NUM_BUFF_ADVERT_MAX ),
+ hdd_config_t,numBuffAdvert ,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_NUM_BUFF_ADVERT_DEFAULT,
+ CFG_NUM_BUFF_ADVERT_MIN,
+ CFG_NUM_BUFF_ADVERT_MAX ),
REG_VARIABLE( CFG_MCC_CONFIG_PARAM_NAME, WLAN_PARAM_Integer,
- hdd_config_t, configMccParam,
- VAR_FLAGS_OPTIONAL,
- CFG_MCC_CONFIG_PARAM_DEFAULT,
- CFG_MCC_CONFIG_PARAM_MIN,
- CFG_MCC_CONFIG_PARAM_MAX ),
+ hdd_config_t, configMccParam,
+ VAR_FLAGS_OPTIONAL,
+ CFG_MCC_CONFIG_PARAM_DEFAULT,
+ CFG_MCC_CONFIG_PARAM_MIN,
+ CFG_MCC_CONFIG_PARAM_MAX ),
+
REG_VARIABLE( CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
- hdd_config_t, enableRxSTBC,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_RX_STBC_DEFAULT,
- CFG_ENABLE_RX_STBC_MIN,
- CFG_ENABLE_RX_STBC_MAX ),
-REG_VARIABLE( CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
- hdd_config_t, enableTxSTBC,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_TX_STBC_DEFAULT,
- CFG_ENABLE_TX_STBC_MIN,
- CFG_ENABLE_TX_STBC_MAX ),
-
-REG_VARIABLE( CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
- hdd_config_t, enableRxLDPC,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_RX_LDPC_DEFAULT,
- CFG_ENABLE_RX_LDPC_MIN,
- CFG_ENABLE_RX_LDPC_MAX ),
-
-REG_VARIABLE( CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
- hdd_config_t, enable5gEBT,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
- CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
- CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX ),
+ hdd_config_t, enableRxSTBC,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_RX_STBC_DEFAULT,
+ CFG_ENABLE_RX_STBC_MIN,
+ CFG_ENABLE_RX_STBC_MAX ),
+
+ REG_VARIABLE( CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
+ hdd_config_t, enableTxSTBC,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_TX_STBC_DEFAULT,
+ CFG_ENABLE_TX_STBC_MIN,
+ CFG_ENABLE_TX_STBC_MAX ),
+
+ REG_VARIABLE( CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
+ hdd_config_t, enableRxLDPC,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_RX_LDPC_DEFAULT,
+ CFG_ENABLE_RX_LDPC_MIN,
+ CFG_ENABLE_RX_LDPC_MAX ),
+
+ REG_VARIABLE( CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
+ hdd_config_t, enable5gEBT,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
+ CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
+ CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX ),
#ifdef FEATURE_WLAN_TDLS
REG_VARIABLE( CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
- hdd_config_t, fEnableTDLSSupport,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
- CFG_TDLS_SUPPORT_ENABLE_MIN,
- CFG_TDLS_SUPPORT_ENABLE_MAX ),
+ hdd_config_t, fEnableTDLSSupport,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
+ CFG_TDLS_SUPPORT_ENABLE_MIN,
+ CFG_TDLS_SUPPORT_ENABLE_MAX ),
REG_VARIABLE( CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
- hdd_config_t, fEnableTDLSImplicitTrigger,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
- CFG_TDLS_IMPLICIT_TRIGGER_MIN,
- CFG_TDLS_IMPLICIT_TRIGGER_MAX ),
+ hdd_config_t, fEnableTDLSImplicitTrigger,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
+ CFG_TDLS_IMPLICIT_TRIGGER_MIN,
+ CFG_TDLS_IMPLICIT_TRIGGER_MAX ),
REG_VARIABLE( CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSTxStatsPeriod,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
- CFG_TDLS_TX_STATS_PERIOD_MIN,
- CFG_TDLS_TX_STATS_PERIOD_MAX ),
+ hdd_config_t, fTDLSTxStatsPeriod,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
+ CFG_TDLS_TX_STATS_PERIOD_MIN,
+ CFG_TDLS_TX_STATS_PERIOD_MAX ),
REG_VARIABLE( CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSTxPacketThreshold,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
- CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
- CFG_TDLS_TX_PACKET_THRESHOLD_MAX ),
+ hdd_config_t, fTDLSTxPacketThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
+ CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
+ CFG_TDLS_TX_PACKET_THRESHOLD_MAX ),
REG_VARIABLE( CFG_TDLS_DISCOVERY_PERIOD, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSDiscoveryPeriod,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_DISCOVERY_PERIOD_DEFAULT,
- CFG_TDLS_DISCOVERY_PERIOD_MIN,
- CFG_TDLS_DISCOVERY_PERIOD_MAX ),
+ hdd_config_t, fTDLSDiscoveryPeriod,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_DISCOVERY_PERIOD_DEFAULT,
+ CFG_TDLS_DISCOVERY_PERIOD_MIN,
+ CFG_TDLS_DISCOVERY_PERIOD_MAX ),
REG_VARIABLE( CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSMaxDiscoveryAttempt,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
- CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
- CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX ),
+ hdd_config_t, fTDLSMaxDiscoveryAttempt,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
+ CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
+ CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX ),
REG_VARIABLE( CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSIdleTimeout,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
- CFG_TDLS_IDLE_TIMEOUT_MIN,
- CFG_TDLS_IDLE_TIMEOUT_MAX ),
+ hdd_config_t, fTDLSIdleTimeout,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
+ CFG_TDLS_IDLE_TIMEOUT_MIN,
+ CFG_TDLS_IDLE_TIMEOUT_MAX ),
REG_VARIABLE( CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSIdlePacketThreshold,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
- CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
- CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX ),
+ hdd_config_t, fTDLSIdlePacketThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
+ CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
+ CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX ),
REG_VARIABLE( CFG_TDLS_RSSI_HYSTERESIS, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSRSSIHysteresis,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_RSSI_HYSTERESIS_DEFAULT,
- CFG_TDLS_RSSI_HYSTERESIS_MIN,
- CFG_TDLS_RSSI_HYSTERESIS_MAX ),
+ hdd_config_t, fTDLSRSSIHysteresis,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_RSSI_HYSTERESIS_DEFAULT,
+ CFG_TDLS_RSSI_HYSTERESIS_MIN,
+ CFG_TDLS_RSSI_HYSTERESIS_MAX ),
REG_VARIABLE( CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
- hdd_config_t, fTDLSRSSITriggerThreshold,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
- CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
- CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX ),
+ hdd_config_t, fTDLSRSSITriggerThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
+ CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
+ CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX ),
REG_VARIABLE( CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
- hdd_config_t, fTDLSRSSITeardownThreshold,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
- CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
- CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX ),
+ hdd_config_t, fTDLSRSSITeardownThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
+ CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
+ CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX ),
#ifdef QCA_WIFI_2_0
REG_VARIABLE( CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
- hdd_config_t, fTDLSRSSIDelta,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_RSSI_DELTA_DEFAULT,
- CFG_TDLS_RSSI_DELTA_MIN,
- CFG_TDLS_RSSI_DELTA_MAX ),
+ hdd_config_t, fTDLSRSSIDelta,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_RSSI_DELTA_DEFAULT,
+ CFG_TDLS_RSSI_DELTA_MIN,
+ CFG_TDLS_RSSI_DELTA_MAX ),
#endif
-REG_VARIABLE( CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME , WLAN_PARAM_HexInteger,
+ REG_VARIABLE( CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME , WLAN_PARAM_HexInteger,
hdd_config_t, fTDLSUapsdMask,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX ),
-REG_VARIABLE( CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
- hdd_config_t, fEnableTDLSBufferSta,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
- CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
- CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX ),
-
-REG_VARIABLE( CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSPuapsdInactivityTimer,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
- CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
- CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX ),
-
-REG_VARIABLE( CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSRxFrameThreshold,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
- CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
- CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX ),
-
-REG_VARIABLE( CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
- hdd_config_t, fTDLSExternalControl,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
- CFG_TDLS_EXTERNAL_CONTROL_MIN,
- CFG_TDLS_EXTERNAL_CONTROL_MAX ),
+ REG_VARIABLE( CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
+ hdd_config_t, fEnableTDLSBufferSta,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
+ CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
+ CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX ),
+
+ REG_VARIABLE( CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
+ hdd_config_t, fEnableTDLSOffChannel,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
+ CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
+ CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX ),
+
+ REG_VARIABLE( CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSPuapsdInactivityTimer,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
+ CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
+ CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX ),
+
+ REG_VARIABLE( CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSRxFrameThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
+ CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
+ CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX ),
+
+ REG_VARIABLE( CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
+ hdd_config_t, fTDLSExternalControl,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
+ CFG_TDLS_EXTERNAL_CONTROL_MIN,
+ CFG_TDLS_EXTERNAL_CONTROL_MAX ),
#endif
#ifdef WLAN_SOFTAP_VSTA_FEATURE
REG_VARIABLE( CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
- hdd_config_t, fEnableVSTASupport,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
- CFG_VSTA_SUPPORT_ENABLE_MIN,
- CFG_VSTA_SUPPORT_ENABLE_MAX ),
+ hdd_config_t, fEnableVSTASupport,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
+ CFG_VSTA_SUPPORT_ENABLE_MIN,
+ CFG_VSTA_SUPPORT_ENABLE_MAX ),
#endif
REG_VARIABLE( CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableLpwrImgTransition,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
- CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
- CFG_ENABLE_LPWR_IMG_TRANSITION_MAX ),
+ hdd_config_t, enableLpwrImgTransition,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
+ CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
+ CFG_ENABLE_LPWR_IMG_TRANSITION_MAX ),
#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
REG_VARIABLE( CFG_ACTIVEMODE_OFFLOAD_ENABLE, WLAN_PARAM_Integer,
- hdd_config_t, fEnableActiveModeOffload,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ACTIVEMODE_OFFLOAD_ENABLE_DEFAULT,
- CFG_ACTIVEMODE_OFFLOAD_ENABLE_MIN,
- CFG_ACTIVEMODE_OFFLOAD_ENABLE_MAX ),
+ hdd_config_t, fEnableActiveModeOffload,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ACTIVEMODE_OFFLOAD_ENABLE_DEFAULT,
+ CFG_ACTIVEMODE_OFFLOAD_ENABLE_MIN,
+ CFG_ACTIVEMODE_OFFLOAD_ENABLE_MAX ),
#endif
REG_VARIABLE( CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableLpwrImgTransition,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
- CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
- CFG_ENABLE_LPWR_IMG_TRANSITION_MAX ),
+ hdd_config_t, enableLpwrImgTransition,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
+ CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
+ CFG_ENABLE_LPWR_IMG_TRANSITION_MAX ),
REG_VARIABLE( CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
- hdd_config_t, scanAgingTimeout,
- VAR_FLAGS_OPTIONAL,
- CFG_SCAN_AGING_PARAM_DEFAULT,
- CFG_SCAN_AGING_PARAM_MIN,
- CFG_SCAN_AGING_PARAM_MAX ),
+ hdd_config_t, scanAgingTimeout,
+ VAR_FLAGS_OPTIONAL,
+ CFG_SCAN_AGING_PARAM_DEFAULT,
+ CFG_SCAN_AGING_PARAM_MIN,
+ CFG_SCAN_AGING_PARAM_MAX ),
REG_VARIABLE( CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enableTxLdpc,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
- CFG_TX_LDPC_ENABLE_FEATURE_MIN,
- CFG_TX_LDPC_ENABLE_FEATURE_MAX ),
+ hdd_config_t, enableTxLdpc,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
+ CFG_TX_LDPC_ENABLE_FEATURE_MIN,
+ CFG_TX_LDPC_ENABLE_FEATURE_MAX ),
REG_VARIABLE( CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableMCCAdaptiveScheduler,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
- CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
- CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX ),
+ hdd_config_t, enableMCCAdaptiveScheduler,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
+ CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
+ CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX ),
REG_VARIABLE( CFG_ANDRIOD_POWER_SAVE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, isAndroidPsEn,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ANDRIOD_POWER_SAVE_DEFAULT,
- CFG_ANDRIOD_POWER_SAVE_MIN,
- CFG_ANDRIOD_POWER_SAVE_MAX),
+ hdd_config_t, isAndroidPsEn,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ANDRIOD_POWER_SAVE_DEFAULT,
+ CFG_ANDRIOD_POWER_SAVE_MIN,
+ CFG_ANDRIOD_POWER_SAVE_MAX),
REG_VARIABLE( CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
- hdd_config_t, AdHocChannel5G,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
- CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
- CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
+ hdd_config_t, AdHocChannel5G,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
+ CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
+ CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
REG_VARIABLE( CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
- hdd_config_t, AdHocChannel24G,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
- CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
- CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
-
+ hdd_config_t, AdHocChannel24G,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
+ CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
+ CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
#ifdef WLAN_FEATURE_11AC
REG_VARIABLE( CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
- hdd_config_t, enableTxBF,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
- CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
- CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX ),
+ hdd_config_t, enableTxBF,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
+ CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
+ CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX ),
REG_VARIABLE( CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
- hdd_config_t, txBFCsnValue,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
- CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
- CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX ),
-
+ hdd_config_t, txBFCsnValue,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
+ CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
+ CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX ),
#endif
REG_VARIABLE( CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
- hdd_config_t, sapAllowAllChannel,
- VAR_FLAGS_OPTIONAL,
- CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
- CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
- CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX ),
+ hdd_config_t, sapAllowAllChannel,
+ VAR_FLAGS_OPTIONAL,
+ CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
+ CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
+ CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX ),
#ifdef WLAN_FEATURE_11AC
REG_VARIABLE( CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
- hdd_config_t, disableLDPCWithTxbfAP,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
- CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
- CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX ),
+ hdd_config_t, disableLDPCWithTxbfAP,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
+ CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
+ CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX ),
#endif
REG_VARIABLE_STRING( CFG_LIST_OF_NON_DFS_COUNTRY_CODE, WLAN_PARAM_String,
- hdd_config_t, listOfNonDfsCountryCode,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- (void *)CFG_LIST_OF_NON_DFS_COUNTRY_CODE_DEFAULT),
+ hdd_config_t, listOfNonDfsCountryCode,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ (void *)CFG_LIST_OF_NON_DFS_COUNTRY_CODE_DEFAULT),
REG_DYNAMIC_VARIABLE( CFG_ENABLE_SSR, WLAN_PARAM_Integer,
- hdd_config_t, enableSSR,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_SSR_DEFAULT,
- CFG_ENABLE_SSR_MIN,
- CFG_ENABLE_SSR_MAX,
- cbNotifySetEnableSSR, 0 ),
+ hdd_config_t, enableSSR,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_SSR_DEFAULT,
+ CFG_ENABLE_SSR_MIN,
+ CFG_ENABLE_SSR_MAX,
+ cbNotifySetEnableSSR, 0 ),
REG_VARIABLE_STRING( CFG_LIST_OF_NON_11AC_COUNTRY_CODE, WLAN_PARAM_String,
- hdd_config_t, listOfNon11acCountryCode,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- (void *)CFG_LIST_OF_NON_11AC_COUNTRY_CODE_DEFAULT),
+ hdd_config_t, listOfNon11acCountryCode,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ (void *)CFG_LIST_OF_NON_11AC_COUNTRY_CODE_DEFAULT),
- REG_VARIABLE(CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
- hdd_config_t, cfgMaxMediumTime,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_MAX_MEDIUM_TIME_STADEFAULT,
- CFG_MAX_MEDIUM_TIME_STAMIN,
- CFG_MAX_MEDIUM_TIME_STAMAX ),
+ REG_VARIABLE( CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
+ hdd_config_t, cfgMaxMediumTime,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_MAX_MEDIUM_TIME_STADEFAULT,
+ CFG_MAX_MEDIUM_TIME_STAMIN,
+ CFG_MAX_MEDIUM_TIME_STAMAX ),
REG_VARIABLE( CFG_ENABLE_TRAFFIC_MONITOR, WLAN_PARAM_Integer,
- hdd_config_t, enableTrafficMonitor,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_TRAFFIC_MONITOR_DEFAULT,
- CFG_ENABLE_TRAFFIC_MONITOR_MIN,
- CFG_ENABLE_TRAFFIC_MONITOR_MAX),
+ hdd_config_t, enableTrafficMonitor,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_TRAFFIC_MONITOR_DEFAULT,
+ CFG_ENABLE_TRAFFIC_MONITOR_MIN,
+ CFG_ENABLE_TRAFFIC_MONITOR_MAX),
REG_VARIABLE( CFG_TRAFFIC_IDLE_TIMEOUT, WLAN_PARAM_Integer,
- hdd_config_t, trafficIdleTimeout,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_TRAFFIC_IDLE_TIMEOUT_DEFAULT,
- CFG_TRAFFIC_IDLE_TIMEOUT_MIN,
- CFG_TRAFFIC_IDLE_TIMEOUT_MAX),
+ hdd_config_t, trafficIdleTimeout,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_TRAFFIC_IDLE_TIMEOUT_DEFAULT,
+ CFG_TRAFFIC_IDLE_TIMEOUT_MIN,
+ CFG_TRAFFIC_IDLE_TIMEOUT_MAX),
#ifdef WLAN_FEATURE_11AC
REG_VARIABLE( CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enableVhtFor24GHzBand,
- VAR_FLAGS_OPTIONAL,
- CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
- CFG_ENABLE_VHT_FOR_24GHZ_MIN,
- CFG_ENABLE_VHT_FOR_24GHZ_MAX),
+ hdd_config_t, enableVhtFor24GHzBand,
+ VAR_FLAGS_OPTIONAL,
+ CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
+ CFG_ENABLE_VHT_FOR_24GHZ_MIN,
+ CFG_ENABLE_VHT_FOR_24GHZ_MAX),
#endif
REG_VARIABLE( CFG_SCAN_OFFLOAD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, fScanOffload,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_SCAN_OFFLOAD_DEFAULT,
- CFG_SCAN_OFFLOAD_DISABLE,
- CFG_SCAN_OFFLOAD_ENABLE ),
+ hdd_config_t, fScanOffload,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_SCAN_OFFLOAD_DEFAULT,
+ CFG_SCAN_OFFLOAD_DISABLE,
+ CFG_SCAN_OFFLOAD_ENABLE ),
#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
REG_DYNAMIC_VARIABLE( CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY, WLAN_PARAM_Integer,
- hdd_config_t, bFastRoamInConIniFeatureEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
- CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
- CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
- cbNotifySetEnableFastRoamInConcurrency, 0 ),
+ hdd_config_t, bFastRoamInConIniFeatureEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
+ CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
+ CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
+ cbNotifySetEnableFastRoamInConcurrency, 0 ),
#endif
REG_VARIABLE( CFG_ENABLE_ADAPT_RX_DRAIN_NAME, WLAN_PARAM_Integer,
@@ -3001,113 +3018,113 @@ REG_VARIABLE( CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX ),
-REG_VARIABLE( CFG_ENABLE_TCP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
- hdd_config_t, enableTCPChkSumOffld,
- VAR_FLAGS_OPTIONAL,
- CFG_ENABLE_TCP_CHKSUM_OFFLOAD_DEFAULT,
- CFG_ENABLE_TCP_CHKSUM_OFFLOAD_MIN,
- CFG_ENABLE_TCP_CHKSUM_OFFLOAD_MAX),
-
-REG_VARIABLE( CFG_ENABLE_IP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
- hdd_config_t, enableIPChecksumOffload,
- VAR_FLAGS_OPTIONAL,
- CFG_ENABLE_IP_CHKSUM_OFFLOAD_DEFAULT,
- CFG_ENABLE_IP_CHKSUM_OFFLOAD_DISABLE,
- CFG_ENABLE_IP_CHKSUM_OFFLOAD_ENABLE ),
-
-REG_VARIABLE( CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enablePowersaveOffload,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_POWERSAVE_OFFLOAD_DEFAULT,
- CFG_POWERSAVE_OFFLOAD_MIN,
- CFG_POWERSAVE_OFFLOAD_MAX ),
-
-REG_VARIABLE( CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enablefwprint,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_FW_UART_PRINT_DEFAULT,
- CFG_ENABLE_FW_UART_PRINT_DISABLE,
- CFG_ENABLE_FW_UART_PRINT_ENABLE),
-
-REG_VARIABLE( CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
- hdd_config_t, enablefwlog,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_FW_LOG_DEFAULT,
- CFG_ENABLE_FW_LOG_DISABLE,
- CFG_ENABLE_FW_LOG_ENABLE),
+ REG_VARIABLE( CFG_ENABLE_TCP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
+ hdd_config_t, enableTCPChkSumOffld,
+ VAR_FLAGS_OPTIONAL,
+ CFG_ENABLE_TCP_CHKSUM_OFFLOAD_DEFAULT,
+ CFG_ENABLE_TCP_CHKSUM_OFFLOAD_MIN,
+ CFG_ENABLE_TCP_CHKSUM_OFFLOAD_MAX),
+
+ REG_VARIABLE( CFG_ENABLE_IP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
+ hdd_config_t, enableIPChecksumOffload,
+ VAR_FLAGS_OPTIONAL,
+ CFG_ENABLE_IP_CHKSUM_OFFLOAD_DEFAULT,
+ CFG_ENABLE_IP_CHKSUM_OFFLOAD_DISABLE,
+ CFG_ENABLE_IP_CHKSUM_OFFLOAD_ENABLE ),
+
+ REG_VARIABLE( CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, enablePowersaveOffload,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_POWERSAVE_OFFLOAD_DEFAULT,
+ CFG_POWERSAVE_OFFLOAD_MIN,
+ CFG_POWERSAVE_OFFLOAD_MAX ),
+
+ REG_VARIABLE( CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, enablefwprint,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_FW_UART_PRINT_DEFAULT,
+ CFG_ENABLE_FW_UART_PRINT_DISABLE,
+ CFG_ENABLE_FW_UART_PRINT_ENABLE),
+
+ REG_VARIABLE( CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, enablefwlog,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_FW_LOG_DEFAULT,
+ CFG_ENABLE_FW_LOG_DISABLE,
+ CFG_ENABLE_FW_LOG_ENABLE),
#ifdef IPA_OFFLOAD
-REG_VARIABLE( CFG_IPA_OFFLOAD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, IpaEnable,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IPA_OFFLOAD_DEFAULT,
- CFG_IPA_OFFLOAD_DISABLE,
- CFG_IPA_OFFLOAD_ENABLE ),
-
-REG_VARIABLE( CFG_IPA_IPV6_OFFLOAD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, IpaIPv6Enable,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IPA_IPV6_OFFLOAD_DEFAULT,
- CFG_IPA_IPV6_OFFLOAD_DISABLE,
- CFG_IPA_IPV6_OFFLOAD_ENABLE ),
-
-REG_VARIABLE( CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
- hdd_config_t, IpaDescSize,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IPA_DESC_SIZE_DEFAULT,
- CFG_IPA_DESC_SIZE_MIN,
- CFG_IPA_DESC_SIZE_MAX ),
-
-REG_VARIABLE( CFG_IPA_PRE_FILTER_NAME, WLAN_PARAM_Integer,
- hdd_config_t, IpaPreFilterEnable,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IPA_PRE_FILTER_DEFAULT,
- CFG_IPA_PRE_FILTER_DISABLE,
- CFG_IPA_PRE_FILTER_ENABLE ),
-
-REG_VARIABLE( CFG_IPA_RM_NAME, WLAN_PARAM_Integer,
- hdd_config_t, IpaRMEnable,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_IPA_RM_DEFAULT,
- CFG_IPA_RM_DISABLE,
- CFG_IPA_RM_ENABLE ),
+ REG_VARIABLE( CFG_IPA_OFFLOAD_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, IpaEnable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IPA_OFFLOAD_DEFAULT,
+ CFG_IPA_OFFLOAD_DISABLE,
+ CFG_IPA_OFFLOAD_ENABLE ),
+
+ REG_VARIABLE( CFG_IPA_IPV6_OFFLOAD_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, IpaIPv6Enable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IPA_IPV6_OFFLOAD_DEFAULT,
+ CFG_IPA_IPV6_OFFLOAD_DISABLE,
+ CFG_IPA_IPV6_OFFLOAD_ENABLE ),
+
+ REG_VARIABLE( CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, IpaDescSize,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IPA_DESC_SIZE_DEFAULT,
+ CFG_IPA_DESC_SIZE_MIN,
+ CFG_IPA_DESC_SIZE_MAX ),
+
+ REG_VARIABLE( CFG_IPA_PRE_FILTER_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, IpaPreFilterEnable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IPA_PRE_FILTER_DEFAULT,
+ CFG_IPA_PRE_FILTER_DISABLE,
+ CFG_IPA_PRE_FILTER_ENABLE ),
+
+ REG_VARIABLE( CFG_IPA_RM_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, IpaRMEnable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_IPA_RM_DEFAULT,
+ CFG_IPA_RM_DISABLE,
+ CFG_IPA_RM_ENABLE ),
#endif
-REG_VARIABLE( CFG_P2P_LISTEN_OFFLOAD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, fP2pListenOffload,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_P2P_LISTEN_OFFLOAD_DEFAULT,
- CFG_P2P_LISTEN_OFFLOAD_DISABLE,
- CFG_P2P_LISTEN_OFFLOAD_ENABLE ),
+ REG_VARIABLE( CFG_P2P_LISTEN_OFFLOAD_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, fP2pListenOffload,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_P2P_LISTEN_OFFLOAD_DEFAULT,
+ CFG_P2P_LISTEN_OFFLOAD_DISABLE,
+ CFG_P2P_LISTEN_OFFLOAD_ENABLE ),
#ifdef WLAN_FEATURE_11AC
-REG_VARIABLE( CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
- hdd_config_t, fVhtAmpduLenExponent,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK ,
- CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
- CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
- CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
-
-REG_VARIABLE( CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
- hdd_config_t, vhtMpduLen,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK ,
- CFG_VHT_MPDU_LEN_DEFAULT,
- CFG_VHT_MPDU_LEN_MIN,
- CFG_VHT_MPDU_LEN_MAX),
+ REG_VARIABLE( CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, fVhtAmpduLenExponent,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK ,
+ CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
+ CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
+ CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
+
+ REG_VARIABLE( CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, vhtMpduLen,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK ,
+ CFG_VHT_MPDU_LEN_DEFAULT,
+ CFG_VHT_MPDU_LEN_MIN,
+ CFG_VHT_MPDU_LEN_MAX),
#endif
-REG_VARIABLE( CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
- hdd_config_t, maxWoWFilters,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK ,
- CFG_MAX_WOW_FILTERS_DEFAULT,
- CFG_MAX_WOW_FILTERS_MIN,
- CFG_MAX_WOW_FILTERS_MAX),
+ REG_VARIABLE( CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, maxWoWFilters,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK ,
+ CFG_MAX_WOW_FILTERS_DEFAULT,
+ CFG_MAX_WOW_FILTERS_MIN,
+ CFG_MAX_WOW_FILTERS_MAX),
-REG_VARIABLE( CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
- hdd_config_t, wowEnable,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_WOW_STATUS_DEFAULT,
- CFG_WOW_ENABLE_MIN,
- CFG_WOW_ENABLE_MAX),
+ REG_VARIABLE( CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, wowEnable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_WOW_STATUS_DEFAULT,
+ CFG_WOW_ENABLE_MIN,
+ CFG_WOW_ENABLE_MAX),
REG_VARIABLE( CFG_COALESING_IN_IBSS_NAME , WLAN_PARAM_Integer,
hdd_config_t, isCoalesingInIBSSAllowed,
@@ -3116,250 +3133,259 @@ REG_VARIABLE( CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
CFG_COALESING_IN_IBSS_MIN,
CFG_COALESING_IN_IBSS_MAX ),
-REG_VARIABLE( CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
- hdd_config_t, maxNumberOfPeers,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_SAP_MAX_NO_PEERS_DEFAULT,
- CFG_SAP_MAX_NO_PEERS_MIN,
- CFG_SAP_MAX_NO_PEERS_MAX),
+ REG_VARIABLE( CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
+ hdd_config_t, maxNumberOfPeers,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_SAP_MAX_NO_PEERS_DEFAULT,
+ CFG_SAP_MAX_NO_PEERS_MIN,
+ CFG_SAP_MAX_NO_PEERS_MAX),
#ifndef QCA_WIFI_ISOC
REG_VARIABLE( CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMinLevel0,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
- CFG_THERMAL_TEMP_MIN_LEVEL0_MAX ),
+ hdd_config_t, thermalTempMinLevel0,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
+ CFG_THERMAL_TEMP_MIN_LEVEL0_MAX ),
REG_VARIABLE( CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMaxLevel0,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
- CFG_THERMAL_TEMP_MAX_LEVEL0_MAX ),
+ hdd_config_t, thermalTempMaxLevel0,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
+ CFG_THERMAL_TEMP_MAX_LEVEL0_MAX ),
REG_VARIABLE( CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMinLevel1,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
- CFG_THERMAL_TEMP_MIN_LEVEL1_MAX ),
+ hdd_config_t, thermalTempMinLevel1,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
+ CFG_THERMAL_TEMP_MIN_LEVEL1_MAX ),
REG_VARIABLE( CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMaxLevel1,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
- CFG_THERMAL_TEMP_MAX_LEVEL1_MAX ),
+ hdd_config_t, thermalTempMaxLevel1,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
+ CFG_THERMAL_TEMP_MAX_LEVEL1_MAX ),
REG_VARIABLE( CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMinLevel2,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
- CFG_THERMAL_TEMP_MIN_LEVEL2_MAX ),
+ hdd_config_t, thermalTempMinLevel2,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
+ CFG_THERMAL_TEMP_MIN_LEVEL2_MAX ),
REG_VARIABLE( CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMaxLevel2,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
- CFG_THERMAL_TEMP_MAX_LEVEL2_MAX ),
+ hdd_config_t, thermalTempMaxLevel2,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
+ CFG_THERMAL_TEMP_MAX_LEVEL2_MAX ),
REG_VARIABLE( CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMinLevel3,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
- CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
- CFG_THERMAL_TEMP_MIN_LEVEL3_MAX ),
+ hdd_config_t, thermalTempMinLevel3,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
+ CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
+ CFG_THERMAL_TEMP_MIN_LEVEL3_MAX ),
REG_VARIABLE( CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
- hdd_config_t, thermalTempMaxLevel3,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
- CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
- CFG_THERMAL_TEMP_MAX_LEVEL3_MAX ),
+ hdd_config_t, thermalTempMaxLevel3,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
+ CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
+ CFG_THERMAL_TEMP_MAX_LEVEL3_MAX ),
REG_VARIABLE( CFG_SET_TXPOWER_LIMIT2G_NAME , WLAN_PARAM_Integer,
- hdd_config_t, TxPower2g,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
- CFG_SET_TXPOWER_LIMIT2G_MIN,
- CFG_SET_TXPOWER_LIMIT2G_MAX ),
+ hdd_config_t, TxPower2g,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
+ CFG_SET_TXPOWER_LIMIT2G_MIN,
+ CFG_SET_TXPOWER_LIMIT2G_MAX ),
REG_VARIABLE( CFG_SET_TXPOWER_LIMIT5G_NAME , WLAN_PARAM_Integer,
- hdd_config_t, TxPower5g,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
- CFG_SET_TXPOWER_LIMIT5G_MIN,
- CFG_SET_TXPOWER_LIMIT5G_MAX ),
+ hdd_config_t, TxPower5g,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
+ CFG_SET_TXPOWER_LIMIT5G_MIN,
+ CFG_SET_TXPOWER_LIMIT5G_MAX ),
#endif /*#ifndef QCA_WIFI_ISOC*/
REG_VARIABLE( CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
- hdd_config_t, gEnableDebugLog,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
- CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN ,
- CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
+ hdd_config_t, gEnableDebugLog,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
+ CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN ,
+ CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
REG_VARIABLE( CFG_ENABLE_RX_THREAD, WLAN_PARAM_Integer,
- hdd_config_t, enableRxThread,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_RX_THREAD_DEFAULT,
- CFG_ENABLE_RX_THREAD_MIN,
- CFG_ENABLE_RX_THREAD_MAX),
+ hdd_config_t, enableRxThread,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_RX_THREAD_DEFAULT,
+ CFG_ENABLE_RX_THREAD_MIN,
+ CFG_ENABLE_RX_THREAD_MAX),
+
REG_VARIABLE( CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME, WLAN_PARAM_Integer,
- hdd_config_t, fDfsPhyerrFilterOffload,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
- CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
- CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX ),
+ hdd_config_t, fDfsPhyerrFilterOffload,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
+ CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
+ CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX ),
REG_VARIABLE( CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
- hdd_config_t, gEnableOverLapCh,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_ENABLE_OVERLAP_CH_DEFAULT,
- CFG_ENABLE_OVERLAP_CH_MIN,
- CFG_ENABLE_OVERLAP_CH_MAX ),
+ hdd_config_t, gEnableOverLapCh,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_ENABLE_OVERLAP_CH_DEFAULT,
+ CFG_ENABLE_OVERLAP_CH_MIN,
+ CFG_ENABLE_OVERLAP_CH_MAX ),
REG_VARIABLE_STRING( CFG_ONLY_ALLOWED_CHANNELS, WLAN_PARAM_String,
- hdd_config_t, acsAllowedChnls,
- VAR_FLAGS_OPTIONAL,
- (void *)CFG_ONLY_ALLOWED_CHANNELS_DEFAULT),
+ hdd_config_t, acsAllowedChnls,
+ VAR_FLAGS_OPTIONAL,
+ (void *)CFG_ONLY_ALLOWED_CHANNELS_DEFAULT),
REG_VARIABLE( CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
- hdd_config_t, fRegChangeDefCountry,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
- CFG_REG_CHANGE_DEF_COUNTRY_MIN,
- CFG_REG_CHANGE_DEF_COUNTRY_MAX),
+ hdd_config_t, fRegChangeDefCountry,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
+ CFG_REG_CHANGE_DEF_COUNTRY_MIN,
+ CFG_REG_CHANGE_DEF_COUNTRY_MAX),
REG_VARIABLE( CFG_SAP_SCAN_BAND_PREFERENCE, WLAN_PARAM_Integer,
- hdd_config_t, acsScanBandPreference,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_SAP_SCAN_BAND_PREFERENCE_DEFAULT,
- CFG_SAP_SCAN_BAND_PREFERENCE_MIN,
- CFG_SAP_SCAN_BAND_PREFERENCE_MAX ),
+ hdd_config_t, acsScanBandPreference,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_SAP_SCAN_BAND_PREFERENCE_DEFAULT,
+ CFG_SAP_SCAN_BAND_PREFERENCE_MIN,
+ CFG_SAP_SCAN_BAND_PREFERENCE_MAX ),
#ifdef QCA_LL_TX_FLOW_CT
REG_VARIABLE( CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
- hdd_config_t, TxLbwFlowLowWaterMark,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
- CFG_LL_TX_LBW_FLOW_LWM_MIN,
- CFG_LL_TX_LBW_FLOW_LWM_MAX ),
+ hdd_config_t, TxLbwFlowLowWaterMark,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
+ CFG_LL_TX_LBW_FLOW_LWM_MIN,
+ CFG_LL_TX_LBW_FLOW_LWM_MAX ),
REG_VARIABLE( CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
- hdd_config_t, TxLbwFlowHighWaterMarkOffset,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
- CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
- CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX ),
+ hdd_config_t, TxLbwFlowHighWaterMarkOffset,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
+ CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
+ CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX ),
REG_VARIABLE( CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
- hdd_config_t, TxLbwFlowMaxQueueDepth,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
- CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
- CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX ),
+ hdd_config_t, TxLbwFlowMaxQueueDepth,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
+ CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
+ CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX ),
REG_VARIABLE( CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
- hdd_config_t, TxHbwFlowLowWaterMark,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
- CFG_LL_TX_HBW_FLOW_LWM_MIN,
- CFG_LL_TX_HBW_FLOW_LWM_MAX ),
+ hdd_config_t, TxHbwFlowLowWaterMark,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
+ CFG_LL_TX_HBW_FLOW_LWM_MIN,
+ CFG_LL_TX_HBW_FLOW_LWM_MAX ),
REG_VARIABLE( CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
- hdd_config_t, TxHbwFlowHighWaterMarkOffset,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
- CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
- CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX ),
+ hdd_config_t, TxHbwFlowHighWaterMarkOffset,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
+ CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
+ CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX ),
REG_VARIABLE( CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
- hdd_config_t, TxHbwFlowMaxQueueDepth,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
- CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
- CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX ),
+ hdd_config_t, TxHbwFlowMaxQueueDepth,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
+ CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
+ CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX ),
#endif /* QCA_LL_TX_FLOW_CT */
- REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
- hdd_config_t, nInitialDwellTime,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_INITIAL_DWELL_TIME_DEFAULT,
- CFG_INITIAL_DWELL_TIME_MIN,
- CFG_INITIAL_DWELL_TIME_MAX ),
+ REG_VARIABLE( CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, nInitialDwellTime,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_INITIAL_DWELL_TIME_DEFAULT,
+ CFG_INITIAL_DWELL_TIME_MIN,
+ CFG_INITIAL_DWELL_TIME_MAX ),
REG_VARIABLE( CFG_ACS_BAND_SWITCH_THRESHOLD, WLAN_PARAM_Integer,
- hdd_config_t, acsBandSwitchThreshold,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_ACS_BAND_SWITCH_THRESHOLD_DEFAULT,
- CFG_ACS_BAND_SWITCH_THRESHOLD_MIN,
- CFG_ACS_BAND_SWITCH_THRESHOLD_MAX ),
+ hdd_config_t, acsBandSwitchThreshold,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_ACS_BAND_SWITCH_THRESHOLD_DEFAULT,
+ CFG_ACS_BAND_SWITCH_THRESHOLD_MIN,
+ CFG_ACS_BAND_SWITCH_THRESHOLD_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 ),
+ 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 ),
REG_VARIABLE( CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
- hdd_config_t, apMaxOffloadPeers,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
- CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
- CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
- CFG_SAP_MAX_OFFLOAD_PEERS_MAX ),
+ hdd_config_t, apMaxOffloadPeers,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
+ CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
+ CFG_SAP_MAX_OFFLOAD_PEERS_MAX ),
REG_VARIABLE( CFG_ADVERTISE_CONCURRENT_OPERATION_NAME , WLAN_PARAM_Integer,
- hdd_config_t, advertiseConcurrentOperation,
- VAR_FLAGS_OPTIONAL,
- CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
- CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
- CFG_ADVERTISE_CONCURRENT_OPERATION_MAX ),
+ hdd_config_t, advertiseConcurrentOperation,
+ VAR_FLAGS_OPTIONAL,
+ CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
+ CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
+ CFG_ADVERTISE_CONCURRENT_OPERATION_MAX ),
REG_VARIABLE( CFG_ENABLE_HYSTERETIC_MODE, WLAN_PARAM_Integer,
- hdd_config_t, enableHystereticMode,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_HYSTERETIC_MODE_DEFAULT,
- CFG_ENABLE_HYSTERETIC_MODE_MIN,
- CFG_ENABLE_HYSTERETIC_MODE_MAX ),
+ hdd_config_t, enableHystereticMode,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_HYSTERETIC_MODE_DEFAULT,
+ CFG_ENABLE_HYSTERETIC_MODE_MIN,
+ CFG_ENABLE_HYSTERETIC_MODE_MAX ),
REG_VARIABLE( CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
- hdd_config_t, defaultRateIndex24Ghz,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
- CFG_DEFAULT_RATE_INDEX_24GH_MIN,
- CFG_DEFAULT_RATE_INDEX_24GH_MAX ),
+ hdd_config_t, defaultRateIndex24Ghz,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
+ CFG_DEFAULT_RATE_INDEX_24GH_MIN,
+ CFG_DEFAULT_RATE_INDEX_24GH_MAX ),
REG_VARIABLE_STRING( CFG_OVERRIDE_COUNTRY_CODE, WLAN_PARAM_String,
- hdd_config_t, overrideCountryCode,
- VAR_FLAGS_OPTIONAL,
- (void *)CFG_OVERRIDE_COUNTRY_CODE_DEFAULT),
+ hdd_config_t, overrideCountryCode,
+ VAR_FLAGS_OPTIONAL,
+ (void *)CFG_OVERRIDE_COUNTRY_CODE_DEFAULT),
#ifdef MEMORY_DEBUG
- REG_VARIABLE(CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
- hdd_config_t, IsMemoryDebugSupportEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
- CFG_ENABLE_MEMORY_DEBUG_MIN,
- CFG_ENABLE_MEMORY_DEBUG_MAX ),
+ REG_VARIABLE( CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, IsMemoryDebugSupportEnabled,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
+ CFG_ENABLE_MEMORY_DEBUG_MIN,
+ CFG_ENABLE_MEMORY_DEBUG_MAX ),
#endif
REG_VARIABLE( CFG_ROAMING_DFS_CHANNEL_NAME , WLAN_PARAM_Integer,
- hdd_config_t, allowDFSChannelRoam,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ROAMING_DFS_CHANNEL_DEFAULT,
- CFG_ROAMING_DFS_CHANNEL_MIN,
- CFG_ROAMING_DFS_CHANNEL_MAX ),
-REG_VARIABLE( CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
- hdd_config_t, debugP2pRemainOnChannel,
- VAR_FLAGS_OPTIONAL,
- CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
- CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
- CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX ),
+ hdd_config_t, allowDFSChannelRoam,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAMING_DFS_CHANNEL_DEFAULT,
+ CFG_ROAMING_DFS_CHANNEL_MIN,
+ CFG_ROAMING_DFS_CHANNEL_MAX ),
+
+ REG_VARIABLE( CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, debugP2pRemainOnChannel,
+ VAR_FLAGS_OPTIONAL,
+ CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
+ CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
+ CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX ),
+
+ REG_VARIABLE( CFG_SAP_DOT11_MODE_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, sapDot11Mode,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
+ CFG_SAP_DOT11_MODE_DEFAULT,
+ CFG_SAP_DOT11_MODE_MIN,
+ CFG_SAP_DOT11_MODE_MAX ),
};
/*
@@ -3670,6 +3696,7 @@ static void print_hdd_cfg(hdd_context_t *pHddCtx)
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [VoReorderAgingTime] Value = [%u] ",pHddCtx->cfg_ini->VoReorderAgingTime);
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [mcastBcastFilterSetting] Value = [%u] ",pHddCtx->cfg_ini->mcastBcastFilterSetting);
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fhostArpOffload] Value = [%u] ",pHddCtx->cfg_ini->fhostArpOffload);
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [ssdp] Value = [%u] ", pHddCtx->cfg_ini->ssdp);
#ifdef WLAN_FEATURE_VOWIFI_11R
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fFTResourceReqSupported] Value = [%u] ",pHddCtx->cfg_ini->fFTResourceReqSupported);
#endif
@@ -5195,6 +5222,15 @@ v_BOOL_t hdd_update_config_dat( hdd_context_t *pHddCtx )
fStatus = FALSE;
hddLog(LOGE, "Could not pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CCM");
}
+
+ if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
+ pConfig->fEnableTDLSOffChannel, NULL,
+ eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CCM");
+ }
+
#endif
if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index bb8a52444529..09cddaa8c434 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -172,6 +172,8 @@
#define WLAN_AKM_SUITE_FT_PSK 0x000FAC04
#endif
+#define HDD_CHANNEL_14 14
+
static const u32 hdd_cipher_suites[] =
{
WLAN_CIPHER_SUITE_WEP40,
@@ -2104,6 +2106,8 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter,
tSmeConfigParams *psmeConfig;
v_BOOL_t MFPCapable;
v_BOOL_t MFPRequired;
+ eHddDot11Mode sapDot11Mode =
+ (WLAN_HDD_GET_CTX(pHostapdAdapter))->cfg_ini->sapDot11Mode;
ENTER();
@@ -2444,9 +2448,9 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter,
* Otherwise, leave whatever is set in hostapd (a OR b OR g OR n mode) */
if( ((pConfig->SapHw_mode == eSAP_DOT11_MODE_11n) ||
(pConfig->SapHw_mode == eSAP_DOT11_MODE_11n_ONLY)) &&
- (((WLAN_HDD_GET_CTX(pHostapdAdapter))->cfg_ini->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
- ((WLAN_HDD_GET_CTX(pHostapdAdapter))->cfg_ini->dot11Mode == eHDD_DOT11_MODE_11ac) ||
- ((WLAN_HDD_GET_CTX(pHostapdAdapter))->cfg_ini->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY)) )
+ (( sapDot11Mode == eHDD_DOT11_MODE_AUTO ) ||
+ ( sapDot11Mode == eHDD_DOT11_MODE_11ac ) ||
+ ( sapDot11Mode == eHDD_DOT11_MODE_11ac_ONLY )) )
{
if ((WLAN_HDD_GET_CTX(pHostapdAdapter))->cfg_ini->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY)
pConfig->SapHw_mode = eSAP_DOT11_MODE_11ac_ONLY;
@@ -3071,6 +3075,13 @@ static int wlan_hdd_change_iface_to_sta_mode(struct net_device *ndev,
wdev = ndev->ieee80211_ptr;
hdd_stop_adapter(pHddCtx, pAdapter);
+#ifdef FEATURE_WLAN_TDLS
+ /* A Mutex Lock is introduced while changing the mode to
+ * protect the concurrent access for the Adapters by TDLS
+ * module.
+ */
+ mutex_lock(&pHddCtx->tdls_lock);
+#endif
hdd_deinit_adapter(pHddCtx, pAdapter);
wdev->iftype = type;
/*Check for sub-string p2p to confirm its a p2p interface*/
@@ -3088,6 +3099,9 @@ static int wlan_hdd_change_iface_to_sta_mode(struct net_device *ndev,
pHddCtx->change_iface = type;
memset(&pAdapter->sessionCtx, 0, sizeof(pAdapter->sessionCtx));
hdd_set_station_ops(pAdapter->dev);
+#ifdef FEATURE_WLAN_TDLS
+ mutex_unlock(&pHddCtx->tdls_lock);
+#endif
status = hdd_init_station_mode(pAdapter);
wext = WLAN_HDD_GET_WEXT_STATE_PTR(pAdapter);
wext->roamProfile.pAddIEScan = pAdapter->scan_info.scanAddIE.addIEdata;
@@ -3458,18 +3472,7 @@ static int __wlan_hdd_cfg80211_change_iface(struct wiphy *wiphy,
case NL80211_IFTYPE_STATION:
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_ADHOC:
-#ifdef FEATURE_WLAN_TDLS
-
- /* A Mutex Lock is introduced while changing the mode to
- * protect the concurrent access for the Adapters by TDLS
- * module.
- */
- mutex_lock(&pHddCtx->tdls_lock);
-#endif
status = wlan_hdd_change_iface_to_sta_mode(ndev, type);
-#ifdef FEATURE_WLAN_TDLS
- mutex_unlock(&pHddCtx->tdls_lock);
-#endif
if (status != VOS_STATUS_SUCCESS)
return status;
@@ -3800,6 +3803,7 @@ static int wlan_hdd_change_station(struct wiphy *wiphy,
#ifdef FEATURE_WLAN_TDLS
tCsrStaParams StaParams = {0};
tANI_U8 isBufSta = 0;
+ tANI_U8 isOffChannelSupported = 0;
#endif
ENTER();
@@ -3856,6 +3860,42 @@ static int wlan_hdd_change_station(struct wiphy *wiphy,
StaParams.uapsd_queues = params->uapsd_queues;
StaParams.max_sp = params->max_sp;
+ /* Convert (first channel , number of channels) tuple to
+ * the total list of channels. This goes with the assumption
+ * that if the first channel is < 14, then the next channels
+ * are an incremental of 1 else an incremental of 4 till the number
+ * of channels.
+ */
+ if (0 != params->supported_channels_len)
+ {
+ int i = 0, j = 0, k = 0, no_of_channels = 0;
+
+ for (i = 0 ; i < params->supported_channels_len &&
+ j < SIR_MAC_MAX_SUPP_CHANNELS; i += 2)
+ {
+ int wifi_chan_index;
+
+ StaParams.supported_channels[j] = params->supported_channels[i];
+ wifi_chan_index =
+ ((StaParams.supported_channels[j] <= HDD_CHANNEL_14 ) ? 1 : 4 );
+ no_of_channels = params->supported_channels[i + 1];
+
+ for (k = 1; k <= no_of_channels &&
+ j < SIR_MAC_MAX_SUPP_CHANNELS - 1; k++)
+ {
+ StaParams.supported_channels[j + 1] =
+ StaParams.supported_channels[j] + wifi_chan_index;
+ j += 1;
+ }
+ }
+ StaParams.supported_channels_len = j;
+ }
+ vos_mem_copy(StaParams.supported_oper_classes,
+ params->supported_oper_classes,
+ params->supported_oper_classes_len);
+ StaParams.supported_oper_classes_len =
+ params->supported_oper_classes_len;
+
if (0 != params->ext_capab_len)
vos_mem_copy(StaParams.extn_capability, params->ext_capab,
sizeof(StaParams.extn_capability));
@@ -3901,9 +3941,15 @@ static int wlan_hdd_change_station(struct wiphy *wiphy,
if ((1<<4) & StaParams.extn_capability[3]) {
isBufSta = 1;
}
+ /* TDLS Channel Switching Support */
+ if ((1<<6) & StaParams.extn_capability[3]) {
+ isOffChannelSupported = 1;
+ }
}
- status = wlan_hdd_tdls_set_peer_caps( pAdapter, mac, params->uapsd_queues,
- params->max_sp, isBufSta);
+ status = wlan_hdd_tdls_set_peer_caps( pAdapter, mac,
+ &StaParams, isBufSta,
+ isOffChannelSupported);
+
if (VOS_STATUS_SUCCESS != status) {
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
"%s: wlan_hdd_tdls_set_peer_caps failed!", __func__);
@@ -4760,8 +4806,6 @@ wlan_hdd_cfg80211_inform_bss_frame( hdd_adapter_t *pAdapter,
struct timespec ts;
#endif
- ENTER();
-
pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
status = wlan_hdd_validate_context(pHddCtx);
if (0 != status)
@@ -4846,6 +4890,8 @@ wlan_hdd_cfg80211_inform_bss_frame( hdd_adapter_t *pAdapter,
}
else
{
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s Invalid chan_no:%d",
+ __func__, chan_no);
kfree(mgmt);
return NULL;
}
@@ -4867,7 +4913,7 @@ wlan_hdd_cfg80211_inform_bss_frame( hdd_adapter_t *pAdapter,
*/
if(chan == NULL)
{
- hddLog(VOS_TRACE_LEVEL_INFO, "%s chan pointer is NULL", __func__);
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s chan pointer is NULL", __func__);
kfree(mgmt);
return NULL;
}
@@ -4889,6 +4935,9 @@ wlan_hdd_cfg80211_inform_bss_frame( hdd_adapter_t *pAdapter,
rssi = (VOS_MIN ((bss_desc->rssi + bss_desc->sinr), 0))*100;
}
+ hddLog(VOS_TRACE_LEVEL_INFO, "%s: BSSID:" MAC_ADDRESS_STR " Channel:%d RSSI:%d",
+ __func__, MAC_ADDR_ARRAY(mgmt->bssid),chan->center_freq, (int)(rssi/100));
+
bss_status = cfg80211_inform_bss_frame(wiphy, chan, mgmt,
frame_len, rssi, GFP_KERNEL);
kfree(mgmt);
@@ -4981,7 +5030,8 @@ static int wlan_hdd_cfg80211_update_bss( struct wiphy *wiphy,
/* no scan results */
if (NULL == pResult)
{
- hddLog(VOS_TRACE_LEVEL_INFO, "%s: No scan result", __func__);
+ hddLog(VOS_TRACE_LEVEL_INFO, "%s: No scan result Status %d",
+ __func__, status);
return status;
}
@@ -5385,9 +5435,8 @@ v_BOOL_t hdd_isScanAllowed( hdd_context_t *pHddCtx )
{
staMac = (v_U8_t *) &(pAdapter->macAddressCurrent.bytes[0]);
hddLog(VOS_TRACE_LEVEL_ERROR,
- "%s: client " MAC_ADDRESS_STR
- " is in the middle of WPS/EAPOL exchange.", __func__,
- MAC_ADDR_ARRAY(staMac));
+ "%s: client " MAC_ADDRESS_STR " is in the middle of WPS/EAPOL exchange.",
+ __func__,MAC_ADDR_ARRAY(staMac));
return VOS_FALSE;
}
}
@@ -5532,9 +5581,15 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
dev,
#endif
request);
- if(status <= 0)
+ if (status <= 0)
{
- hddLog(VOS_TRACE_LEVEL_INFO, "%s: TDLS Pending %d", __func__, status);
+ if (!status)
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s: TDLS in progress.scan rejected %d",
+ __func__, status);
+ else
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s: TDLS teardown is ongoing %d",
+ __func__, status);
+
return status;
}
#endif
@@ -5547,7 +5602,7 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
}
if (TRUE == pHddCtx->tmInfo.tmAction.enterImps)
{
- hddLog(VOS_TRACE_LEVEL_WARN,
+ hddLog(VOS_TRACE_LEVEL_ERROR,
"%s: MAX TM Level Scan not allowed", __func__);
mutex_unlock(&pHddCtx->tmInfo.tmOperationLock);
return -EBUSY;
@@ -5588,10 +5643,10 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
( tCsrSSIDInfo *)vos_mem_malloc(
request->n_ssids*sizeof(tCsrSSIDInfo));
- if(NULL == scanRequest.SSIDs.SSIDList)
+ if (NULL == scanRequest.SSIDs.SSIDList)
{
hddLog(VOS_TRACE_LEVEL_ERROR,
- "memory alloc failed SSIDInfo buffer");
+ "%s: memory alloc failed SSIDInfo buffer", __func__);
return -ENOMEM;
}
@@ -5603,8 +5658,8 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
vos_mem_copy(SsidInfo->SSID.ssId, &request->ssids[j].ssid[0],
SsidInfo->SSID.length);
SsidInfo->SSID.ssId[SsidInfo->SSID.length] = '\0';
- hddLog(VOS_TRACE_LEVEL_INFO_HIGH, "SSID number %d: %s",
- j, SsidInfo->SSID.ssId);
+ hddLog(VOS_TRACE_LEVEL_INFO, "SSID number %d: %s",
+ j, SsidInfo->SSID.ssId);
}
/* set the scan type to active */
scanRequest.scanType = eSIR_ACTIVE_SCAN;
@@ -5639,21 +5694,39 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
/*TODO: scan the requested channels only*/
/*Right now scanning all the channels */
- if( request )
+ if (request)
{
- if( request->n_channels )
+ if (MAX_CHANNEL < request->n_channels)
+ {
+ hddLog(VOS_TRACE_LEVEL_WARN,"No of Scan Channels exceeded limit: %d",
+ request->n_channels);
+ request->n_channels = MAX_CHANNEL;
+ }
+
+ hddLog(VOS_TRACE_LEVEL_INFO,
+ "No of Scan Channels: %d", request->n_channels);
+
+ if (request->n_channels)
{
- channelList = vos_mem_malloc( request->n_channels );
- if( NULL == channelList )
+ char chList [(request->n_channels*5)+1];
+ int len;
+ channelList = vos_mem_malloc(request->n_channels);
+ if (NULL == channelList)
{
+ hddLog(VOS_TRACE_LEVEL_ERROR,
+ "%s: memory alloc failed channelList", __func__);
status = -ENOMEM;
goto free_mem;
}
+ for (i = 0, len = 0; i < request->n_channels ; i++ )
+ {
+ channelList[i] = request->channels[i]->hw_value;
+ len += snprintf(chList+len, 5, "%d ", channelList[i]);
+ }
- for( i = 0 ; i < request->n_channels ; i++ )
- channelList[i] = request->channels[i]->hw_value;
- }
+ hddLog(VOS_TRACE_LEVEL_INFO, "Channel-List: %s", chList);
+ }
scanRequest.ChannelInfo.numOfChannels = request->n_channels;
scanRequest.ChannelInfo.ChannelList = channelList;
@@ -5674,6 +5747,7 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
if( request->n_channels != WLAN_HDD_P2P_SINGLE_CHANNEL_SCAN )
{
+ hddLog(VOS_TRACE_LEVEL_DEBUG, "Flushing P2P Results");
sme_ScanFlushP2PResult( WLAN_HDD_GET_HAL_CTX(pAdapter),
pAdapter->sessionId );
}
@@ -5766,6 +5840,12 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
*/
hdd_prevent_suspend();
+ hddLog(VOS_TRACE_LEVEL_INFO_HIGH,
+ "requestType %d, scanType %d, minChnTime %d, maxChnTime %d,p2pSearch %d, skipDfsChnlIn P2pSearch %d",
+ scanRequest.requestType, scanRequest.scanType,
+ scanRequest.minChnTime, scanRequest.maxChnTime,
+ scanRequest.p2pSearch, scanRequest.skipDfsChnlInP2pSearch);
+
status = sme_ScanRequest( WLAN_HDD_GET_HAL_CTX(pAdapter),
pAdapter->sessionId, &scanRequest, &scanId,
&hdd_cfg80211_scan_done_callback, dev );
@@ -5777,11 +5857,15 @@ int wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
complete(&pScanInfo->scan_req_completion_event);
if(eHAL_STATUS_RESOURCES == status)
{
- hddLog(VOS_TRACE_LEVEL_INFO, "%s: HO is in progress.So defer the scan by informing busy",__func__);
- status = -EBUSY;
- } else {
- status = -EIO;
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s: HO is in progress.So defer the scan by informing busy",
+ __func__);
+ status = -EBUSY;
+ }
+ else
+ {
+ status = -EIO;
}
+
hdd_allow_suspend();
goto free_mem;
}
diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c
index 0f517f685f85..53928435a415 100644
--- a/CORE/HDD/src/wlan_hdd_early_suspend.c
+++ b/CORE/HDD/src/wlan_hdd_early_suspend.c
@@ -51,7 +51,6 @@
#include "halTypes.h"
#include "sme_Api.h"
#include <vos_api.h>
-#include "vos_power.h"
#include <vos_sched.h>
#include <macInitApi.h>
#include <wlan_qct_sys.h>
@@ -110,10 +109,6 @@ static eHalStatus g_full_pwr_status;
static eHalStatus g_standby_status;
extern VOS_STATUS hdd_post_voss_start_config(hdd_context_t* pHddCtx);
-extern VOS_STATUS vos_chipExitDeepSleepVREGHandler(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data);
extern void hdd_wlan_initial_scan(hdd_context_t *pHddCtx);
extern struct notifier_block hdd_netdev_notifier;
@@ -325,7 +320,6 @@ VOS_STATUS hdd_enter_deep_sleep(hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter)
{
eHalStatus halStatus;
VOS_STATUS vosStatus = VOS_STATUS_SUCCESS;
- vos_call_status_type callType;
long ret;
//Stop the Interface TX queue.
@@ -393,22 +387,6 @@ VOS_STATUS hdd_enter_deep_sleep(hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter)
VOS_ASSERT(0);
}
- vosStatus = vos_chipAssertDeepSleep( &callType, NULL, NULL );
- if( VOS_IS_STATUS_SUCCESS( vosStatus ))
- {
- hddLog(VOS_TRACE_LEVEL_ERROR,
- FL("vos_chipAssertDeepSleep return failed %d"), vosStatus);
- VOS_ASSERT(0);
- }
-
- //Vote off any PMIC voltage supplies
- vosStatus = vos_chipPowerDown(NULL, NULL, NULL);
- if( !VOS_IS_STATUS_SUCCESS( vosStatus ))
- {
- hddLog(VOS_TRACE_LEVEL_ERROR, "%s: vos_chipPowerDown return failed %d",
- __func__, vosStatus);
- VOS_ASSERT(0);
- }
pHddCtx->hdd_ps_state = eHDD_SUSPEND_DEEP_SLEEP;
//Restore IMPS config
@@ -428,15 +406,6 @@ VOS_STATUS hdd_exit_deep_sleep(hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter)
eHalStatus halStatus;
tANI_U32 type, subType;
- //Power Up Libra WLAN card first if not already powered up
- vosStatus = vos_chipPowerUp(NULL,NULL,NULL);
- if (!VOS_IS_STATUS_SUCCESS(vosStatus))
- {
- hddLog(VOS_TRACE_LEVEL_FATAL, "%s: WLAN not Powered Up.exiting",
- __func__);
- goto err_deep_sleep;
- }
-
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
"%s: calling hdd_set_sme_config",__func__);
vosStatus = hdd_set_sme_config( pHddCtx );
diff --git a/CORE/HDD/src/wlan_hdd_ftm.c b/CORE/HDD/src/wlan_hdd_ftm.c
index eeabe6483e72..95b809da1774 100644
--- a/CORE/HDD/src/wlan_hdd_ftm.c
+++ b/CORE/HDD/src/wlan_hdd_ftm.c
@@ -67,7 +67,6 @@
#include "i_vos_packet.h"
#include "vos_nvitem.h"
#include "wlan_hdd_main.h"
-#include "vos_power.h"
#include "qwlan_version.h"
#include "wlan_nv.h"
@@ -1508,11 +1507,6 @@ int wlan_hdd_ftm_open(hdd_context_t *pHddCtx)
goto err_nl_srv_init;
}
#endif
- if (!VOS_IS_STATUS_SUCCESS(vos_chipVoteOnXOBuffer(NULL, NULL, NULL)))
- {
- hddLog(VOS_TRACE_LEVEL_FATAL, "%s: Failed to configure 19.2 MHz Clock", __func__);
- goto err_nl_srv_init;
- }
#endif
#ifdef HDD_SESSIONIZE
@@ -1608,26 +1602,6 @@ int wlan_hdd_ftm_close(hdd_context_t *pHddCtx)
wlan_ftm_stop(pHddCtx);
}
- //Assert Deep sleep signal now to put Libra HW in lowest power state
- vosStatus = vos_chipAssertDeepSleep( NULL, NULL, NULL );
- if (!VOS_IS_STATUS_SUCCESS(vosStatus))
- {
- VOS_TRACE( VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
- "%s: Failed to assert deep sleep signal", __func__);
- VOS_ASSERT( 0 );
- }
-
- //Vote off any PMIC voltage supplies
- vosStatus = vos_chipPowerDown(NULL, NULL, NULL);
- if (!VOS_IS_STATUS_SUCCESS(vosStatus))
- {
- VOS_TRACE( VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR,
- "%s: Failed to put HW into low power", __func__);
- VOS_ASSERT( 0 );
- }
-
- vos_chipVoteOffXOBuffer(NULL, NULL, NULL);
-
#ifdef WLAN_KD_READY_NOTIFIER
nl_srv_exit(pHddCtx->ptt_pid);
#else
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index b9a75bba4326..e6795ce85789 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -61,7 +61,6 @@
#include <wlan_hdd_includes.h>
#include <vos_api.h>
#include <vos_sched.h>
-#include <vos_power.h>
#include <linux/etherdevice.h>
#include <linux/firmware.h>
#include <wcnss_api.h>
@@ -567,9 +566,6 @@ static int hdd_netdev_notifier_call(struct notifier_block * nb,
(strncmp(dev->name, "p2p", 3)))
return NOTIFY_DONE;
- if (isWDresetInProgress())
- return NOTIFY_DONE;
-
if (!dev->ieee80211_ptr)
return NOTIFY_DONE;
@@ -587,6 +583,9 @@ static int hdd_netdev_notifier_call(struct notifier_block * nb,
VOS_ASSERT(0);
return NOTIFY_DONE;
}
+ if (pHddCtx->isLogpInProgress)
+ return NOTIFY_DONE;
+
hddLog(VOS_TRACE_LEVEL_INFO, "%s: %s New Net Device State = %lu",
__func__, dev->name, state);
@@ -8097,13 +8096,6 @@ hdd_adapter_t* hdd_open_adapter( hdd_context_t *pHddCtx, tANI_U8 session_type,
if( NULL == pAdapter )
return NULL;
-#ifdef FEATURE_WLAN_TDLS
- /* A Mutex Lock is introduced while changing/initializing the mode to
- * protect the concurrent access for the Adapters by TDLS module.
- */
- mutex_lock(&pHddCtx->tdls_lock);
-#endif
-
pAdapter->wdev.iftype = (session_type == WLAN_HDD_P2P_CLIENT) ?
NL80211_IFTYPE_P2P_CLIENT:
NL80211_IFTYPE_STATION;
@@ -8111,9 +8103,6 @@ hdd_adapter_t* hdd_open_adapter( hdd_context_t *pHddCtx, tANI_U8 session_type,
pAdapter->device_mode = session_type;
status = hdd_init_station_mode( pAdapter );
-#ifdef FEATURE_WLAN_TDLS
- mutex_unlock(&pHddCtx->tdls_lock);
-#endif
if( VOS_STATUS_SUCCESS != status )
goto err_free_netdev;
@@ -9911,16 +9900,6 @@ void hdd_wlan_exit(hdd_context_t *pHddCtx)
VOS_ASSERT( VOS_IS_STATUS_SUCCESS( vosStatus ) );
}
- //Assert Deep sleep signal now to put Libra HW in lowest power state
- vosStatus = vos_chipAssertDeepSleep( NULL, NULL, NULL );
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( vosStatus ) );
-
- //Vote off any PMIC voltage supplies
- vos_chipPowerDown(NULL, NULL, NULL);
-
- vos_chipVoteOffXOBuffer(NULL, NULL, NULL);
-
-
//This requires pMac access, Call this before vos_close().
hdd_unregister_mcast_bcast_filter(pHddCtx);
@@ -9976,19 +9955,6 @@ void hdd_wlan_exit(hdd_context_t *pHddCtx)
#endif /* WLAN_KD_READY_NOTIFIER */
- /* Cancel the vote for XO Core ON.
- * This is done here to ensure there is no race condition since MC, TX and WD threads have
- * exited at this point
- */
- hddLog(VOS_TRACE_LEVEL_WARN, "In module exit: Cancel the vote for XO Core ON"
- " when WLAN is turned OFF");
- if (vos_chipVoteXOCore(NULL, NULL, NULL, VOS_FALSE) != VOS_STATUS_SUCCESS)
- {
- hddLog(VOS_TRACE_LEVEL_ERROR, "Could not cancel the vote for XO Core ON."
- " Not returning failure."
- " Power consumed will be high");
- }
-
hdd_close_all_adapters( pHddCtx );
#ifdef IPA_OFFLOAD
@@ -10528,7 +10494,9 @@ static void hdd_bus_bw_compute_cbk(void *phddctx)
"trigger level %d", vote_level_max);
pHddCtx->bus_bw_triggered = 1;
pHddCtx->cur_bus_bw = vote_level_max;
+#ifdef CONFIG_CNSS
cnss_request_bus_bandwidth(vote_level_max);
+#endif
}
exit:
@@ -10886,13 +10854,6 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
pHddCtx->isLogpInProgress = FALSE;
vos_set_logp_in_progress(VOS_MODULE_ID_VOSS, FALSE);
- status = vos_chipVoteOnXOBuffer(NULL, NULL, NULL);
- if(!VOS_IS_STATUS_SUCCESS(status))
- {
- hddLog(VOS_TRACE_LEVEL_FATAL, "%s: Failed to configure 19.2 MHz Clock", __func__);
- goto err_wdclose;
- }
-
#ifdef CONFIG_ENABLE_LINUX_REG
status = vos_nv_open();
if (!VOS_IS_STATUS_SUCCESS(status))
@@ -10900,7 +10861,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
/* NV module cannot be initialized */
hddLog( VOS_TRACE_LEVEL_FATAL,
"%s: vos_nv_open failed", __func__);
- goto err_clkvote;
+ goto err_wdclose;
}
#ifdef QCA_WIFI_ISOC
@@ -11591,11 +11552,8 @@ err_vos_nv_close:
#ifdef CONFIG_ENABLE_LINUX_REG
vos_nv_close();
-err_clkvote:
#endif
- vos_chipVoteOffXOBuffer(NULL, NULL, NULL);
-
err_wdclose:
if(pHddCtx->cfg_ini->fIsLogpEnabled)
vos_watchdog_close(pVosContext);
@@ -11667,16 +11625,6 @@ static int hdd_driver_init( void)
pr_info("%s: loading driver v%s\n", WLAN_MODULE_NAME,
QWLAN_VERSIONSTR TIMER_MANAGER_STR MEMORY_DEBUG_STR);
- //Power Up Libra WLAN card first if not already powered up
- status = vos_chipPowerUp(NULL,NULL,NULL);
- if (!VOS_IS_STATUS_SUCCESS(status))
- {
- hddLog(VOS_TRACE_LEVEL_FATAL, "%s: Libra WLAN not Powered Up. "
- "exiting", __func__);
- vos_wake_lock_destroy(&wlan_wake_lock);
- return -EIO;
- }
-
#ifdef ANI_BUS_TYPE_PCI
dev = wcnss_wlan_get_device();
@@ -11779,28 +11727,10 @@ static int hdd_driver_init( void)
}
#endif
- /* Cancel the vote for XO Core ON
- * This is done here for safety purposes in case we re-initialize without turning
- * it OFF in any error scenario.
- */
- hddLog(VOS_TRACE_LEVEL_INFO, "In module init: Ensure Force XO Core is OFF"
- " when WLAN is turned ON so Core toggles"
- " unless we enter PSD");
- if (vos_chipVoteXOCore(NULL, NULL, NULL, VOS_FALSE) != VOS_STATUS_SUCCESS)
- {
- hddLog(VOS_TRACE_LEVEL_ERROR, "Could not cancel XO Core ON vote. Not returning failure."
- " Power consumed will be high");
- }
} while (0);
if (0 != ret_status)
{
- //Assert Deep sleep signal now to put Libra HW in lowest power state
- status = vos_chipAssertDeepSleep( NULL, NULL, NULL );
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( status) );
-
- //Vote off any PMIC voltage supplies
- vos_chipPowerDown(NULL, NULL, NULL);
#ifdef TIMER_MANAGER
vos_timer_exit();
#endif
@@ -12648,7 +12578,9 @@ void hdd_ch_avoid_cb
}
}
+#ifdef CONFIG_CNSS
cnss_set_wlan_unsafe_channel(hdd_ctxt->unsafe_channel_list, hdd_ctxt->unsafe_channel_count);
+#endif
if (hdd_ctxt->unsafe_channel_count) {
hostapd_adapter = hdd_get_adapter(hdd_ctxt, WLAN_HDD_SOFTAP);
diff --git a/CORE/HDD/src/wlan_hdd_p2p.c b/CORE/HDD/src/wlan_hdd_p2p.c
index 937196c17c85..c946e55b180d 100644
--- a/CORE/HDD/src/wlan_hdd_p2p.c
+++ b/CORE/HDD/src/wlan_hdd_p2p.c
@@ -264,12 +264,34 @@ eHalStatus wlan_hdd_remain_on_channel_callback( tHalHandle hHal, void* pCtx,
void wlan_hdd_cancel_existing_remain_on_channel(hdd_adapter_t *pAdapter)
{
hdd_cfg80211_state_t *cfgState = WLAN_HDD_GET_CFG_STATE_PTR( pAdapter );
+ hdd_remain_on_chan_ctx_t *pRemainChanCtx;
int status = 0;
+ mutex_lock(&cfgState->remain_on_chan_ctx_lock);
if(cfgState->remain_on_chan_ctx != NULL)
{
hddLog( LOG1, "Cancel Existing Remain on Channel");
+ vos_timer_stop(&cfgState->remain_on_chan_ctx->hdd_remain_on_chan_timer);
+ pRemainChanCtx = cfgState->remain_on_chan_ctx;
+ if (pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress == TRUE)
+ {
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
+ hddLog( LOG1,
+ "ROC timer cancellation in progress,"
+ " wait for completion");
+ status = wait_for_completion_interruptible_timeout(&pAdapter->cancel_rem_on_chan_var,
+ msecs_to_jiffies(WAIT_CANCEL_REM_CHAN));
+ if (0 >= status)
+ {
+ hddLog( LOGE,
+ "%s:wait on cancel_rem_on_chan_var failed %d",
+ __func__, status);
+ }
+ return;
+ }
+ pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress = TRUE;
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
/* Wait till remain on channel ready indication before issuing cancel
* remain on channel request, otherwise if remain on channel not
* received and if the driver issues cancel remain on channel then lim
@@ -320,7 +342,8 @@ void wlan_hdd_cancel_existing_remain_on_channel(hdd_adapter_t *pAdapter)
__func__, status);
}
hdd_allow_suspend();
- }
+ } else
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
}
int wlan_hdd_check_remain_on_channel(hdd_adapter_t *pAdapter)
@@ -370,6 +393,13 @@ void wlan_hdd_remain_on_chan_timeout(void *data)
return;
}
+ if ( TRUE == pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress )
+ {
+ hddLog( LOGE, FL("Cancellation already in progress"));
+ return;
+ }
+
+ pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress = TRUE;
hddLog( LOG1,"%s: Cancel Remain on Channel on timeout", __func__);
if ( ( WLAN_HDD_INFRA_STATION == pAdapter->device_mode ) ||
@@ -475,6 +505,7 @@ static int wlan_hdd_request_remain_on_channel( struct wiphy *wiphy,
pRemainChanCtx->action_pkt_buff.freq = 0;
pRemainChanCtx->action_pkt_buff.frame_ptr = NULL;
pRemainChanCtx->action_pkt_buff.frame_length = 0;
+ pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress = FALSE;
/* Initialize Remain on chan timer */
vos_status = vos_timer_init(&pRemainChanCtx->hdd_remain_on_chan_timer,
@@ -636,11 +667,18 @@ void hdd_remainChanReadyHandler( hdd_adapter_t *pAdapter )
vos_timer_get_system_time() - READY_EVENT_PROPOGATE_TIME;
//start timer for actual duration
+ if(VOS_TIMER_STATE_RUNNING ==
+ vos_timer_getCurrentState(&pRemainChanCtx->hdd_remain_on_chan_timer))
+ {
+ hddLog( LOGE, "Timer Started before ready event!!!");
+ vos_timer_stop(&pRemainChanCtx->hdd_remain_on_chan_timer);
+ }
status = vos_timer_start(&pRemainChanCtx->hdd_remain_on_chan_timer,
(pRemainChanCtx->duration + COMPLETE_EVENT_PROPOGATE_TIME));
if (status != VOS_STATUS_SUCCESS)
{
- hddLog( LOGE, "Remain on Channel timer start failed");
+ hddLog( LOGE, "%s: Remain on Channel timer start failed",
+ __func__);
}
if( REMAIN_ON_CHANNEL_REQUEST == pRemainChanCtx->rem_on_chan_request)
@@ -715,6 +753,7 @@ int wlan_hdd_cfg80211_cancel_remain_on_channel( struct wiphy *wiphy,
#endif
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
hdd_cfg80211_state_t *cfgState = WLAN_HDD_GET_CFG_STATE_PTR( pAdapter );
+ hdd_remain_on_chan_ctx_t *pRemainChanCtx = cfgState->remain_on_chan_ctx;
hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX( pAdapter );
int status;
@@ -741,6 +780,30 @@ int wlan_hdd_cfg80211_cancel_remain_on_channel( struct wiphy *wiphy,
mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
return -EINVAL;
}
+
+ if (NULL != cfgState->remain_on_chan_ctx)
+ {
+ vos_timer_stop(&cfgState->remain_on_chan_ctx->hdd_remain_on_chan_timer);
+ if (TRUE == pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress)
+ {
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
+ hddLog( LOG1,
+ FL("ROC timer cancellation in progress,"
+ " wait for completion"));
+ status = wait_for_completion_interruptible_timeout(
+ &pAdapter->cancel_rem_on_chan_var,
+ msecs_to_jiffies(WAIT_CANCEL_REM_CHAN));
+ if (0 >= status)
+ {
+ hddLog( LOGE,
+ "%s:wait on cancel_rem_on_chan_var failed %d",
+ __func__, status);
+ }
+ return 0;
+ }
+ else
+ pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress = TRUE;
+ }
mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
/* wait until remain on channel ready event received
@@ -840,6 +903,7 @@ int wlan_hdd_mgmt_tx( struct wiphy *wiphy, struct net_device *dev,
#endif
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR( dev );
hdd_cfg80211_state_t *cfgState = WLAN_HDD_GET_CFG_STATE_PTR( pAdapter );
+ hdd_remain_on_chan_ctx_t *pRemainChanCtx = cfgState->remain_on_chan_ctx;
hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX( pAdapter );
tANI_U16 extendedWait = 0;
tANI_U8 type = WLAN_HDD_GET_TYPE_FRM_FC(buf[0]);
@@ -999,20 +1063,42 @@ int wlan_hdd_mgmt_tx( struct wiphy *wiphy, struct net_device *dev,
cfgState->remain_on_chan_ctx &&
cfgState->current_freq == chan->center_freq )
{
- if(wait)
+ if(VOS_TIMER_STATE_RUNNING == vos_timer_getCurrentState(
+ &cfgState->remain_on_chan_ctx->hdd_remain_on_chan_timer))
{
vos_timer_stop(&cfgState->remain_on_chan_ctx->hdd_remain_on_chan_timer);
status = vos_timer_start(&cfgState->remain_on_chan_ctx->hdd_remain_on_chan_timer,
wait);
if(status != VOS_STATUS_SUCCESS)
{
- hddLog( LOGE, "Remain on Channel timer start failed");
+ hddLog( LOGE, "%s: Remain on Channel timer start failed",
+ __func__);
}
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
+ goto send_frame;
+ } else {
+
+ if(pRemainChanCtx->hdd_remain_on_chan_cancel_in_progress == TRUE)
+ {
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
+ hddLog(VOS_TRACE_LEVEL_INFO,
+ "action frame tx: waiting for completion of ROC ");
+
+ status = wait_for_completion_interruptible_timeout(
+ &pAdapter->cancel_rem_on_chan_var,
+ msecs_to_jiffies(WAIT_CANCEL_REM_CHAN));
+ if (0 >= status)
+ {
+ hddLog( LOGE,
+ "%s:wait on cancel_rem_on_chan_var failed %d",
+ __func__, status);
+ }
+
+ } else
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
}
- mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
- goto send_frame;
- }
- mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
+ } else
+ mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
if((cfgState->remain_on_chan_ctx != NULL) &&
(cfgState->current_freq == chan->center_freq)
@@ -1879,12 +1965,21 @@ void hdd_indicateMgmtFrame( hdd_adapter_t *pAdapter,
if(completion_done(&pAdapter->rem_on_chan_ready_event))
{
- vos_timer_stop(&pRemainChanCtx->hdd_remain_on_chan_timer);
- status = vos_timer_start(&pRemainChanCtx->hdd_remain_on_chan_timer,
- extend_time);
- if (status != VOS_STATUS_SUCCESS)
+ if(VOS_TIMER_STATE_RUNNING ==
+ vos_timer_getCurrentState(&pRemainChanCtx->hdd_remain_on_chan_timer))
{
- hddLog( LOGE, "Remain on Channel timer start failed");
+ vos_timer_stop(&pRemainChanCtx->hdd_remain_on_chan_timer);
+ status = vos_timer_start(
+ &pRemainChanCtx->hdd_remain_on_chan_timer,
+ extend_time);
+ if (status != VOS_STATUS_SUCCESS)
+ {
+ hddLog( LOGE, "%s: Remain on Channel timer start failed",
+ __func__);
+ }
+ } else {
+ hddLog( LOG1, "%s: Rcvd action frame after timer expired",
+ __func__);
}
} else {
// Buffer Packet
diff --git a/CORE/HDD/src/wlan_hdd_tdls.c b/CORE/HDD/src/wlan_hdd_tdls.c
index 8e1a24e9a9a5..e1504b5f8cc0 100644
--- a/CORE/HDD/src/wlan_hdd_tdls.c
+++ b/CORE/HDD/src/wlan_hdd_tdls.c
@@ -659,6 +659,11 @@ int wlan_hdd_tdls_init(hdd_adapter_t *pAdapter)
eHalStatus halStatus = eHAL_STATUS_FAILURE;
#endif
+ if (NULL == pHddCtx)
+ return -1;
+
+ mutex_lock(&pHddCtx->tdls_lock);
+
/* QCA 2.0 Discrete ANDs feature capability in cfg_ini with that
* received from target, so cfg_ini gives combined intersected result
*/
@@ -680,6 +685,7 @@ int wlan_hdd_tdls_init(hdd_adapter_t *pAdapter)
"%s TDLS not enabled (%d) or FW doesn't support",
__func__, pHddCtx->cfg_ini->fEnableTDLSSupport);
#endif
+ mutex_unlock(&pHddCtx->tdls_lock);
return 0;
}
/* TDLS is supported only in STA / P2P Client modes,
@@ -694,6 +700,7 @@ int wlan_hdd_tdls_init(hdd_adapter_t *pAdapter)
*/
if (0 == WLAN_HDD_IS_TDLS_SUPPORTED_ADAPTER(pAdapter))
{
+ mutex_unlock(&pHddCtx->tdls_lock);
return 0;
}
/* Check for the valid pHddTdlsCtx. If valid do not further
@@ -709,6 +716,7 @@ int wlan_hdd_tdls_init(hdd_adapter_t *pAdapter)
if (NULL == pHddTdlsCtx) {
hddLog(VOS_TRACE_LEVEL_ERROR, "%s malloc failed!", __func__);
pAdapter->sessionCtx.station.pHddTdlsCtx = NULL;
+ mutex_unlock(&pHddCtx->tdls_lock);
return -1;
}
/* initialize TDLS pAdater context */
@@ -792,6 +800,11 @@ int wlan_hdd_tdls_init(hdd_adapter_t *pAdapter)
#endif
INIT_DELAYED_WORK(&pHddCtx->tdls_scan_ctxt.tdls_scan_work, wlan_hdd_tdls_schedule_scan);
+ /*
+ * Release tdls lock before calling in SME api
+ * which would try to acquire sme lock.
+ */
+ mutex_unlock(&pHddCtx->tdls_lock);
#ifdef QCA_WIFI_2_0
tInfo = vos_mem_malloc(sizeof(tdlsInfo_t));
if (NULL == tInfo)
@@ -1256,9 +1269,9 @@ int wlan_hdd_tdls_recv_discovery_resp(hdd_adapter_t *pAdapter, u8 *mac)
int wlan_hdd_tdls_set_peer_caps(hdd_adapter_t *pAdapter,
u8 *mac,
- tANI_U8 uapsdQueues,
- tANI_U8 maxSp,
- tANI_BOOLEAN isBufSta)
+ tCsrStaParams *StaParams,
+ tANI_BOOLEAN isBufSta,
+ tANI_BOOLEAN isOffChannelSupported)
{
hddTdlsPeer_t *curr_peer;
@@ -1270,9 +1283,24 @@ int wlan_hdd_tdls_set_peer_caps(hdd_adapter_t *pAdapter,
return -1;
}
- curr_peer->uapsdQueues = uapsdQueues;
- curr_peer->maxSp = maxSp;
+ curr_peer->uapsdQueues = StaParams->uapsd_queues;
+ curr_peer->maxSp = StaParams->max_sp;
curr_peer->isBufSta = isBufSta;
+ curr_peer->isOffChannelSupported = isOffChannelSupported;
+
+ vos_mem_copy(curr_peer->supported_channels,
+ StaParams->supported_channels,
+ StaParams->supported_channels_len);
+
+ curr_peer->supported_channels_len =
+ StaParams->supported_channels_len;
+
+ vos_mem_copy(curr_peer->supported_oper_classes,
+ StaParams->supported_oper_classes,
+ StaParams->supported_oper_classes_len);
+
+ curr_peer->supported_oper_classes_len =
+ StaParams->supported_oper_classes_len;
return 0;
}
@@ -1293,6 +1321,22 @@ int wlan_hdd_tdls_get_link_establish_params(hdd_adapter_t *pAdapter, u8 *mac,
tdlsLinkEstablishParams->uapsdQueues = curr_peer->uapsdQueues;
tdlsLinkEstablishParams->maxSp = curr_peer->maxSp;
tdlsLinkEstablishParams->isBufSta = curr_peer->isBufSta;
+ tdlsLinkEstablishParams->isOffChannelSupported =
+ curr_peer->isOffChannelSupported;
+
+ vos_mem_copy(tdlsLinkEstablishParams->supportedChannels,
+ curr_peer->supported_channels,
+ curr_peer->supported_channels_len);
+
+ tdlsLinkEstablishParams->supportedChannelsLen =
+ curr_peer->supported_channels_len;
+
+ vos_mem_copy(tdlsLinkEstablishParams->supportedOperClasses,
+ curr_peer->supported_oper_classes,
+ curr_peer->supported_oper_classes_len);
+
+ tdlsLinkEstablishParams->supportedOperClassesLen =
+ curr_peer->supported_oper_classes_len;
return 0;
}
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index 0fc0b04246f4..fa895cd0c4d4 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -86,7 +86,6 @@
#endif
#include "wlan_hdd_power.h"
#include "qwlan_version.h"
-#include <vos_power.h>
#include "wlan_hdd_host_offload.h"
#include "wlan_hdd_keep_alive.h"
#ifdef WLAN_FEATURE_PACKET_FILTERING
@@ -245,8 +244,6 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2},
/* Private ioctl for packet power save */
#define WE_PPS_5G_EBT 83
-#define WE_MTRACE_SELECTIVE_MODULE_LOG_ENABLE_CMD 84
-
/* Private ioctls and their sub-ioctls */
#define WLAN_PRIV_SET_NONE_GET_INT (SIOCIWFIRSTPRIV + 1)
#define WE_GET_11D_STATE 1
@@ -388,6 +385,7 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2},
#endif
#define WE_MTRACE_DUMP_CMD 8
+#define WE_MTRACE_SELECTIVE_MODULE_LOG_ENABLE_CMD 9
#ifdef FEATURE_WLAN_TDLS
#undef MAX_VAR_ARGS
@@ -620,7 +618,7 @@ void hdd_wlan_get_version(hdd_adapter_t *pAdapter, union iwreq_data *wrqu,
tSirVersionString wcnss_SW_version;
const char *pSWversion;
const char *pHWversion;
- v_U32_t CRMId = 0;
+ v_U32_t CBId = 0, CBSId = 0, CRMId = 0;
#ifndef QCA_WIFI_2_0
VOS_STATUS status;
tSirVersionString wcnss_HW_version;
@@ -642,6 +640,8 @@ void hdd_wlan_get_version(hdd_adapter_t *pAdapter, union iwreq_data *wrqu,
pHddContext->target_fw_version);
pSWversion = wcnss_SW_version;
+ CBId = (pHddContext->target_fw_version & 0xf8000000) >> 27;
+ CBSId = (pHddContext->target_fw_version & 0x07000000) >> 24;
CRMId = pHddContext->target_fw_version & 0x7fff;
for (i = 0; i < ARRAY_SIZE(qwlan_hw_list); i++) {
@@ -679,15 +679,17 @@ void hdd_wlan_get_version(hdd_adapter_t *pAdapter, union iwreq_data *wrqu,
if (wrqu) {
wrqu->data.length = scnprintf(extra, WE_MAX_STR_LEN,
- "Host SW:%s, FW:%s BuildId:%d, HW:%s",
+ "Host SW:%s, FW:%d.%d.%d, HW:%s",
QWLAN_VERSIONSTR,
- pSWversion,
+ CBId,
+ CBSId,
CRMId,
pHWversion);
} else {
- pr_info("Host SW:%s, FW:%s BuildId:%d, HW:%s\n",
+ pr_info("Host SW:%s, FW:%d.%d.%d, HW:%s\n",
QWLAN_VERSIONSTR,
- pSWversion,
+ CBId,
+ CBSId,
CRMId,
pHWversion);
}
@@ -4691,7 +4693,6 @@ static int iw_setint_getnone(struct net_device *dev, struct iw_request_info *inf
break;
#endif
case 14://reset wlan (power down/power up)
- vos_chipReset(NULL, VOS_FALSE, NULL, NULL, VOS_CHIP_RESET_UNKNOWN_EXCEPTION);
break;
default:
hddLog(LOGE, "Invalid arg %d in WE_SET_POWER IOCTL", set_value);
@@ -4860,15 +4861,6 @@ static int iw_setint_getnone(struct net_device *dev, struct iw_request_info *inf
break;
}
- case WE_MTRACE_SELECTIVE_MODULE_LOG_ENABLE_CMD:
- {
- hddLog(LOG1, "%s: SELECTIVE_MODULE_LOG %d arg1",
- __func__, set_value);
- vosTraceEnable(set_value);
-
- break;
- }
-
case WE_ENABLE_STRICT_FCC_REG:
{
hdd_context_t *hddCtxt = WLAN_HDD_GET_CTX(pAdapter);
@@ -7465,6 +7457,14 @@ int iw_set_var_ints_getnone(struct net_device *dev, struct iw_request_info *info
}
break;
+ case WE_MTRACE_SELECTIVE_MODULE_LOG_ENABLE_CMD:
+ {
+ hddLog(LOG1, "%s: SELECTIVE_MODULE_LOG %d arg1 %d arg2",
+ __func__, apps_args[0], apps_args[1]);
+ vosTraceEnable(apps_args[0], apps_args[1]);
+ }
+ break;
+
case WE_MTRACE_DUMP_CMD:
{
hddLog(LOG1, "%s: MTRACE_DUMP code %d session %d count %d "
@@ -9796,11 +9796,6 @@ static const struct iw_priv_args we_private_args[] = {
0,
"setStrictFCCreg" },
- { WE_MTRACE_SELECTIVE_MODULE_LOG_ENABLE_CMD,
- IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
- 0,
- "setdumplog" },
-
/* handlers for main ioctl */
{ WLAN_PRIV_SET_INT_GET_NONE,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
@@ -10717,6 +10712,11 @@ static const struct iw_priv_args we_private_args[] = {
"dump" },
/* handlers for sub-ioctl */
+ { WE_MTRACE_SELECTIVE_MODULE_LOG_ENABLE_CMD,
+ IW_PRIV_TYPE_INT | MAX_VAR_ARGS,
+ 0,
+ "setdumplog" },
+
{ WE_MTRACE_DUMP_CMD,
IW_PRIV_TYPE_INT | MAX_VAR_ARGS,
0,
diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h
index c8a09380bb23..384aab01c30b 100644
--- a/CORE/MAC/inc/aniGlobal.h
+++ b/CORE/MAC/inc/aniGlobal.h
@@ -668,6 +668,7 @@ typedef struct sAniSirLim
#ifdef FEATURE_WLAN_TDLS
tANI_U8 gLimTDLSBufStaEnabled;
tANI_U8 gLimTDLSUapsdMask;
+ tANI_U8 gLimTDLSOffChannelEnabled;
#endif
@@ -1000,6 +1001,7 @@ typedef struct sMacOpenParameters
* offload currently, rest bits are unused
*/
tANI_U8 olIniInfo;
+ v_BOOL_t ssdp;
/*
* DFS Phyerror Filtering offload status from ini
* 0 indicates offload disabled
diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h
index ca988a12c757..84812795a2b8 100644
--- a/CORE/MAC/inc/qwlan_version.h
+++ b/CORE/MAC/inc/qwlan_version.h
@@ -42,9 +42,9 @@ BRIEF DESCRIPTION:
#define QWLAN_VERSION_MINOR 0
#define QWLAN_VERSION_PATCH 0
#define QWLAN_VERSION_EXTRA ""
-#define QWLAN_VERSION_BUILD 96
+#define QWLAN_VERSION_BUILD 97
-#define QWLAN_VERSIONSTR "1.0.0.96A"
+#define QWLAN_VERSIONSTR "1.0.0.97"
#ifdef QCA_WIFI_2_0
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index f5d0807041e0..8bf81bf404d1 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -4202,9 +4202,14 @@ typedef struct
tANI_U8 uapsdQueues; // Peer's uapsd Queues Information
tANI_U8 maxSp; // Peer's Supported Maximum Service Period
tANI_U8 isBufSta; // Does Peer Support as Buffer Station.
+ tANI_U8 isOffChannelSupported; // Does Peer Support as TDLS Off Channel.
tANI_U8 isResponder; // Is Peer a responder.
tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
tSirMacAddr peerMac;
+ tANI_U8 supportedChannelsLen;
+ tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
+ tANI_U8 supportedOperClassesLen;
+ tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
}tSirTdlsLinkEstablishReq, *tpSirTdlsLinkEstablishReq;
/* TDLS Request struct SME-->PE */
diff --git a/CORE/MAC/inc/sirMacProtDef.h b/CORE/MAC/inc/sirMacProtDef.h
index 6ef52af97d93..8ebc47de24fb 100644
--- a/CORE/MAC/inc/sirMacProtDef.h
+++ b/CORE/MAC/inc/sirMacProtDef.h
@@ -450,6 +450,9 @@
#define SIR_MAX_NOA_DESCR 2
#define SIR_P2P_IE_HEADER_LEN 6
+#define SIR_MAC_CISCO_OUI "\x00\x40\x96"
+#define SIR_MAC_CISCO_OUI_SIZE 3
+
// min size of wme oui header: oui(3) + type + subtype + version
#define SIR_MAC_OUI_WME_HDR_MIN 6
@@ -1681,6 +1684,8 @@ typedef struct sSirMacRpiReportIE
#define SIR_MAC_MAX_SUPP_RATES 32
+#define SIR_MAC_MAX_SUPP_CHANNELS 100
+#define SIR_MAC_MAX_SUPP_OPER_CLASSES 32
#define SIR_MAC_MAX_EXTN_CAP 8
// VHT Capabilities Info
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index b87a9172b0a6..40901c14da45 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -356,6 +356,7 @@
#define WNI_CFG_CURRENT_RSSI 309
#define WNI_CFG_RTT3_ENABLE 310
#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL 311
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED 312
/*
* String parameter lengths
@@ -2603,10 +2604,18 @@
#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_APMAX 1
#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_APDEF 0
-#define CFG_PARAM_MAX_NUM 312
-#define CFG_AP_IBUF_MAX_SIZE 251
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMIN 0
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMAX 1
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STADEF 0
+
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_APMIN 0
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_APMAX 1
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_APDEF 0
+
+#define CFG_PARAM_MAX_NUM 313
+#define CFG_AP_IBUF_MAX_SIZE 252
#define CFG_AP_SBUF_MAX_SIZE 3422
-#define CFG_STA_IBUF_MAX_SIZE 246
+#define CFG_STA_IBUF_MAX_SIZE 247
#define CFG_STA_SBUF_MAX_SIZE 3388
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index 03d8f71951f9..39c4340ca60b 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -344,6 +344,7 @@
#define WNI_CFG_CURRENT_RSSI 309
#define WNI_CFG_RTT3_ENABLE 310
#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL 311
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED 312
/*
* String parameter lengths
@@ -1674,8 +1675,12 @@
#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STAMAX 1
#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STADEF 0
-#define CFG_PARAM_MAX_NUM 312
-#define CFG_STA_IBUF_MAX_SIZE 246
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMIN 0
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STAMAX 1
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED_STADEF 0
+
+#define CFG_PARAM_MAX_NUM 313
+#define CFG_STA_IBUF_MAX_SIZE 247
#define CFG_STA_SBUF_MAX_SIZE 3388
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/src/cfg/cfgParamName.c b/CORE/MAC/src/cfg/cfgParamName.c
index d12f4270f536..e36a07ea637a 100644
--- a/CORE/MAC/src/cfg/cfgParamName.c
+++ b/CORE/MAC/src/cfg/cfgParamName.c
@@ -341,4 +341,5 @@ unsigned char *gCfgParamName[] = {
(unsigned char *)"CURRENT_RSSI",
(unsigned char *)"RTT3_ENABLE",
(unsigned char *)"DEBUG_P2P_REMAIN_ON_CHANNEL",
+ (unsigned char *)"TDLS_OFF_CHANNEL_ENABLED",
};
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index e02cde54901c..69c48d45adec 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -4662,3 +4662,14 @@ NONE
V RW NP
NONE
0 1 0
+
+*
+* TDLS Off Channel Implementation
+*
+WNI_CFG_TDLS_OFF_CHANNEL_ENABLED I 4 7
+V RW NP
+LIM
+0 1 0
+V RW NP
+LIM
+0 1 0
diff --git a/CORE/MAC/src/include/dphGlobal.h b/CORE/MAC/src/include/dphGlobal.h
index 37fc1f3c8b8c..b6d4e4d8bd96 100644
--- a/CORE/MAC/src/include/dphGlobal.h
+++ b/CORE/MAC/src/include/dphGlobal.h
@@ -611,6 +611,7 @@ typedef struct sDphHashNode
#ifdef WLAN_FEATURE_11AC
tANI_U8 vhtSupportedChannelWidthSet;
+ tANI_U8 vhtSupportedRxNss;
tANI_U8 vhtBeamFormerCapable;
#endif
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index 0e60943ce69b..f9e7c418e5c0 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -664,6 +664,10 @@ typedef struct sSirMbMsgP2p
#define SIR_HAL_DISASSOC_TX_COMP (SIR_HAL_ITC_MSG_TYPES_BEGIN + 255)
#define SIR_HAL_DEAUTH_TX_COMP (SIR_HAL_ITC_MSG_TYPES_BEGIN + 256)
+#ifdef WLAN_FEATURE_11AC
+#define SIR_HAL_UPDATE_RX_NSS (SIR_HAL_ITC_MSG_TYPES_BEGIN + 257)
+#endif
+
#define SIR_HAL_MSG_TYPES_END (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF)
// CFG message types
diff --git a/CORE/MAC/src/pe/include/limSession.h b/CORE/MAC/src/pe/include/limSession.h
index 8ce8cf4915d9..affda82c8004 100644
--- a/CORE/MAC/src/pe/include/limSession.h
+++ b/CORE/MAC/src/pe/include/limSession.h
@@ -417,9 +417,12 @@ typedef struct sPESession // Added to Support BT-AMP
/* Flag to indicate Chan Sw announcement is required */
tANI_U8 dfsIncludeChanSwIe;
+
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
tANI_U8 cc_switch_mode;
#endif
+
+ tANI_BOOLEAN isCiscoVendorAP;
}tPESession, *tpPESession;
#define LIM_MAX_ACTIVE_SESSIONS 4
diff --git a/CORE/MAC/src/pe/include/rrmApi.h b/CORE/MAC/src/pe/include/rrmApi.h
index f16386070cfb..c17028480a52 100644
--- a/CORE/MAC/src/pe/include/rrmApi.h
+++ b/CORE/MAC/src/pe/include/rrmApi.h
@@ -45,7 +45,7 @@
#define RRM_BCN_RPT_NO_BSS_INFO 0
#define RRM_BCN_RPT_MIN_RPT 1
-tANI_U8 rrmGetMinOfMaxTxPower(tPowerdBm regMax, tPowerdBm apTxPower);
+tANI_U8 rrmGetMinOfMaxTxPower(tpAniSirGlobal pMac, tPowerdBm regMax, tPowerdBm apTxPower);
extern tSirRetStatus rrmInitialize(tpAniSirGlobal pMac);
diff --git a/CORE/MAC/src/pe/lim/limApi.c b/CORE/MAC/src/pe/lim/limApi.c
index 4aa692bdaeff..502b5f83e240 100644
--- a/CORE/MAC/src/pe/lim/limApi.c
+++ b/CORE/MAC/src/pe/lim/limApi.c
@@ -615,18 +615,27 @@ static tSirRetStatus __limInitConfig( tpAniSirGlobal pMac )
/* This was initially done after resume notification from HAL. Now, DAL is
started before PE so this can be done here */
handleHTCapabilityandHTInfo(pMac, NULL);
- if(wlan_cfgGetInt(pMac, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,(tANI_U32 *) &pMac->lim.disableLDPCWithTxbfAP) != eSIR_SUCCESS)
+ if (eSIR_SUCCESS != wlan_cfgGetInt(pMac, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
+ (tANI_U32 *) &pMac->lim.disableLDPCWithTxbfAP))
{
limLog(pMac, LOGP, FL("cfg get disableLDPCWithTxbfAP failed"));
return eSIR_FAILURE;
}
#ifdef FEATURE_WLAN_TDLS
- if(wlan_cfgGetInt(pMac, WNI_CFG_TDLS_BUF_STA_ENABLED,(tANI_U32 *) &pMac->lim.gLimTDLSBufStaEnabled) != eSIR_SUCCESS)
+ if (eSIR_SUCCESS != wlan_cfgGetInt(pMac, WNI_CFG_TDLS_BUF_STA_ENABLED,
+ (tANI_U32 *) &pMac->lim.gLimTDLSBufStaEnabled))
{
limLog(pMac, LOGP, FL("cfg get LimTDLSBufStaEnabled failed"));
return eSIR_FAILURE;
}
- if(wlan_cfgGetInt(pMac, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,(tANI_U32 *) &pMac->lim.gLimTDLSUapsdMask) != eSIR_SUCCESS)
+ if (eSIR_SUCCESS != wlan_cfgGetInt(pMac, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
+ (tANI_U32 *) &pMac->lim.gLimTDLSUapsdMask))
+ {
+ limLog(pMac, LOGP, FL("cfg get LimTDLSUapsdMask failed"));
+ return eSIR_FAILURE;
+ }
+ if (eSIR_SUCCESS != wlan_cfgGetInt(pMac, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
+ (tANI_U32 *) &pMac->lim.gLimTDLSOffChannelEnabled))
{
limLog(pMac, LOGP, FL("cfg get LimTDLSUapsdMask failed"));
return eSIR_FAILURE;
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index 8f7f7de51a77..b2f9bd1c3381 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -660,6 +660,7 @@ limCleanupRxPath(tpAniSirGlobal pMac, tpDphHashNode pStaDs,tpPESession psessionE
limLog( pMac, LOG1, FL("**Initiate cleanup"));
limAbortBackgroundScan( pMac );
+ psessionEntry->isCiscoVendorAP = FALSE;
if (pMac->lim.gLimAddtsSent)
{
@@ -2505,6 +2506,7 @@ limAddSta(
if(pAddStaParams->vhtCapable)
{
pAddStaParams->vhtTxChannelWidthSet = pStaDs->vhtSupportedChannelWidthSet;
+ pAddStaParams->vhtSupportedRxNss = pStaDs->vhtSupportedRxNss;
pAddStaParams->vhtTxBFCapable =
#ifdef FEATURE_WLAN_TDLS
(( STA_ENTRY_PEER == pStaDs->staType ) || (STA_ENTRY_TDLS_PEER == pStaDs->staType)) ?
@@ -3966,6 +3968,7 @@ tSirRetStatus limStaSendAddBss( tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
if (psessionEntry->vhtCapability && pBeaconStruct->VHTCaps.present)
{
pAddBssParams->staContext.vhtCapable = 1;
+ pAddBssParams->staContext.vhtSupportedRxNss = pStaDs->vhtSupportedRxNss;
if ((pAssocRsp->VHTCaps.suBeamFormerCap ||
pAssocRsp->VHTCaps.muBeamformerCap) &&
psessionEntry->txBFIniFeatureEnabled)
diff --git a/CORE/MAC/src/pe/lim/limProcessActionFrame.c b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
index 9437dd284b7e..00e1474ca498 100644
--- a/CORE/MAC/src/pe/lim/limProcessActionFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
@@ -474,8 +474,16 @@ __limProcessOperatingModeActionFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo
pSta->htSupportedChannelWidthSet = eHT_CHANNEL_WIDTH_20MHZ;
}
limCheckVHTOpModeChange( pMac, psessionEntry,
- (pOperatingModeframe->OperatingMode.chanWidth), pSta->staIndex);
+ (pOperatingModeframe->OperatingMode.chanWidth),
+ pSta->staIndex, pHdr->sa);
}
+
+ if (pSta->vhtSupportedRxNss != (pOperatingModeframe->OperatingMode.rxNSS + 1)) {
+ pSta->vhtSupportedRxNss = pOperatingModeframe->OperatingMode.rxNSS + 1;
+ limSetNssChange( pMac, psessionEntry, pSta->vhtSupportedRxNss,
+ pSta->staIndex, pHdr->sa);
+ }
+
vos_mem_free(pOperatingModeframe);
return;
}
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
index 086d974294ac..10a813263733 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocReqFrame.c
@@ -1197,6 +1197,18 @@ if (limPopulateMatchingRateSet(pMac,
goto error;
}
+#ifdef WLAN_FEATURE_11AC
+ if(pAssocReq->operMode.present)
+ {
+ pStaDs->vhtSupportedRxNss = pAssocReq->operMode.rxNSS + 1;
+ }
+ else
+ {
+ pStaDs->vhtSupportedRxNss = ((pStaDs->supportedRates.vhtRxMCSMap & MCSMAPMASK2x2)
+ == MCSMAPMASK2x2) ? 1 : 2;
+ }
+#endif
+
vos_mem_copy((tANI_U8 *) &pStaDs->mlmStaContext.propRateSet,
(tANI_U8 *) &(pAssocReq->propIEinfo.propRates),
pAssocReq->propIEinfo.propRates.numPropRates + 1);
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
index 495b3ec64a81..09b00e676ea5 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
@@ -163,6 +163,10 @@ void limUpdateAssocStaDatas(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpSirAsso
return;
}
+#ifdef WLAN_FEATURE_11AC
+ pStaDs->vhtSupportedRxNss = ((pStaDs->supportedRates.vhtRxMCSMap & MCSMAPMASK2x2)
+ == MCSMAPMASK2x2) ? 1 : 2;
+#endif
//If one of the rates is 11g rates, set the ERP mode.
if ((phyMode == WNI_CFG_PHY_MODE_11G) && sirIsArate(pStaDs->supportedRates.llaRates[0] & 0x7f))
pStaDs->erpEnabled = eHAL_SET;
diff --git a/CORE/MAC/src/pe/lim/limProcessMessageQueue.c b/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
index b2e261450caa..e7a8ded819cf 100644
--- a/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
+++ b/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
@@ -238,12 +238,13 @@ limDeferMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg)
if (retCode == TX_SUCCESS)
{
- limLog(pMac, LOG1,
- FL("Deferred message(0x%X) limSmeState %d (prev sme state %d) sysRole %d mlm state %d (prev mlm state %d)"),
- pMsg->type, pMac->lim.gLimSmeState, pMac->lim.gLimPrevSmeState,
- pMac->lim.gLimSystemRole, pMac->lim.gLimMlmState,
- pMac->lim.gLimPrevMlmState);
- MTRACE(macTraceMsgRx(pMac, NO_SESSION, LIM_TRACE_MAKE_RXMSG(pMsg->type, LIM_MSG_DEFERRED));)
+ limLog(pMac, LOG1,
+ FL("Deferred message(0x%X) limSmeState %d (prev sme state %d)"
+ " sysRole %d mlm state %d (prev mlm state %d)"),
+ pMsg->type, pMac->lim.gLimSmeState, pMac->lim.gLimPrevSmeState,
+ pMac->lim.gLimSystemRole, pMac->lim.gLimMlmState,
+ pMac->lim.gLimPrevMlmState);
+ MTRACE(macTraceMsgRx(pMac, NO_SESSION, LIM_TRACE_MAKE_RXMSG(pMsg->type, LIM_MSG_DEFERRED));)
}
else
{
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 05d0b160b3f6..01895a7f6a6f 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -180,6 +180,7 @@ __limFreshScanReqd(tpAniSirGlobal pMac, tANI_U8 returnFreshResults)
}
}
+
limLog(pMac, LOG1, FL("FreshScanReqd: %d "), validState);
if( (validState) && (returnFreshResults & SIR_BG_SCAN_RETURN_FRESH_RESULTS))
@@ -1163,7 +1164,9 @@ static eHalStatus limSendHalStartScanOffloadReq(tpAniSirGlobal pMac,
pMac->lim.fOffloadScanPending = 1;
if (pScanReq->p2pSearch)
pMac->lim.fOffloadScanP2PSearch = 1;
+
limLog(pMac, LOG1, FL("Processed Offload Scan Request Successfully"));
+
return eHAL_STATUS_SUCCESS;
}
@@ -1254,7 +1257,9 @@ __limProcessSmeScanReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
!pMac->lim.gScanInPowersave &&
!limIsSystemInActiveState(pMac)))
{
- limLog(pMac, LOGE, FL("SCAN is disabled or SCAN in power save is disabled and system is in power save."));
+ limLog(pMac, LOGE, FL("SCAN is disabled or SCAN in power save"
+ " is disabled and system is in power save."));
+
limSendSmeScanRsp(pMac, offsetof(tSirSmeScanRsp,bssDescription[0]), eSIR_SME_INVALID_PARAMETERS, pScanReq->sessionId, pScanReq->transactionId);
return;
}
@@ -1356,6 +1361,7 @@ __limProcessSmeScanReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
limLog(pMac, LOG1,
FL("Scan all channels as Number of channels is 0"));
+
// Scan all channels
len = sizeof(tLimMlmScanReq) +
(sizeof( pScanReq->channelList.channelNumber ) * (WNI_CFG_VALID_CHANNEL_LIST_LEN - 1)) +
@@ -1511,6 +1517,8 @@ __limProcessSmeScanReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
if (pMac->fScanOffload)
limFlushp2pScanResults(pMac);
+ limLog(pMac, LOG1, FL("Cached scan results are returned "));
+
if (pScanReq->returnFreshResults & SIR_BG_SCAN_PURGE_RESUTLS)
{
// Discard previously cached scan results
@@ -1626,6 +1634,8 @@ __limProcessSmeJoinReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
tANI_U8 smesessionId;
tANI_U16 smetransactionId;
tPowerdBm localPowerConstraint = 0, regMax = 0;
+ tANI_U16 ieLen;
+ v_U8_t *vendorIE;
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
//Not sending any session, since it is not created yet. The response whould have correct state.
@@ -1768,6 +1778,26 @@ __limProcessSmeJoinReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
psessionEntry->limWmeEnabled = pSmeJoinReq->isWMEenabled;
psessionEntry->limQosEnabled = pSmeJoinReq->isQosEnabled;
+ /* Store vendor specfic IE for CISCO AP */
+ ieLen = (pSmeJoinReq->bssDescription.length +
+ sizeof( pSmeJoinReq->bssDescription.length ) -
+ GET_FIELD_OFFSET( tSirBssDescription, ieFields ));
+
+ vendorIE = limGetVendorIEOuiPtr(pMac, SIR_MAC_CISCO_OUI,
+ SIR_MAC_CISCO_OUI_SIZE,
+ ((tANI_U8 *)&pSmeJoinReq->bssDescription.ieFields) , ieLen);
+
+ if ( NULL != vendorIE )
+ {
+ limLog(pMac, LOGE,
+ FL("DUT is trying to connect to Cisco AP"));
+ psessionEntry->isCiscoVendorAP = TRUE;
+ }
+ else
+ {
+ psessionEntry->isCiscoVendorAP = FALSE;
+ }
+
/* Copy the dot 11 mode in to the session table */
psessionEntry->dot11mode = pSmeJoinReq->dot11mode;
@@ -5583,8 +5613,9 @@ limProcessSmeReqMessages(tpAniSirGlobal pMac, tpSirMsgQ pMsg)
}
limLog(pMac, LOGE,
- FL("Error: Scan Disabled.Return with error status for SME Message %s(%d)"),
- limMsgStr(pMsg->type), pMsg->type);
+ FL("Error: Scan Disabled."
+ " Return with error status for SME Message %s(%d)"),
+ limMsgStr(pMsg->type), pMsg->type);
return bufConsumed;
}
diff --git a/CORE/MAC/src/pe/lim/limProcessTdls.c b/CORE/MAC/src/pe/lim/limProcessTdls.c
index c5352fdf8d60..8a2cfcffe730 100644
--- a/CORE/MAC/src/pe/lim/limProcessTdls.c
+++ b/CORE/MAC/src/pe/lim/limProcessTdls.c
@@ -126,6 +126,10 @@ void PopulateDot11fLinkIden(tpAniSirGlobal pMac, tpPESession psessionEntry,
void PopulateDot11fTdlsExtCapability(tpAniSirGlobal pMac,
tDot11fIEExtCap *extCapability) ;
+void PopulateDot11fTdlsOffchannelParams(tpAniSirGlobal pMac,
+ tpPESession psessionEntry,
+ tDot11fIESuppChannels *suppChannels,
+ tDot11fIESuppOperatingClasses *suppOperClasses);
void limLogVHTCap(tpAniSirGlobal pMac,
tDot11fIEVHTCaps *pDot11f);
tSirRetStatus limPopulateVhtMcsSet(tpAniSirGlobal pMac,
@@ -1045,6 +1049,10 @@ static tSirRetStatus limSendTdlsDisRspFrame(tpAniSirGlobal pMac,
PopulateDot11fTdlsHtVhtCap( pMac, selfDot11Mode, &tdlsDisRsp.HTCaps,
&tdlsDisRsp.VHTCaps, psessionEntry );
+ if ( 1 == pMac->lim.gLimTDLSOffChannelEnabled )
+ PopulateDot11fTdlsOffchannelParams( pMac, psessionEntry,
+ &tdlsDisRsp.SuppChannels,
+ &tdlsDisRsp.SuppOperatingClasses);
/*
* now we pack it. First, how much space are we going to need?
*/
@@ -1331,6 +1339,10 @@ tSirRetStatus limSendTdlsLinkSetupReqFrame(tpAniSirGlobal pMac,
PopulateDotfTdlsVhtAID( pMac, selfDot11Mode, peerMac,
&tdlsSetupReq.AID, psessionEntry );
+ if ( 1 == pMac->lim.gLimTDLSOffChannelEnabled )
+ PopulateDot11fTdlsOffchannelParams( pMac, psessionEntry,
+ &tdlsSetupReq.SuppChannels,
+ &tdlsSetupReq.SuppOperatingClasses);
/*
* now we pack it. First, how much space are we going to need?
*/
@@ -1756,6 +1768,10 @@ static tSirRetStatus limSendTdlsSetupRspFrame(tpAniSirGlobal pMac,
PopulateDotfTdlsVhtAID( pMac, selfDot11Mode, peerMac,
&tdlsSetupRsp.AID, psessionEntry );
+ if ( 1 == pMac->lim.gLimTDLSOffChannelEnabled )
+ PopulateDot11fTdlsOffchannelParams( pMac, psessionEntry,
+ &tdlsSetupRsp.SuppChannels,
+ &tdlsSetupRsp.SuppOperatingClasses);
tdlsSetupRsp.Status.status = setupStatus ;
/*
@@ -4934,6 +4950,34 @@ add_sta_error:
return status ;
}
+void PopulateDot11fTdlsOffchannelParams(tpAniSirGlobal pMac,
+ tpPESession psessionEntry,
+ tDot11fIESuppChannels *suppChannels,
+ tDot11fIESuppOperatingClasses *suppOperClasses)
+{
+ tANI_U32 numChans = WNI_CFG_VALID_CHANNEL_LIST_LEN;
+ tANI_U8 validChan[WNI_CFG_VALID_CHANNEL_LIST_LEN];
+ tANI_U8 i;
+ if (wlan_cfgGetStr(pMac, WNI_CFG_VALID_CHANNEL_LIST,
+ validChan, &numChans) != eSIR_SUCCESS)
+ {
+ /**
+ * Could not get Valid channel list from CFG.
+ * Log error.
+ */
+ limLog(pMac, LOGP,
+ FL("could not retrieve Valid channel list"));
+ }
+ suppChannels->num_bands = (tANI_U8) numChans;
+
+ for ( i = 0U; i < suppChannels->num_bands; i++)
+ {
+ suppChannels->bands[i][0] = validChan[i];
+ suppChannels->bands[i][1] = 1;
+ }
+ suppChannels->present = 1 ;
+ return ;
+}
/*
* FUNCTION: Populate Link Identifier element IE
*
@@ -4971,7 +5015,7 @@ void PopulateDot11fTdlsExtCapability(tpAniSirGlobal pMac,
{
extCapability->TDLSPeerPSMSupp = PEER_PSM_SUPPORT ;
extCapability->TDLSPeerUAPSDBufferSTA = pMac->lim.gLimTDLSBufStaEnabled;
- extCapability->TDLSChannelSwitching = CH_SWITCH_SUPPORT ;
+ extCapability->TDLSChannelSwitching = pMac->lim.gLimTDLSOffChannelEnabled ;
extCapability->TDLSSupport = TDLS_SUPPORT ;
extCapability->TDLSProhibited = TDLS_PROHIBITED ;
extCapability->TDLSChanSwitProhibited = TDLS_CH_SWITCH_PROHIBITED ;
@@ -5384,7 +5428,32 @@ lim_tdls_del_sta_error:
return eSIR_SUCCESS;
}
-
+/* Intersects the two input arrays and outputs an array */
+/* For now the array length of tANI_U8 suffices */
+static void limTdlsGetIntersection(tANI_U8 *input_array1,tANI_U8 input1_length,
+ tANI_U8 *input_array2,tANI_U8 input2_length,
+ tANI_U8 *output_array,tANI_U8 *output_length)
+{
+ tANI_U8 i,j,k=0,flag=0;
+ for(i=0;i<input1_length;i++)
+ {
+ flag=0;
+ for(j=0;j<input2_length;j++)
+ {
+ if(input_array1[i]==input_array2[j])
+ {
+ flag=1;
+ break;
+ }
+ }
+ if(flag==1)
+ {
+ output_array[k]=input_array1[i];
+ k++;
+ }
+ }
+ *output_length = k;
+}
/*
* Process Link Establishment Request from SME .
*/
@@ -5459,6 +5528,34 @@ tSirRetStatus limProcesSmeTdlsLinkEstablishReq(tpAniSirGlobal pMac,
pMsgTdlsLinkEstablishReq->uapsdQueues = pTdlsLinkEstablishReq->uapsdQueues;
pMsgTdlsLinkEstablishReq->maxSp = pTdlsLinkEstablishReq->maxSp;
pMsgTdlsLinkEstablishReq->isBufsta = pTdlsLinkEstablishReq->isBufSta;
+ pMsgTdlsLinkEstablishReq->isOffChannelSupported =
+ pTdlsLinkEstablishReq->isOffChannelSupported;
+ pMsgTdlsLinkEstablishReq->isOffChannelSupported = 1;
+
+ if ( 0 != pTdlsLinkEstablishReq->supportedChannelsLen)
+ {
+ tANI_U32 selfNumChans = WNI_CFG_VALID_CHANNEL_LIST_LEN;
+ tANI_U8 selfSupportedChannels[WNI_CFG_VALID_CHANNEL_LIST_LEN];
+ if (wlan_cfgGetStr(pMac, WNI_CFG_VALID_CHANNEL_LIST,
+ selfSupportedChannels, &selfNumChans) != eSIR_SUCCESS)
+ {
+ /**
+ * Could not get Valid channel list from CFG.
+ * Log error.
+ */
+ limLog(pMac, LOGP,
+ FL("could not retrieve Valid channel list"));
+ }
+ limTdlsGetIntersection(selfSupportedChannels, selfNumChans,
+ pTdlsLinkEstablishReq->supportedChannels,
+ pTdlsLinkEstablishReq->supportedChannelsLen,
+ pMsgTdlsLinkEstablishReq->validChannels,
+ &pMsgTdlsLinkEstablishReq->validChannelsLen);
+ }
+ vos_mem_copy(pMsgTdlsLinkEstablishReq->validOperClasses,
+ pTdlsLinkEstablishReq->supportedOperClasses, pTdlsLinkEstablishReq->supportedOperClassesLen);
+ pMsgTdlsLinkEstablishReq->validOperClassesLen =
+ pTdlsLinkEstablishReq->supportedOperClassesLen;
msg.type = WDA_SET_TDLS_LINK_ESTABLISH_REQ;
msg.reserved = 0;
msg.bodyptr = pMsgTdlsLinkEstablishReq;
diff --git a/CORE/MAC/src/pe/lim/limSendMessages.c b/CORE/MAC/src/pe/lim/limSendMessages.c
index 0164f6de6f81..466ff6983aa4 100644
--- a/CORE/MAC/src/pe/lim/limSendMessages.c
+++ b/CORE/MAC/src/pe/lim/limSendMessages.c
@@ -783,6 +783,47 @@ tSirRetStatus limSendModeUpdate(tpAniSirGlobal pMac,
return retCode;
}
+tSirRetStatus limSendRxNssUpdate(tpAniSirGlobal pMac,
+ tUpdateRxNss *pTempParam,
+ tpPESession psessionEntry )
+{
+ tUpdateRxNss *pRxNss = NULL;
+ tSirRetStatus retCode = eSIR_SUCCESS;
+ tSirMsgQ msgQ;
+
+ pRxNss = vos_mem_malloc(sizeof(tUpdateRxNss));
+ if ( NULL == pRxNss )
+ {
+ limLog( pMac, LOGP,
+ FL( "Unable to allocate memory during Update Rx Nss" ));
+ return eSIR_MEM_ALLOC_FAILED;
+ }
+ vos_mem_copy((tANI_U8 *)pRxNss, pTempParam, sizeof(tUpdateRxNss));
+ msgQ.type = WDA_UPDATE_RX_NSS;
+ msgQ.reserved = 0;
+ msgQ.bodyptr = pRxNss;
+ msgQ.bodyval = 0;
+ PELOG3(limLog( pMac, LOG3,
+ FL( "Sending WDA_UPDATE_RX_NSS" ));)
+ if(NULL == psessionEntry)
+ {
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, msgQ.type));
+ }
+ else
+ {
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, msgQ.type));
+ }
+ if( eSIR_SUCCESS != (retCode = wdaPostCtrlMsg( pMac, &msgQ )))
+ {
+ vos_mem_free(pRxNss);
+ limLog( pMac, LOGP,
+ FL("Posting WDA_UPDATE_RX_NSS to WDA failed, reason=%X"),
+ retCode );
+ }
+
+ return retCode;
+}
+
tSirRetStatus limSetMembership(tpAniSirGlobal pMac,
tUpdateMembership *pTempParam,
tpPESession psessionEntry )
diff --git a/CORE/MAC/src/pe/lim/limSendMessages.h b/CORE/MAC/src/pe/lim/limSendMessages.h
index 383ff76b461a..3d0136c289c7 100644
--- a/CORE/MAC/src/pe/lim/limSendMessages.h
+++ b/CORE/MAC/src/pe/lim/limSendMessages.h
@@ -52,6 +52,9 @@ tSirRetStatus limSendBeaconParams(tpAniSirGlobal pMac,
tSirRetStatus limSendModeUpdate(tpAniSirGlobal pMac,
tUpdateVHTOpMode *tempParam,
tpPESession psessionEntry );
+tSirRetStatus limSendRxNssUpdate(tpAniSirGlobal pMac,
+ tUpdateRxNss *tempParam,
+ tpPESession psessionEntry );
tANI_U32 limGetCenterChannel(tpAniSirGlobal pMac,
tANI_U8 primarychanNum,
diff --git a/CORE/MAC/src/pe/lim/limSmeReqUtils.c b/CORE/MAC/src/pe/lim/limSmeReqUtils.c
index fdb14544e274..81439b4e249b 100644
--- a/CORE/MAC/src/pe/lim/limSmeReqUtils.c
+++ b/CORE/MAC/src/pe/lim/limSmeReqUtils.c
@@ -857,7 +857,7 @@ limIsSmeScanReqValid(tpAniSirGlobal pMac, tpSirSmeScanReq pScanReq)
{
if (pScanReq->ssId[i].length > SIR_MAC_MAX_SSID_LENGTH)
{
- limLog(pMac, LOGE,
+ limLog(pMac, LOGE,
FL("Requested SSID length > SIR_MAC_MAX_SSID_LENGTH"));
valid = false;
goto end;
@@ -868,8 +868,11 @@ limIsSmeScanReqValid(tpAniSirGlobal pMac, tpSirSmeScanReq pScanReq)
limLog(pMac, LOGE, FL("Invalid BSS Type"));
valid = false;
}
+
if (limIsGroupAddr(pScanReq->bssId) && !limIsAddrBC(pScanReq->bssId))
{
+ limLog(pMac, LOGE, FL("Invalid BSS Type"));
+
valid = false;
limLog(pMac, LOGE, FL("BSSID is group addr and is not Broadcast Addr"));
}
@@ -878,24 +881,45 @@ limIsSmeScanReqValid(tpAniSirGlobal pMac, tpSirSmeScanReq pScanReq)
valid = false;
limLog(pMac, LOGE, FL("Invalid Scan Type"));
}
+
if (pScanReq->channelList.numChannels > SIR_MAX_NUM_CHANNELS)
{
valid = false;
limLog(pMac, LOGE, FL("Number of Channels > SIR_MAX_NUM_CHANNELS"));
}
+ if (limIsGroupAddr(pScanReq->bssId) && !limIsAddrBC(pScanReq->bssId))
+ {
+ valid = false;
+ limLog(pMac, LOGE, FL("BSSID is group addr and is not Broadcast Addr"));
+ }
+ if (!(pScanReq->scanType == eSIR_PASSIVE_SCAN || pScanReq->scanType == eSIR_ACTIVE_SCAN))
+ {
+ valid = false;
+ limLog(pMac, LOGE, FL("Invalid Scan Type"));
+ }
+ if (pScanReq->channelList.numChannels > SIR_MAX_NUM_CHANNELS)
+ {
+ valid = false;
+ limLog(pMac, LOGE, FL("Number of Channels > SIR_MAX_NUM_CHANNELS"));
+ }
+
+
+
/*
** check min/max channelTime range
**/
if (valid)
{
- if ((pScanReq->scanType == eSIR_ACTIVE_SCAN) &&
- (pScanReq->maxChannelTime < pScanReq->minChannelTime))
- {
- limLog(pMac, LOGE, FL("Max Channel Time < Min Channel Time"));
- valid = false;
+ if ((pScanReq->scanType == eSIR_ACTIVE_SCAN) &&
+ (pScanReq->maxChannelTime < pScanReq->minChannelTime))
+ {
+ limLog(pMac, LOGE, FL("Max Channel Time < Min Channel Time"));
+ valid = false;
+ goto end;
}
- }
+ }
+
end:
return valid;
} /*** end limIsSmeScanReqValid() ***/
diff --git a/CORE/MAC/src/pe/lim/limUtils.c b/CORE/MAC/src/pe/lim/limUtils.c
index 00b22614bbd2..51b5d102685b 100644
--- a/CORE/MAC/src/pe/lim/limUtils.c
+++ b/CORE/MAC/src/pe/lim/limUtils.c
@@ -70,6 +70,8 @@ static tAniBool glimTriggerBackgroundScanDuringQuietBss_Status = eSIR_TRUE;
//#define LIM_MAX_ACTIVE_SESSIONS 3 //defined temporarily for BT-AMP SUPPORT
#define SUCCESS 1 //defined temporarily for BT-AMP
+#define MAX_BA_WINDOW_SIZE_FOR_CISCO 25
+
/** -------------------------------------------------------------
\fn limAssignDialogueToken
\brief Assigns dialogue token.
@@ -5908,7 +5910,17 @@ tSirRetStatus limPostMlmAddBAReq( tpAniSirGlobal pMac,
// Requesting the ADDBA recipient to populate the size.
// If ADDBA is accepted, a non-zero buffer size should
// be returned in the ADDBA Rsp
- pMlmAddBAReq->baBufferSize = 0;
+ if ((TRUE == psessionEntry->isCiscoVendorAP) &&
+ (eHT_CHANNEL_WIDTH_80MHZ != pStaDs->htSupportedChannelWidthSet))
+ {
+ /* Cisco AP has issues in receiving more than 25 "mpdu in ampdu"
+ causing very low throughput in HT40 case */
+ limLog( pMac, LOGW,
+ FL( "Requesting ADDBA with Cisco 1225 AP, window size 25"));
+ pMlmAddBAReq->baBufferSize = MAX_BA_WINDOW_SIZE_FOR_CISCO;
+ }
+ else
+ pMlmAddBAReq->baBufferSize = 0;
limLog( pMac, LOGW,
FL( "Requesting an ADDBA to setup a %s BA session with STA %d for TID %d" ),
@@ -7802,22 +7814,38 @@ void limPmfSaQueryTimerHandler(void *pMacGlobal, tANI_U32 param)
#ifdef WLAN_FEATURE_11AC
-tANI_BOOLEAN limCheckVHTOpModeChange( tpAniSirGlobal pMac, tpPESession psessionEntry, tANI_U8 chanWidth, tANI_U8 staId)
+tANI_BOOLEAN limCheckVHTOpModeChange( tpAniSirGlobal pMac, tpPESession psessionEntry,
+ tANI_U8 chanWidth, tANI_U8 staId, tANI_U8 *peerMac)
{
tUpdateVHTOpMode tempParam;
tempParam.opMode = chanWidth;
tempParam.staId = staId;
tempParam.smesessionId = psessionEntry->smeSessionId;
- vos_mem_copy(tempParam.peer_mac, psessionEntry->bssId,
+ vos_mem_copy(tempParam.peer_mac, peerMac,
sizeof(tSirMacAddr));
-
limSendModeUpdate( pMac, &tempParam, psessionEntry );
return eANI_BOOLEAN_TRUE;
}
+tANI_BOOLEAN limSetNssChange( tpAniSirGlobal pMac, tpPESession psessionEntry, tANI_U8 rxNss,
+ tANI_U8 staId, tANI_U8 *peerMac)
+{
+ tUpdateRxNss tempParam;
+
+ tempParam.rxNss = rxNss;
+ tempParam.staId = staId;
+ tempParam.smesessionId = psessionEntry->smeSessionId;
+ vos_mem_copy(tempParam.peer_mac, peerMac,
+ sizeof(tSirMacAddr));
+
+ limSendRxNssUpdate( pMac, &tempParam, psessionEntry );
+
+ return eANI_BOOLEAN_TRUE;
+}
+
tANI_BOOLEAN limCheckMembershipUserPosition( tpAniSirGlobal pMac, tpPESession psessionEntry,
tANI_U32 membership, tANI_U32 userPosition,
tANI_U8 staId)
diff --git a/CORE/MAC/src/pe/lim/limUtils.h b/CORE/MAC/src/pe/lim/limUtils.h
index 99057f85cde6..5b2cb5011681 100644
--- a/CORE/MAC/src/pe/lim/limUtils.h
+++ b/CORE/MAC/src/pe/lim/limUtils.h
@@ -403,8 +403,10 @@ tANI_BOOLEAN limIsconnectedOnDFSChannel(tANI_U8 currentChannel);
tANI_U8 limGetCurrentOperatingChannel(tpAniSirGlobal pMac);
#ifdef WLAN_FEATURE_11AC
-tANI_BOOLEAN limCheckVHTOpModeChange( tpAniSirGlobal pMac,
- tpPESession psessionEntry, tANI_U8 chanWidth, tANI_U8 staId);
+tANI_BOOLEAN limCheckVHTOpModeChange( tpAniSirGlobal pMac, tpPESession psessionEntry,
+ tANI_U8 chanWidth, tANI_U8 staId, tANI_U8 *peerMac);
+tANI_BOOLEAN limSetNssChange( tpAniSirGlobal pMac, tpPESession psessionEntry,
+ tANI_U8 rxNss, tANI_U8 staId, tANI_U8 *peerMac);
tANI_BOOLEAN limCheckMembershipUserPosition( tpAniSirGlobal pMac, tpPESession psessionEntry,
tANI_U32 membership, tANI_U32 userPosition,
tANI_U8 staId);
diff --git a/CORE/MAC/src/pe/rrm/rrmApi.c b/CORE/MAC/src/pe/rrm/rrmApi.c
index b8cbb9e42242..4023bf6d1944 100644
--- a/CORE/MAC/src/pe/rrm/rrmApi.c
+++ b/CORE/MAC/src/pe/rrm/rrmApi.c
@@ -54,7 +54,8 @@
#include "rrmApi.h"
tANI_U8
-rrmGetMinOfMaxTxPower(tPowerdBm regMax, tPowerdBm apTxPower)
+rrmGetMinOfMaxTxPower(tpAniSirGlobal pMac,
+ tPowerdBm regMax, tPowerdBm apTxPower)
{
tANI_U8 maxTxPower = 0;
tANI_U8 txPower = VOS_MIN( regMax, (apTxPower) );
@@ -65,6 +66,9 @@ rrmGetMinOfMaxTxPower(tPowerdBm regMax, tPowerdBm apTxPower)
else
maxTxPower = RRM_MAX_TX_PWR_CAP;
+ limLog( pMac, LOG3,
+ "%s: regulatoryMax = %d, apTxPwr = %d, maxTxpwr = %d",
+ __func__, regMax, apTxPower, maxTxPower );
return maxTxPower;
}
@@ -86,11 +90,13 @@ rrmGetMinOfMaxTxPower(tPowerdBm regMax, tPowerdBm apTxPower)
void
rrmCacheMgmtTxPower ( tpAniSirGlobal pMac, tPowerdBm txPower, tpPESession pSessionEntry )
{
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "Cache Mgmt Tx Power = %d", txPower );)
-#endif
+ limLog( pMac, LOG3, "Cache Mgmt Tx Power = %d", txPower );
+
if( pSessionEntry == NULL )
+ {
+ limLog( pMac, LOG3, "%s: pSessionEntry is NULL", __func__);
pMac->rrm.rrmPEContext.txMgmtPower = txPower;
+ }
else
pSessionEntry->txMgmtPower = txPower;
}
@@ -113,13 +119,12 @@ rrmCacheMgmtTxPower ( tpAniSirGlobal pMac, tPowerdBm txPower, tpPESession pSessi
tPowerdBm
rrmGetMgmtTxPower ( tpAniSirGlobal pMac, tpPESession pSessionEntry )
{
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "RrmGetMgmtTxPower called" );)
-#endif
+ limLog( pMac, LOG3, "RrmGetMgmtTxPower called" );
+
if( pSessionEntry == NULL )
{
- limLog( pMac, LOG3, "%s: txpower from rrmPEContext: %d",
- __func__, pMac->rrm.rrmPEContext.txMgmtPower);
+ limLog( pMac, LOG3, "%s: txpower from rrmPEContext: %d",
+ __func__, pMac->rrm.rrmPEContext.txMgmtPower);
return pMac->rrm.rrmPEContext.txMgmtPower;
}
@@ -161,9 +166,7 @@ rrmSendSetMaxTxPowerReq ( tpAniSirGlobal pMac, tPowerdBm txPower, tpPESession pS
return eSIR_MEM_ALLOC_FAILED;
}
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pMaxTxParams...will be freed in other module") );)
-#endif
+ /* Allocated memory for pMaxTxParams...will be freed in other module */
pMaxTxParams->power = txPower;
vos_mem_copy(pMaxTxParams->bssId, pSessionEntry->bssId, sizeof(tSirMacAddr));
vos_mem_copy(pMaxTxParams->selfStaMacAddr, pSessionEntry->selfMacAddr, sizeof(tSirMacAddr));
@@ -174,7 +177,9 @@ rrmSendSetMaxTxPowerReq ( tpAniSirGlobal pMac, tPowerdBm txPower, tpPESession pS
msgQ.bodyptr = pMaxTxParams;
msgQ.bodyval = 0;
- PELOGW(limLog(pMac, LOGW, FL( "Sending WDA_SET_MAX_TX_POWER_REQ to HAL"));)
+ limLog(pMac, LOG3,
+ FL( "Sending WDA_SET_MAX_TX_POWER_REQ with power(%d) to HAL"),
+ txPower);
MTRACE(macTraceMsgTx(pMac, pSessionEntry->peSessionId, msgQ.type));
if( eSIR_SUCCESS != (retCode = wdaPostCtrlMsg( pMac, &msgQ )))
@@ -267,12 +272,12 @@ rrmProcessLinkMeasurementRequest( tpAniSirGlobal pMac,
tpSirMacMgmtHdr pHdr;
v_S7_t currentRSSI = 0;
-#if defined WLAN_VOWIFI_DEBUG
- PELOG1(limLog( pMac, LOG1, "Received Link measurement request");)
-#endif
+ limLog( pMac, LOG3, "Received Link measurement request");
+
if( pRxPacketInfo == NULL || pLinkReq == NULL || pSessionEntry == NULL )
{
- PELOGE(limLog( pMac, LOGE, FL("Invalid parameters - Ignoring the request"));)
+ PELOGE(limLog( pMac, LOGE,
+ "%s Invalid parameters - Ignoring the request", __func__);)
return eSIR_FAILURE;
}
pHdr = WDA_GET_RX_MAC_HEADER( pRxPacketInfo );
@@ -334,9 +339,8 @@ rrmProcessLinkMeasurementRequest( tpAniSirGlobal pMac,
LinkReport.txAntenna = 0;
currentRSSI = WDA_GET_RX_RSSI_DB(pRxPacketInfo);
-#if defined WLAN_VOWIFI_DEBUG
- PELOG1(limLog( pMac, LOG1, "Received Link report frame with %d", currentRSSI);)
-#endif
+ limLog( pMac, LOG1,
+ "Received Link report frame with %d", currentRSSI);
// 2008 11k spec reference: 18.4.8.5 RCPI Measurement
if ((currentRSSI) <= RCPI_LOW_RSSI_VALUE)
@@ -348,12 +352,9 @@ rrmProcessLinkMeasurementRequest( tpAniSirGlobal pMac,
LinkReport.rsni = WDA_GET_RX_SNR(pRxPacketInfo);
-#if defined WLAN_VOWIFI_DEBUG
- PELOG1(limLog( pMac, LOG1, "Sending Link report frame");)
-#endif
- return limSendLinkReportActionFrame( pMac, &LinkReport, pHdr->sa, pSessionEntry );
-
+ limLog( pMac, LOG3, "Sending Link report frame");
+ return limSendLinkReportActionFrame( pMac, &LinkReport, pHdr->sa, pSessionEntry );
}
// --------------------------------------------------------------------
@@ -389,14 +390,13 @@ rrmProcessNeighborReportResponse( tpAniSirGlobal pMac,
return status;
}
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL("Neighbor report response received ") );)
-#endif
+ limLog( pMac, LOG3, FL("Neighbor report response received ") );
// Dialog token
if( pMac->rrm.rrmPEContext.DialogToken != pNeighborRep->DialogToken.token )
{
- PELOGE(limLog( pMac, LOGE, "Dialog token mismatch in the received Neighbor report");)
+ PELOGE(limLog( pMac, LOGE,
+ "Dialog token mismatch in the received Neighbor report");)
return eSIR_FAILURE;
}
if( pNeighborRep->num_NeighborReport == 0 )
@@ -416,9 +416,8 @@ rrmProcessNeighborReportResponse( tpAniSirGlobal pMac,
}
vos_mem_set(pSmeNeighborRpt, length, 0);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pSmeNeighborRpt...will be freed by other module") );)
-#endif
+
+ /* Allocated memory for pSmeNeighborRpt...will be freed by other module */
for( i = 0 ; i < pNeighborRep->num_NeighborReport ; i++ )
{
@@ -492,10 +491,7 @@ rrmProcessNeighborReportReq( tpAniSirGlobal pMac,
return eSIR_FAILURE;
}
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL("Neighbor Request received ") );)
- PELOGE(limLog( pMac, LOGE, "SSID present = %d ", pNeighborReq->noSSID );)
-#endif
+ limLog( pMac, LOG1, FL("SSID present = %d "), pNeighborReq->noSSID );
vos_mem_set(&NeighborReportReq,sizeof( tSirMacNeighborReportReq ), 0);
@@ -504,9 +500,7 @@ rrmProcessNeighborReportReq( tpAniSirGlobal pMac,
if( NeighborReportReq.ssid_present )
{
vos_mem_copy(&NeighborReportReq.ssid, &pNeighborReq->ucSSID, sizeof(tSirMacSSid));
-#if defined WLAN_VOWIFI_DEBUG
PELOGE(sirDumpBuf( pMac, SIR_LIM_MODULE_ID, LOGE, (tANI_U8*) NeighborReportReq.ssid.ssId, NeighborReportReq.ssid.length );)
-#endif
}
status = limSendNeighborReportRequestFrame( pMac, &NeighborReportReq, pNeighborReq->bssId, pSessionEntry );
@@ -576,16 +570,15 @@ rrmProcessBeaconReportReq( tpAniSirGlobal pMac,
measDuration = pBeaconReq->measurement_request.Beacon.meas_duration;
-#if defined WLAN_VOWIFI_DEBUG
- limLog( pMac, LOGE, "maxDuration = %d sign = %d maxMeasduration = %d measDuration = %d",
- maxDuration, sign, maxMeasduration, measDuration );
-#endif
+ limLog( pMac, LOG3,
+ "maxDuration = %d sign = %d maxMeasduration = %d measDuration = %d",
+ maxDuration, sign, maxMeasduration, measDuration );
if( maxMeasduration < measDuration )
{
if( pBeaconReq->durationMandatory )
{
- limLog( pMac, LOGE, "Dropping the request: duration mandatory and maxduration > measduration");
+ PELOGE(limLog( pMac, LOGE, "Dropping the request: duration mandatory and maxduration > measduration");)
return eRRM_REFUSED;
}
else
@@ -607,9 +600,8 @@ rrmProcessBeaconReportReq( tpAniSirGlobal pMac,
FL( "Unable to allocate memory for request IEs buffer" ));
return eRRM_FAILURE;
}
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pElementIds") );)
-#endif
+ limLog( pMac, LOG3, FL(" Allocated memory for pElementIds") );
+
pCurrentReq->request.Beacon.reqIes.num = pBeaconReq->measurement_request.Beacon.RequestedInfo.num_requested_eids;
vos_mem_copy(pCurrentReq->request.Beacon.reqIes.pElementIds,
pBeaconReq->measurement_request.Beacon.RequestedInfo.requested_eids,
@@ -635,9 +627,7 @@ rrmProcessBeaconReportReq( tpAniSirGlobal pMac,
vos_mem_set(pSmeBcnReportReq,sizeof( tSirBeaconReportReqInd ),0);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pSmeBcnReportReq....will be freed by other module") );)
-#endif
+ /* Allocated memory for pSmeBcnReportReq....will be freed by other modulea*/
vos_mem_copy(pSmeBcnReportReq->bssId, pSessionEntry->bssId, sizeof(tSirMacAddr));
pSmeBcnReportReq->messageType = eWNI_SME_BEACON_REPORT_REQ_IND;
pSmeBcnReportReq->length = sizeof( tSirBeaconReportReqInd );
@@ -736,9 +726,8 @@ rrmFillBeaconIes( tpAniSirGlobal pMac,
while ( BcnNumIes > 0 )
{
len = *(pBcnIes + 1) + 2; //element id + length.
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "EID = %d, len = %d total = %d", *pBcnIes, *(pBcnIes+1), len );)
-#endif
+ limLog( pMac, LOG3, "EID = %d, len = %d total = %d",
+ *pBcnIes, *(pBcnIes+1), len );
i = 0;
do
@@ -746,9 +735,8 @@ rrmFillBeaconIes( tpAniSirGlobal pMac,
if( ( (eids == NULL) || ( *pBcnIes == eids[i] ) ) &&
( (*pNumIes) + len) < pIesMaxSize )
{
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "Adding Eid %d, len=%d", *pBcnIes, len );)
-#endif
+ limLog( pMac, LOG3, "Adding Eid %d, len=%d", *pBcnIes, len );
+
vos_mem_copy(pIes, pBcnIes, len);
pIes += len;
*pNumIes += len;
@@ -761,9 +749,7 @@ rrmFillBeaconIes( tpAniSirGlobal pMac,
pBcnIes += len;
BcnNumIes -= len;
}
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "Total length of Ies added = %d", *pNumIes );)
-#endif
+ limLog( pMac, LOG1, "Total length of Ies added = %d", *pNumIes );
}
// --------------------------------------------------------------------
@@ -792,10 +778,7 @@ rrmProcessBeaconReportXmit( tpAniSirGlobal pMac,
tANI_U8 sessionId;
v_U8_t flagBSSPresent = FALSE, bssDescCnt = 0;
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "Received beacon report xmit indication");)
-#endif
-
+ limLog( pMac, LOG1, "Received beacon report xmit indication");
if (NULL == pBcnReport)
{
@@ -821,7 +804,7 @@ rrmProcessBeaconReportXmit( tpAniSirGlobal pMac,
pBcnReport->bssId,
&sessionId)))
{
- PELOGE(limLog(pMac, LOGE,FL("session does not exist for given bssId"));)
+ PELOGE(limLog(pMac, LOGE, FL("session does not exist for given bssId"));)
return eSIR_FAILURE;
}
@@ -830,7 +813,7 @@ rrmProcessBeaconReportXmit( tpAniSirGlobal pMac,
if (NULL == pReport)
{
- PELOGE(limLog(pMac, LOGE,FL("RRM Report is NULL, allocation failed"));)
+ PELOGE(limLog(pMac, LOGE, FL("RRM Report is NULL, allocation failed"));)
return eSIR_FAILURE;
}
@@ -839,99 +822,91 @@ rrmProcessBeaconReportXmit( tpAniSirGlobal pMac,
for (bssDescCnt = 0; bssDescCnt < pBcnReport->numBssDesc; bssDescCnt++)
{
- //Prepare the beacon report and send it to the peer.
- pReport[bssDescCnt].token = pBcnReport->uDialogToken;
- pReport[bssDescCnt].refused = 0;
- pReport[bssDescCnt].incapable = 0;
- pReport[bssDescCnt].type = SIR_MAC_RRM_BEACON_TYPE;
-
- //If the scan result is NULL then send report request with
- //option subelement as NULL..
- if ( NULL != pBcnReport->pBssDescription[bssDescCnt] )
- {
- flagBSSPresent = TRUE;
- }
-
- //Valid response is included if the size of beacon xmit
- //is == size of beacon xmit ind + ies
- if ( pBcnReport->length >= sizeof( tSirBeaconReportXmitInd ) )
- {
- pReport[bssDescCnt].report.beaconReport.regClass = pBcnReport->regClass;
- if ( flagBSSPresent )
- {
- pReport[bssDescCnt].report.beaconReport.channel =
- pBcnReport->pBssDescription[bssDescCnt]->channelId;
- vos_mem_copy( pReport[bssDescCnt].report.beaconReport.measStartTime,
- pBcnReport->pBssDescription[bssDescCnt]->startTSF,
- sizeof( pBcnReport->pBssDescription[bssDescCnt]->startTSF) );
- pReport[bssDescCnt].report.beaconReport.measDuration =
- SYS_MS_TO_TU(pBcnReport->duration);
- pReport[bssDescCnt].report.beaconReport.phyType =
- pBcnReport->pBssDescription[bssDescCnt]->nwType;
- pReport[bssDescCnt].report.beaconReport.bcnProbeRsp = 1;
- pReport[bssDescCnt].report.beaconReport.rsni =
- pBcnReport->pBssDescription[bssDescCnt]->sinr;
- pReport[bssDescCnt].report.beaconReport.rcpi =
- pBcnReport->pBssDescription[bssDescCnt]->rssi;
-
- pReport[bssDescCnt].report.beaconReport.antennaId = 0;
- pReport[bssDescCnt].report.beaconReport.parentTSF =
- pBcnReport->pBssDescription[bssDescCnt]->parentTSF;
- vos_mem_copy( pReport[bssDescCnt].report.beaconReport.bssid,
- pBcnReport->pBssDescription[bssDescCnt]->bssId,
- sizeof(tSirMacAddr));
- }
-
- switch ( pCurrentReq->request.Beacon.reportingDetail )
- {
- case BEACON_REPORTING_DETAIL_NO_FF_IE:
- //0 No need to include any elements.
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog(pMac, LOGE, "No reporting detail requested");)
-#endif
- break;
- case BEACON_REPORTING_DETAIL_ALL_FF_REQ_IE:
- //1: Include all FFs and Requested Ies.
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog(pMac, LOGE,
- "Only requested IEs in reporting detail requested");)
-#endif
+ //Prepare the beacon report and send it to the peer.
+ pReport[bssDescCnt].token = pBcnReport->uDialogToken;
+ pReport[bssDescCnt].refused = 0;
+ pReport[bssDescCnt].incapable = 0;
+ pReport[bssDescCnt].type = SIR_MAC_RRM_BEACON_TYPE;
+
+ //If the scan result is NULL then send report request with
+ //option subelement as NULL..
+ if ( NULL != pBcnReport->pBssDescription[bssDescCnt] )
+ {
+ flagBSSPresent = TRUE;
+ }
- if ( flagBSSPresent )
- {
- rrmFillBeaconIes( pMac,
- (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.Ies[0],
- (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.numIes,
- BEACON_REPORT_MAX_IES,
- pCurrentReq->request.Beacon.reqIes.pElementIds,
- pCurrentReq->request.Beacon.reqIes.num,
- pBcnReport->pBssDescription[bssDescCnt] );
- }
+ //Valid response is included if the size of beacon xmit
+ //is == size of beacon xmit ind + ies
+ if ( pBcnReport->length >= sizeof( tSirBeaconReportXmitInd ) )
+ {
+ pReport[bssDescCnt].report.beaconReport.regClass = pBcnReport->regClass;
+ if ( flagBSSPresent )
+ {
+ pReport[bssDescCnt].report.beaconReport.channel =
+ pBcnReport->pBssDescription[bssDescCnt]->channelId;
+ vos_mem_copy( pReport[bssDescCnt].report.beaconReport.measStartTime,
+ pBcnReport->pBssDescription[bssDescCnt]->startTSF,
+ sizeof( pBcnReport->pBssDescription[bssDescCnt]->startTSF) );
+ pReport[bssDescCnt].report.beaconReport.measDuration =
+ SYS_MS_TO_TU(pBcnReport->duration);
+ pReport[bssDescCnt].report.beaconReport.phyType =
+ pBcnReport->pBssDescription[bssDescCnt]->nwType;
+ pReport[bssDescCnt].report.beaconReport.bcnProbeRsp = 1;
+ pReport[bssDescCnt].report.beaconReport.rsni =
+ pBcnReport->pBssDescription[bssDescCnt]->sinr;
+ pReport[bssDescCnt].report.beaconReport.rcpi =
+ pBcnReport->pBssDescription[bssDescCnt]->rssi;
+
+ pReport[bssDescCnt].report.beaconReport.antennaId = 0;
+ pReport[bssDescCnt].report.beaconReport.parentTSF =
+ pBcnReport->pBssDescription[bssDescCnt]->parentTSF;
+ vos_mem_copy( pReport[bssDescCnt].report.beaconReport.bssid,
+ pBcnReport->pBssDescription[bssDescCnt]->bssId,
+ sizeof(tSirMacAddr));
+ }
- break;
- case BEACON_REPORTING_DETAIL_ALL_FF_IE:
- //2 / default - Include all FFs and all Ies.
- default:
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog(pMac, LOGE, "Default all IEs and FFs");)
-#endif
- if ( flagBSSPresent )
- {
- rrmFillBeaconIes( pMac,
- (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.Ies[0],
- (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.numIes,
- BEACON_REPORT_MAX_IES,
- NULL, 0,
- pBcnReport->pBssDescription[bssDescCnt] );
- }
- break;
- }
- }
+ switch ( pCurrentReq->request.Beacon.reportingDetail )
+ {
+ case BEACON_REPORTING_DETAIL_NO_FF_IE:
+ //0 No need to include any elements.
+ limLog(pMac, LOG3, "No reporting detail requested");
+ break;
+ case BEACON_REPORTING_DETAIL_ALL_FF_REQ_IE:
+ //1: Include all FFs and Requested Ies.
+ limLog(pMac, LOG3,
+ "Only requested IEs in reporting detail requested");
+
+ if ( flagBSSPresent )
+ {
+ rrmFillBeaconIes( pMac,
+ (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.Ies[0],
+ (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.numIes,
+ BEACON_REPORT_MAX_IES,
+ pCurrentReq->request.Beacon.reqIes.pElementIds,
+ pCurrentReq->request.Beacon.reqIes.num,
+ pBcnReport->pBssDescription[bssDescCnt] );
+ }
+
+ break;
+ case BEACON_REPORTING_DETAIL_ALL_FF_IE:
+ //2 / default - Include all FFs and all Ies.
+ default:
+ limLog(pMac, LOG3, "Default all IEs and FFs");
+ if ( flagBSSPresent )
+ {
+ rrmFillBeaconIes( pMac,
+ (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.Ies[0],
+ (tANI_U8*) &pReport[bssDescCnt].report.beaconReport.numIes,
+ BEACON_REPORT_MAX_IES,
+ NULL, 0,
+ pBcnReport->pBssDescription[bssDescCnt] );
+ }
+ break;
+ }
+ }
}
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "Sending Action frame ");)
-#endif
+ limLog( pMac, LOG1, "Sending Action frame with %d bss info", bssDescCnt);
limSendRadioMeasureReportActionFrame( pMac,
pCurrentReq->dialog_token,
bssDescCnt,
@@ -944,11 +919,12 @@ rrmProcessBeaconReportXmit( tpAniSirGlobal pMac,
if( pBcnReport->fMeasureDone )
{
- PELOGE(limLog( pMac, LOGE, "Measurement done....cleanup the context");)
+ limLog( pMac, LOG3, "Measurement done....cleanup the context");
+
rrmCleanup(pMac);
}
- if( NULL != pReport)
+ if( NULL != pReport )
vos_mem_free(pReport);
return status;
@@ -980,7 +956,9 @@ void rrmProcessBeaconRequestFailure(tpAniSirGlobal pMac, tpPESession pSessionEnt
pReport->incapable = 1;
break;
default:
- PELOGE(limLog( pMac, LOGE, FL(" Beacon request processing failed no report sent with status %d "), status););
+ PELOGE(limLog( pMac, LOGE,
+ FL(" Beacon request processing failed no report sent with status %d "),
+ status););
vos_mem_free(pReport);
return;
}
@@ -989,9 +967,7 @@ void rrmProcessBeaconRequestFailure(tpAniSirGlobal pMac, tpPESession pSessionEnt
pReport, peer, pSessionEntry );
vos_mem_free(pReport);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Free memory for pReport") );)
-#endif
+ limLog( pMac, LOG3, FL(" Free memory for pReport") );
return;
}
@@ -1039,21 +1015,23 @@ rrmProcessRadioMeasurementRequest( tpAniSirGlobal pMac,
return eSIR_MEM_ALLOC_FAILED;
}
vos_mem_set(pReport, sizeof(tSirMacRadioMeasureReport),0);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pReport") );)
-#endif
+ PELOGE(limLog( pMac, LOGE,
+ FL("No requestIes in the measurement request, sending incapable report"));)
pReport->incapable = 1;
num_report = 1;
limSendRadioMeasureReportActionFrame( pMac, pRRMReq->DialogToken.token, num_report,
pReport, peer, pSessionEntry );
vos_mem_free(pReport);
- PELOGE(limLog( pMac, LOGE, "No requestIes in the measurement request" );)
return eSIR_FAILURE;
}
// PF Fix
if( pRRMReq->NumOfRepetitions.repetitions > 0 )
{
+ limLog( pMac, LOG1,
+ FL(" number of repetitions %d"),
+ pRRMReq->NumOfRepetitions.repetitions );
+
//Send a report with incapable bit set. Not supporting repetitions.
pReport = vos_mem_malloc(sizeof( tSirMacRadioMeasureReport ));
if ( NULL == pReport )
@@ -1063,9 +1041,7 @@ rrmProcessRadioMeasurementRequest( tpAniSirGlobal pMac,
return eSIR_MEM_ALLOC_FAILED;
}
vos_mem_set(pReport, sizeof(tSirMacRadioMeasureReport), 0);
-#if defined WLAN_VOWIFI_DEBUG
PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pReport") );)
-#endif
pReport->incapable = 1;
pReport->type = pRRMReq->MeasurementRequest[0].measurement_type;
num_report = 1;
@@ -1095,9 +1071,9 @@ rrmProcessRadioMeasurementRequest( tpAniSirGlobal pMac,
sizeof( tSirMacRadioMeasureReport )
* (pRRMReq->num_MeasurementRequest - i),
0);
-#if defined WLAN_VOWIFI_DEBUG
- limLog( pMac, LOGE, FL(" Allocated memory for pReport") );
-#endif
+ limLog( pMac, LOG3,
+ FL(" rrm beacon type refused of %d report in beacon table"),
+ num_report );
}
pReport[num_report].refused = 1;
@@ -1116,9 +1092,7 @@ rrmProcessRadioMeasurementRequest( tpAniSirGlobal pMac,
vos_mem_free(pReport);
return eSIR_MEM_ALLOC_FAILED;
}
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pCurrentReq") );)
-#endif
+ limLog( pMac, LOG3, FL(" Processing Beacon Report request") );
vos_mem_set(pCurrentReq, sizeof( *pCurrentReq ), 0);
pCurrentReq->dialog_token = pRRMReq->DialogToken.token;
pCurrentReq->token = pRRMReq->MeasurementRequest[i].measurement_token;
@@ -1148,10 +1122,9 @@ rrmProcessRadioMeasurementRequest( tpAniSirGlobal pMac,
sizeof( tSirMacRadioMeasureReport )
* (pRRMReq->num_MeasurementRequest - i),
0);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Allocated memory for pReport") );)
-#endif
-
+ limLog( pMac, LOG3,
+ FL(" rrm beacon type incapble of %d report "),
+ num_report );
}
pReport[num_report].incapable = 1;
pReport[num_report].type = pRRMReq->MeasurementRequest[i].measurement_type;
@@ -1168,9 +1141,7 @@ end:
pReport, peer, pSessionEntry );
vos_mem_free(pReport);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Free memory for pReport") );)
-#endif
+ limLog( pMac, LOG3, FL(" Free memory for pReport") );
}
return status;
@@ -1291,10 +1262,10 @@ void rrmUpdateConfig ( tpAniSirGlobal pMac,
}
pRRMCaps->nonOperatingChanMax =(tANI_U8) val;
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, "RRM enabled = %d OperatingChanMax = %d NonOperatingMax = %d", pMac->rrm.rrmPEContext.rrmEnable,
- pRRMCaps->operatingChanMax, pRRMCaps->nonOperatingChanMax );)
-#endif
+ limLog( pMac, LOG1,
+ "RRM enabled = %d OperatingChanMax = %d NonOperatingMax = %d",
+ pMac->rrm.rrmPEContext.rrmEnable,
+ pRRMCaps->operatingChanMax, pRRMCaps->nonOperatingChanMax );
}
// --------------------------------------------------------------------
/**
@@ -1365,15 +1336,11 @@ rrmCleanup(tpAniSirGlobal pMac)
if( pMac->rrm.rrmPEContext.pCurrentReq->request.Beacon.reqIes.pElementIds )
{
vos_mem_free(pMac->rrm.rrmPEContext.pCurrentReq->request.Beacon.reqIes.pElementIds);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Free memory for pElementIds") );)
-#endif
+ limLog( pMac, LOG4, FL(" Free memory for pElementIds") );
}
vos_mem_free(pMac->rrm.rrmPEContext.pCurrentReq);
-#if defined WLAN_VOWIFI_DEBUG
- PELOGE(limLog( pMac, LOGE, FL(" Free memory for pCurrentReq") );)
-#endif
+ limLog( pMac, LOG4, FL(" Free memory for pCurrentReq") );
}
pMac->rrm.rrmPEContext.pCurrentReq = NULL;
diff --git a/CORE/MAC/src/pe/sch/schBeaconProcess.c b/CORE/MAC/src/pe/sch/schBeaconProcess.c
index 965e085bbb1d..be6e136205c7 100644
--- a/CORE/MAC/src/pe/sch/schBeaconProcess.c
+++ b/CORE/MAC/src/pe/sch/schBeaconProcess.c
@@ -530,7 +530,7 @@ static void __schBeaconProcessForSession( tpAniSirGlobal pMac,
}
limCheckVHTOpModeChange(pMac, psessionEntry,
pBeacon->OperatingMode.chanWidth,
- pStaDs->staIndex);
+ pStaDs->staIndex, pMh->sa);
}
}
else if (psessionEntry->vhtCapability && pBeacon->VHTOperation.present)
@@ -583,7 +583,7 @@ static void __schBeaconProcessForSession( tpAniSirGlobal pMac,
}
}
limCheckVHTOpModeChange(pMac, psessionEntry,
- chWidth, pStaDs->staIndex);
+ chWidth, pStaDs->staIndex, pMh->sa);
}
}
}
diff --git a/CORE/SERVICES/BMI/ol_fw.c b/CORE/SERVICES/BMI/ol_fw.c
index 3967385f13f8..918e9dc4a871 100644
--- a/CORE/SERVICES/BMI/ol_fw.c
+++ b/CORE/SERVICES/BMI/ol_fw.c
@@ -1745,16 +1745,16 @@ int ol_target_coredump(void *inst, void *memoryBlock, u_int32_t blockLength)
* START = 0x00980000
* LENGTH = 0x00038000
*
- * SECTION = REG
- * START = 0x00000800
- * LENGTH = 0x0007F820
- *
* SECTION = AXI
* START = 0x000a0000
* LENGTH = 0x00018000
+ *
+ * SECTION = REG
+ * START = 0x00000800
+ * LENGTH = 0x0007F820
*/
- while ((sectionCount < 3) && (amountRead < blockLength)) {
+ while ((sectionCount < 4) && (amountRead < blockLength)) {
switch (sectionCount) {
case 0:
/* DRAM SECTION */
@@ -1767,15 +1767,17 @@ int ol_target_coredump(void *inst, void *memoryBlock, u_int32_t blockLength)
readLen = IRAM_SIZE;
break;
case 2:
- /* REG SECTION */
- pos = REGISTER_LOCATION;
- /* ol_diag_read_reg_loc checks for buffer overrun */
- readLen = 0;
- break;
- case 3:
/* AXI SECTION */
pos = AXI_LOCATION;
readLen = AXI_SIZE;
+ printk("%s: Dumping AXI section...\n", __func__);
+ break;
+ case 3:
+ /* REG SECTION */
+ pos = REGISTER_LOCATION;
+ /* ol_diag_read_reg_loc checks for buffer overrun */
+ readLen = 0;
+ printk("%s: Dumping Register section...\n", __func__);
break;
}
diff --git a/CORE/SERVICES/HIF/PCIe/hif_pci.c b/CORE/SERVICES/HIF/PCIe/hif_pci.c
index afb77b70478f..4286c11202cf 100644
--- a/CORE/SERVICES/HIF/PCIe/hif_pci.c
+++ b/CORE/SERVICES/HIF/PCIe/hif_pci.c
@@ -2323,7 +2323,9 @@ HIFGetTargetId(HIF_DEVICE *hif_device)
/* worker thread to recover when target does not respond over PCIe */
static void recovery_work_handler(struct work_struct *recovery)
{
+#ifdef CONFIG_CNSS
cnss_device_self_recovery();
+#endif
}
static DECLARE_WORK(recovery_work, recovery_work_handler);
@@ -2366,8 +2368,10 @@ HIFTargetSleepStateAdjust(A_target_id_t targid,
struct hif_pci_softc *sc = hif_state->sc;
+#ifdef TARGET_RECOVERY_AFTER_LINK_DOWN
if (sc->recovery)
return -EACCES;
+#endif
if (sleep_ok) {
adf_os_spin_lock_irqsave(&hif_state->keep_awake_lock);
@@ -2446,10 +2450,14 @@ HIFTargetSleepStateAdjust(A_target_id_t targid,
A_PCI_READ32(pci_addr + PCIE_LOCAL_BASE_ADDRESS
+ RTC_STATE_ADDRESS));
+#ifdef TARGET_RECOVERY_AFTER_LINK_DOWN
printk("%s:error, can't wakeup target\n", __func__);
sc->recovery = true;
schedule_work(&recovery_work);
return -EACCES;
+#else
+ VOS_BUG(0);
+#endif
}
OS_DELAY(curr_delay);
diff --git a/CORE/SERVICES/HIF/PCIe/if_pci.c b/CORE/SERVICES/HIF/PCIe/if_pci.c
index a8c810bbfa11..f4d15be08b1c 100644
--- a/CORE/SERVICES/HIF/PCIe/if_pci.c
+++ b/CORE/SERVICES/HIF/PCIe/if_pci.c
@@ -391,7 +391,7 @@ void dump_CE_debug_register(struct hif_pci_softc *sc)
A_target_id_t targid = hif_state->targid;
void __iomem *mem = sc->mem;
u_int32_t val, i, j;
- u_int32_t wrapper_idx[] = {1, 2, 3, 4, 5, 6, 8, 9};
+ u_int32_t wrapper_idx[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
u_int32_t ce_base;
A_TARGET_ACCESS_BEGIN(targid);
diff --git a/CORE/SERVICES/HIF/ath_procfs.c b/CORE/SERVICES/HIF/ath_procfs.c
index 658b596d798a..e37512dbc062 100644
--- a/CORE/SERVICES/HIF/ath_procfs.c
+++ b/CORE/SERVICES/HIF/ath_procfs.c
@@ -84,7 +84,7 @@ static ssize_t ath_procfs_diag_read(struct file *file, char __user *buf,
}
hif_hdl = get_hif_hdl_from_file(file);
- pr_debug("rd buff 0x%p cnt %d offset 0x%x buf 0x%p\n",
+ pr_debug("rd buff 0x%p cnt %zu offset 0x%x buf 0x%p\n",
read_buffer,count,
(int)*pos, buf);
@@ -123,13 +123,13 @@ static ssize_t ath_procfs_diag_write(struct file *file, const char __user *buf,
return -EINVAL;
}
if(copy_from_user(write_buffer, buf, count)) {
- vos_mem_free(write_buffer);
+ vos_mem_free(write_buffer);
return -EFAULT;
- }
+ }
hif_hdl = get_hif_hdl_from_file(file);
- pr_debug("wr buff 0x%p buf 0x%p cnt %d offset 0x%x value 0x%x\n",
- write_buffer, buf, (int)count,
+ pr_debug("wr buff 0x%p buf 0x%p cnt %zu offset 0x%x value 0x%x\n",
+ write_buffer, buf, count,
(int)*pos, *((A_UINT32 *)write_buffer));
if ((count == 4) && ((((A_UINT32)(*pos)) & 3) == 0)) {
diff --git a/CORE/SERVICES/HTC/htc_send.c b/CORE/SERVICES/HTC/htc_send.c
index da602a279f0a..26bb07c2754a 100644
--- a/CORE/SERVICES/HTC/htc_send.c
+++ b/CORE/SERVICES/HTC/htc_send.c
@@ -1310,6 +1310,8 @@ static HTC_PACKET *HTCLookupTxPacket(HTC_TARGET *target, HTC_ENDPOINT *pEndpoint
UNLOCK_HTC_TX(target);
ITERATE_OVER_LIST_ALLOW_REMOVE(&lookupQueue.QueueHead,pPacket,HTC_PACKET,ListLink) {
+ if (NULL == pPacket)
+ return NULL;
/* check for removal */
if (netbuf == (adf_nbuf_t)GET_HTC_PACKET_NET_BUF_CONTEXT(pPacket)) {
/* found it */
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index bdc22f16f6ae..506dfe8de829 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -2896,6 +2896,7 @@ VOS_STATUS WDA_open(v_VOID_t *vos_context, v_VOID_t *os_ctx,
wma_handle->max_bssid = mac_params->maxBssId;
wma_handle->frame_xln_reqd = mac_params->frameTransRequired;
wma_handle->driver_type = mac_params->driverType;
+ wma_handle->ssdp = mac_params->ssdp;
/*
* Indicates if DFS Phyerr filtering offload
@@ -2918,7 +2919,7 @@ VOS_STATUS WDA_open(v_VOID_t *vos_context, v_VOID_t *os_ctx,
wma_unified_debug_print_event_handler);
wma_handle->tgt_cfg_update_cb = tgt_cfg_cb;
- wma_handle->dfs_radar_indication_cb = radar_ind_cb;
+ wma_handle->dfs_radar_indication_cb = radar_ind_cb;
#ifdef QCA_WIFI_ISOC
vos_status = vos_event_init(&wma_handle->cfg_nv_tx_complete);
@@ -7090,8 +7091,12 @@ static int32_t wmi_unified_send_peer_assoc(tp_wma_handle wma,
mcs->tx_max_rate = params->supportedRates.vhtTxHighestDataRate;
mcs->tx_mcs_set = params->supportedRates.vhtTxMCSMap;
- cmd->peer_nss = ((mcs->rx_mcs_set & VHT2x2MCSMASK)
- == VHT2x2MCSMASK) ? 1 : 2;
+ if(params->vhtSupportedRxNss) {
+ cmd->peer_nss = params->vhtSupportedRxNss;
+ } else {
+ cmd->peer_nss = ((mcs->rx_mcs_set & VHT2x2MCSMASK)
+ == VHT2x2MCSMASK) ? 1 : 2;
+ }
}
intr->nss = cmd->peer_nss;
@@ -12833,14 +12838,18 @@ static VOS_STATUS wma_wow_sta(tp_wma_handle wma, u_int8_t vdev_id,
* Setup multicast pattern for mDNS 224.0.0.251,
* SSDP 239.255.255.250 and LLMNR 224.0.0.252
*/
- ret = wma_send_wow_patterns_to_fw(wma, vdev_id,
- wma->wow.free_ptrn_id[wma->wow.used_free_ptrn_id++],
- discvr_ptrn, sizeof(discvr_ptrn), discvr_offset,
- discvr_mask, sizeof(discvr_ptrn));
- if (ret != VOS_STATUS_SUCCESS) {
- WMA_LOGE("Failed to add WOW mDNS/SSDP/LLMNR pattern");
- return ret;
+ if (wma->ssdp) {
+ ret = wma_send_wow_patterns_to_fw(wma, vdev_id,
+ wma->wow.free_ptrn_id[wma->wow.used_free_ptrn_id++],
+ discvr_ptrn, sizeof(discvr_ptrn), discvr_offset,
+ discvr_mask, sizeof(discvr_ptrn));
+ if (ret != VOS_STATUS_SUCCESS) {
+ WMA_LOGE("Failed to add WOW mDNS/SSDP/LLMNR pattern");
+ return ret;
+ }
}
+ else
+ WMA_LOGD("mDNS, SSDP, LLMNR patterns are disabled from ini");
/* when arp offload or ns offloaded is disabled
* from ini file, configure broad cast arp pattern
@@ -12857,6 +12866,7 @@ static VOS_STATUS wma_wow_sta(tp_wma_handle wma, u_int8_t vdev_id,
return ret;
}
}
+
/* for NS or NDP offload packets */
if (!(wma->ol_ini_info & 0x2)) {
/* Setup all NS pkt pattern */
@@ -13630,13 +13640,23 @@ static void wma_finish_scan_req(tp_wma_handle wma_handle,
static void wma_process_update_opmode(tp_wma_handle wma_handle,
tUpdateVHTOpMode *update_vht_opmode)
{
- WMA_LOGD("%s: Update Opmode", __func__);
+ WMA_LOGD("%s: opMode = %d", __func__, update_vht_opmode->opMode);
wma_set_peer_param(wma_handle, update_vht_opmode->peer_mac,
WMI_PEER_CHWIDTH, update_vht_opmode->opMode,
update_vht_opmode->smesessionId);
}
+static void wma_process_update_rx_nss(tp_wma_handle wma_handle,
+ tUpdateRxNss *update_rx_nss)
+{
+ WMA_LOGD("%s: Rx Nss = %d", __func__, update_rx_nss->rxNss);
+
+ wma_set_peer_param(wma_handle, update_rx_nss->peer_mac,
+ WMI_PEER_NSS, update_rx_nss->rxNss,
+ update_rx_nss->smesessionId);
+}
+
#ifdef FEATURE_OEM_DATA_SUPPORT
static void wma_start_oem_data_req(tp_wma_handle wma_handle,
tStartOemDataReq *startOemDataReq)
@@ -15964,6 +15984,11 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg)
(tUpdateVHTOpMode *)msg->bodyptr);
vos_mem_free(msg->bodyptr);
break;
+ case WDA_UPDATE_RX_NSS:
+ wma_process_update_rx_nss(wma_handle,
+ (tUpdateRxNss *)msg->bodyptr);
+ vos_mem_free(msg->bodyptr);
+ break;
#ifdef WLAN_FEATURE_11AC
case WDA_UPDATE_MEMBERSHIP:
wma_process_update_membership(wma_handle,
@@ -17121,9 +17146,9 @@ static int wma_channel_avoid_evt_handler(void *handle, u_int8_t *event,
afr_desc = (wmi_avoid_freq_range_desc *) ((void *)param_buf->avd_freq_range
+ freq_range_idx * sizeof(wmi_avoid_freq_range_desc));
sca_indication->avoid_freq_range[freq_range_idx].start_freq =
- afr_desc->start_freq + 10;
- sca_indication->avoid_freq_range[freq_range_idx].end_freq = afr_desc->end_freq
- - 10;
+ afr_desc->start_freq;
+ sca_indication->avoid_freq_range[freq_range_idx].end_freq =
+ afr_desc->end_freq;
}
sme_msg.type = eWNI_SME_CH_AVOID_IND;
diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h
index 8a400e0cddcf..c3051eb9120b 100644
--- a/CORE/SERVICES/WMA/wma.h
+++ b/CORE/SERVICES/WMA/wma.h
@@ -604,6 +604,7 @@ typedef struct {
* offload currently, rest bits are unused
*/
u_int8_t ol_ini_info;
+ v_BOOL_t ssdp;
u_int8_t ibss_started;
tSetBssKeyParams ibsskey_info;
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index 824632973e2f..605117f4cfb8 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -259,6 +259,10 @@ typedef struct tagCsrStaParams
tSirVHTCap VHTCap;
tANI_U8 uapsd_queues;
tANI_U8 max_sp;
+ tANI_U8 supported_channels_len;
+ tANI_U8 supported_channels[SIR_MAC_MAX_SUPP_CHANNELS];
+ tANI_U8 supported_oper_classes_len;
+ tANI_U8 supported_oper_classes[SIR_MAC_MAX_SUPP_OPER_CLASSES];
}tCsrStaParams;
typedef struct tagCsrScanRequest
@@ -1421,7 +1425,12 @@ typedef struct tagCsrLinkEstablishParams
tANI_U8 uapsdQueues;
tANI_U8 maxSp;
tANI_U8 isBufSta;
+ tANI_U8 isOffChannelSupported;
tANI_U8 isResponder;
+ tANI_U8 supportedChannelsLen;
+ tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
+ tANI_U8 supportedOperClassesLen;
+ tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
}tCsrTdlsLinkEstablishParams;
typedef struct tagCsrTdlsSendMgmt
diff --git a/CORE/SME/inc/pmc.h b/CORE/SME/inc/pmc.h
index 59ea1a3a4921..2d9b151fdf73 100644
--- a/CORE/SME/inc/pmc.h
+++ b/CORE/SME/inc/pmc.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2013 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -188,7 +188,6 @@ typedef struct sPmcInfo
void *enterWowlCallbackContext;/* value to be passed as parameter to routine specified above */
tSirSmeWowlEnterParams wowlEnterParams; /* WOWL mode configuration */
tDblLinkList deferredMsgList; //The message in here are deferred and DONOT expect response from PE
- tANI_BOOLEAN rfSuppliesVotedOff; //Whether RF supplies are voted off or not.
#ifdef FEATURE_WLAN_SCAN_PNO
preferredNetworkFoundIndCallback prefNetwFoundCB; /* routine to call for Preferred Network Found Indication */
void *preferredNetworkFoundIndCallbackContext;/* value to be passed as parameter to routine specified above */
diff --git a/CORE/SME/inc/smeInside.h b/CORE/SME/inc/smeInside.h
index fe4003b3939b..55b807d1d850 100644
--- a/CORE/SME/inc/smeInside.h
+++ b/CORE/SME/inc/smeInside.h
@@ -124,7 +124,12 @@ typedef struct TdlsLinkEstablishInfo
tANI_U8 uapsdQueues;
tANI_U8 maxSp;
tANI_U8 isBufSta;
+ tANI_U8 isOffChannelSupported;
tANI_U8 isResponder;
+ tANI_U8 supportedChannelsLen;
+ tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
+ tANI_U8 supportedOperClassesLen;
+ tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
} tTdlsLinkEstablishCmdInfo;
typedef struct TdlsAddStaInfo
diff --git a/CORE/SME/src/csr/csrTdlsProcess.c b/CORE/SME/src/csr/csrTdlsProcess.c
index 5ddd942c446e..c8c708bc41cb 100644
--- a/CORE/SME/src/csr/csrTdlsProcess.c
+++ b/CORE/SME/src/csr/csrTdlsProcess.c
@@ -254,6 +254,21 @@ VOS_STATUS csrTdlsSendLinkEstablishParams(tHalHandle hHal,
tdlsLinkEstablishCmdInfo->isResponder= tdlsLinkEstablishParams->isResponder;
tdlsLinkEstablishCmdInfo->maxSp= tdlsLinkEstablishParams->maxSp;
tdlsLinkEstablishCmdInfo->uapsdQueues= tdlsLinkEstablishParams->uapsdQueues;
+ tdlsLinkEstablishCmdInfo->isOffChannelSupported =
+ tdlsLinkEstablishParams->isOffChannelSupported;
+ vos_mem_copy(tdlsLinkEstablishCmdInfo->supportedChannels,
+ tdlsLinkEstablishParams->supportedChannels,
+ tdlsLinkEstablishParams->supportedChannelsLen);
+ tdlsLinkEstablishCmdInfo->supportedChannelsLen =
+ tdlsLinkEstablishParams->supportedChannelsLen;
+ vos_mem_copy(tdlsLinkEstablishCmdInfo->supportedOperClasses,
+ tdlsLinkEstablishParams->supportedOperClasses,
+ tdlsLinkEstablishParams->supportedOperClassesLen);
+ tdlsLinkEstablishCmdInfo->supportedOperClassesLen =
+ tdlsLinkEstablishParams->supportedOperClassesLen;
+ tdlsLinkEstablishCmdInfo->isResponder= tdlsLinkEstablishParams->isResponder;
+ tdlsLinkEstablishCmdInfo->maxSp= tdlsLinkEstablishParams->maxSp;
+ tdlsLinkEstablishCmdInfo->uapsdQueues= tdlsLinkEstablishParams->uapsdQueues;
tdlsLinkEstablishCmd->command = eSmeCommandTdlsLinkEstablish ;
tdlsLinkEstablishCmd->u.tdlsCmd.size = sizeof(tTdlsLinkEstablishCmdInfo) ;
smePushCommand(pMac, tdlsLinkEstablishCmd, FALSE) ;
@@ -864,6 +879,16 @@ eHalStatus csrTdlsProcessLinkEstablish( tpAniSirGlobal pMac, tSmeCmd *cmd )
tdlsLinkEstablishCmdInfo->peerMac, sizeof(tSirMacAddr));
vos_mem_copy(tdlsLinkEstablishReq->bssid, pSession->pConnectBssDesc->bssId,
sizeof (tSirMacAddr));
+ vos_mem_copy(tdlsLinkEstablishReq->supportedChannels,
+ tdlsLinkEstablishCmdInfo->supportedChannels,
+ tdlsLinkEstablishCmdInfo->supportedChannelsLen);
+ tdlsLinkEstablishReq->supportedChannelsLen =
+ tdlsLinkEstablishCmdInfo->supportedChannelsLen;
+ vos_mem_copy(tdlsLinkEstablishReq->supportedOperClasses,
+ tdlsLinkEstablishCmdInfo->supportedOperClasses,
+ tdlsLinkEstablishCmdInfo->supportedOperClassesLen);
+ tdlsLinkEstablishReq->supportedOperClassesLen =
+ tdlsLinkEstablishCmdInfo->supportedOperClassesLen;
tdlsLinkEstablishReq->isBufSta = tdlsLinkEstablishCmdInfo->isBufSta;
tdlsLinkEstablishReq->isResponder= tdlsLinkEstablishCmdInfo->isResponder;
tdlsLinkEstablishReq->uapsdQueues= tdlsLinkEstablishCmdInfo->uapsdQueues;
diff --git a/CORE/SME/src/pmc/pmc.c b/CORE/SME/src/pmc/pmc.c
index 1daa33f8a9b1..60e4e7e22020 100644
--- a/CORE/SME/src/pmc/pmc.c
+++ b/CORE/SME/src/pmc/pmc.c
@@ -47,7 +47,6 @@
#include "pmc.h"
#include "wlan_qct_wda.h"
#include "wlan_ps_wow_diag.h"
-#include <vos_power.h>
#include "csrInsideApi.h"
static void pmcProcessDeferredMsg( tpAniSirGlobal pMac );
@@ -206,12 +205,7 @@ eHalStatus pmcEnterFullPowerState (tHalHandle hHal)
return eHAL_STATUS_FAILURE;
}
- pmcLog(pMac, LOG1, "PMC: Enter full power done: Cancel XO Core ON vote");
- if (vos_chipVoteXOCore(NULL, NULL, NULL, VOS_FALSE) != VOS_STATUS_SUCCESS)
- {
- pmcLog(pMac, LOGE, "Could not cancel XO Core ON vote. Not returning failure. "
- "Power consumed will be high");
- }
+ pmcLog(pMac, LOG1, "PMC: Enter full power done");
return eHAL_STATUS_SUCCESS;
}
@@ -236,8 +230,6 @@ eHalStatus pmcEnterFullPowerState (tHalHandle hHal)
eHalStatus pmcEnterRequestFullPowerState (tHalHandle hHal, tRequestFullPowerReason fullPowerReason)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
- vos_call_status_type callType;
- VOS_STATUS status;
pmcLog(pMac, LOG2, FL("Entering pmcEnterRequestFullPowerState"));
@@ -276,25 +268,6 @@ eHalStatus pmcEnterRequestFullPowerState (tHalHandle hHal, tRequestFullPowerReas
/* Tell MAC to have device enter full power mode. */
case IMPS:
- if ( pMac->pmc.rfSuppliesVotedOff )
- {
- status = vos_chipVoteOnRFSupply(&callType, NULL, NULL);
- if(VOS_STATUS_SUCCESS != status)
- {
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( status ) );
- return eHAL_STATUS_FAILURE;
- }
-
- status = vos_chipVoteOnXOBuffer(&callType, NULL, NULL);
- if(VOS_STATUS_SUCCESS != status)
- {
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( status ) );
- return eHAL_STATUS_FAILURE;
- }
-
- pMac->pmc.rfSuppliesVotedOff = FALSE;
- }
-
if (pmcIssueCommand( pMac, 0, eSmeCommandExitImps, NULL, 0, FALSE)
!= eHAL_STATUS_SUCCESS)
{
@@ -321,22 +294,6 @@ eHalStatus pmcEnterRequestFullPowerState (tHalHandle hHal, tRequestFullPowerReas
/* Tell MAC to have device enter full power mode. */
case STANDBY:
- if ( pMac->pmc.rfSuppliesVotedOff )
- {
- status = vos_chipVoteOnXOBuffer(&callType, NULL, NULL);
- if(VOS_STATUS_SUCCESS != status)
- {
- return eHAL_STATUS_FAILURE;
- }
- status = vos_chipVoteOnRFSupply(&callType, NULL, NULL);
- if(VOS_STATUS_SUCCESS != status)
- {
- return eHAL_STATUS_FAILURE;
- }
-
- pMac->pmc.rfSuppliesVotedOff = FALSE;
- }
-
if (pmcIssueCommand(hHal, 0, eSmeCommandExitImps, NULL, 0, FALSE)
!= eHAL_STATUS_SUCCESS)
{
@@ -446,8 +403,7 @@ eHalStatus pmcEnterRequestImpsState (tHalHandle hHal)
eHalStatus pmcEnterImpsState (tHalHandle hHal)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
- vos_call_status_type callType;
- VOS_STATUS status;
+
pmcLog(pMac, LOG2, FL("Entering pmcEnterImpsState"));
/* Can enter IMPS State only from Request IMPS State. */
@@ -493,24 +449,6 @@ eHalStatus pmcEnterImpsState (tHalHandle hHal)
pMac->pmc.ImpsReqTimerfailCnt = 0;
}
- //Vote off RF supplies. Note RF supllies are not voted off if there is a
- //pending request for full power already
- status = vos_chipVoteOffRFSupply(&callType, NULL, NULL);
- if (VOS_STATUS_SUCCESS != status )
- {
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( status ) );
- return eHAL_STATUS_FAILURE;
- }
-
- status = vos_chipVoteOffXOBuffer(&callType, NULL, NULL);
- if (VOS_STATUS_SUCCESS != status)
- {
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( status ) );
- return eHAL_STATUS_FAILURE;
- }
-
- pMac->pmc.rfSuppliesVotedOff= TRUE;
-
return eHAL_STATUS_SUCCESS;
}
@@ -1486,8 +1424,6 @@ eHalStatus pmcEnterRequestStandbyState (tHalHandle hHal)
eHalStatus pmcEnterStandbyState (tHalHandle hHal)
{
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
- vos_call_status_type callType;
- VOS_STATUS status;
pmcLog(pMac, LOG2, "PMC: entering pmcEnterStandbyState");
@@ -1510,26 +1446,6 @@ eHalStatus pmcEnterStandbyState (tHalHandle hHal)
return pmcEnterRequestFullPowerState(hHal, pMac->pmc.requestFullPowerReason);
}
- //Note that RF supplies are not voted off if there is already a pending request
- //for full power
- status = vos_chipVoteOffRFSupply(&callType, NULL, NULL);
-
- if (VOS_STATUS_SUCCESS != status)
- {
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( status ) );
- return eHAL_STATUS_FAILURE;
- }
-
- status = vos_chipVoteOffXOBuffer(&callType, NULL, NULL);
-
- if (VOS_STATUS_SUCCESS != status)
- {
- VOS_ASSERT( VOS_IS_STATUS_SUCCESS( status ) );
- return eHAL_STATUS_FAILURE;
- }
-
- pMac->pmc.rfSuppliesVotedOff= TRUE;
-
return eHAL_STATUS_SUCCESS;
}
@@ -2206,7 +2122,6 @@ eHalStatus pmcIssueCommand( tpAniSirGlobal pMac, tANI_U32 sessionId,
tANI_BOOLEAN pmcProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand )
{
eHalStatus status = eHAL_STATUS_SUCCESS;
- VOS_STATUS vstatus;
tANI_BOOLEAN fRemoveCmd = eANI_BOOLEAN_TRUE;
do
@@ -2280,14 +2195,7 @@ tANI_BOOLEAN pmcProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand )
{
/* Change PMC state */
pMac->pmc.pmcState = REQUEST_BMPS;
- pmcLog(pMac, LOG2, "PMC: Enter BMPS req done: Force XO Core ON");
- vstatus = vos_chipVoteXOCore(NULL, NULL, NULL, VOS_TRUE);
- if ( !VOS_IS_STATUS_SUCCESS(vstatus) )
- {
- pmcLog(pMac, LOGE, "Could not turn XO Core ON. Can't go to BMPS");
- }
- else /* XO Core turn ON was successful */
- {
+ pmcLog(pMac, LOG2, "PMC: Enter BMPS req done");
/* Tell MAC to have device enter BMPS mode. */
status = pmcSendMessage(pMac, eWNI_PMC_ENTER_BMPS_REQ, NULL, 0);
if ( HAL_STATUS_SUCCESS( status ) )
@@ -2297,17 +2205,6 @@ tANI_BOOLEAN pmcProcessCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand )
else
{
pmcLog(pMac, LOGE, "Fail to send enter BMPS msg to PE");
- /* Cancel the vote for XO Core */
- pmcLog(pMac, LOGW, "In module init: Cancel the vote for XO CORE ON "
- "since send enter bmps failed");
- if (vos_chipVoteXOCore(NULL, NULL, NULL, VOS_FALSE) != VOS_STATUS_SUCCESS)
- {
- pmcLog(pMac, LOGE, "Could not cancel XO Core ON vote."
- "Not returning failure."
- "Power consumed will be high");
- }
-
- }
}
}
if( !HAL_STATUS_SUCCESS( status ) )
diff --git a/CORE/SME/src/pmc/pmcApi.c b/CORE/SME/src/pmc/pmcApi.c
index 697261f15c3c..fddb5a37affd 100644
--- a/CORE/SME/src/pmc/pmcApi.c
+++ b/CORE/SME/src/pmc/pmcApi.c
@@ -94,7 +94,6 @@ eHalStatus pmcOpen (tHalHandle hHal)
pMac->pmc.bmpsEnabled = TRUE;
pMac->pmc.standbyEnabled = TRUE;
pMac->pmc.wowlEnabled = TRUE;
- pMac->pmc.rfSuppliesVotedOff= FALSE;
vos_mem_set(&(pMac->pmc.bmpsConfig), sizeof(tPmcBmpsConfigParams), 0);
vos_mem_set(&(pMac->pmc.impsConfig), sizeof(tPmcImpsConfigParams), 0);
diff --git a/CORE/VOSS/inc/vos_power.h b/CORE/VOSS/inc/vos_power.h
deleted file mode 100644
index 8b620b1a6d50..000000000000
--- a/CORE/VOSS/inc/vos_power.h
+++ /dev/null
@@ -1,601 +0,0 @@
-/*
- * Copyright (c) 2014 The Linux Foundation. All rights reserved.
- *
- * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
- *
- *
- * Permission to use, copy, modify, and/or distribute this software for
- * any purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * This file was originally distributed by Qualcomm Atheros, Inc.
- * under proprietary terms before Copyright ownership was assigned
- * to the Linux Foundation.
- */
-
-#ifndef _VOS_POWER_H_
-#define _VOS_POWER_H_
-
-/*!
- @file
- vos_power.h
-
- @brief
- This is the interface to VOSS power APIs using for power management
- of the WLAN Libra module from the MSM PMIC. These implementation of
- these APIs is very target dependent, also these APIs should only be
- used when the WLAN Libra module is powered from the MSM PMIC and not
- from an external independent power source
-
-*/
-
-/*===========================================================================
-
- EDIT HISTORY FOR MODULE
-
-This section contains comments describing changes made to the module.
-Notice that changes are listed in reverse chronological order.
-
-$Header: $
-
-when who what, where, why
--------- --- ----------------------------------------------------------
-01/20/09 rg Initial creation (based on Henri's slides)
-===========================================================================*/
-
-/*===========================================================================
-
- INCLUDE FILES
-
-===========================================================================*/
-#include "vos_api.h"
-
-/*===========================================================================
-
- DEFINITIONS AND TYPES
-
-===========================================================================*/
-typedef enum
-{
- VOS_CHIP_RESET_CMD53_FAILURE, /* Reset Chip due to CMD53 Failure */
- VOS_CHIP_RESET_FW_EXCEPTION, /* Reset Chip due to FW Failure */
- VOS_CHIP_RESET_MUTEX_READ_FAILURE, /* Reset Chip due to Mutex Read Failure */
- VOS_CHIP_RESET_MIF_EXCEPTION, /* Reset Chip due to MAC exception e.g. BMU fatal, MIF error */
- VOS_CHIP_RESET_UNKNOWN_EXCEPTION /* Reset Chip due to any other exception */
-}vos_chip_reset_reason_type;
-
-typedef enum
-{
- VOS_CALL_SYNC, /* operation is synchronous */
- VOS_CALL_ASYNC /* operation is asynchronous */
-
-} vos_call_status_type;
-
-typedef v_VOID_t (*vos_power_cb_type)
-(
- v_PVOID_t user_data, /* user cookie */
- VOS_STATUS result /* result of operation:
- VOS_STATUS_SUCCESS for success
- VOS_STATUS_E_FAILURE for failure */
-);
-
-/*===========================================================================
-
- FUNCTION PROTOTYPES
-
-===========================================================================*/
-
-/**
- @brief vos_chipPowerUp() - This API will power up the Libra chip
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- The Libra SDIO core will have been initialized if the operation completes
- successfully
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipPowerUp
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipPowerDown() - This API will power down the Libra chip
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipPowerDown
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipReset() - This API will reset the Libra chip
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- A hard reset will involve a powerDown followed by a PowerUp; a soft reset
- can potentially be accomplished by writing to some device registers
-
- The Libra SDIO core will have been initialized if the operation completes
- successfully
-
- @param status [out] : whether this operation will complete sync or async
- @param soft [in] : VOS_TRUE if a soft reset is desired
- VOS_FALSE for a hard reset i.e. powerDown followed by powerUp
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_NOSUPPORT - soft reset asked for but not supported
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipReset
-(
- vos_call_status_type* status,
- v_BOOL_t soft,
- vos_power_cb_type callback,
- v_PVOID_t user_data,
- vos_chip_reset_reason_type reason
-);
-
-/**
- @brief vos_chipVoteOnPASupply() - This API will power up the PA supply
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnPASupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipVoteOffPASupply() - This API will vote to turn off the
- PA supply. Even if we succeed in voting, there is a chance PA supply will not
- be turned off. This will be treated the same as a failure.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffPASupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipAssertDeepSleep() - This API will assert the deep
- sleep signal to Libra
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipAssertDeepSleep
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipDeAssertDeepSleep() - This API will de-assert the deep sleep
- signal to Libra
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipDeAssertDeepSleep
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipVoteOnRFSupply() - This API will power up the RF supply
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnRFSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipVoteOffRFSupply() - This API will vote to turn off the
- RF supply. Even if we succeed in voting, there is a chance RF supply will not
- be turned off as RF rails could be shared with other modules (outside WLAN)
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffRFSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-/**
- @brief vos_chipVoteOnBBAnalogSupply() - This API will power up the I/P voltage
- used by Base band Analog.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnBBAnalogSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipVoteOffBBAnalogSupply() - This API will vote off the BB Analog supply.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffBBAnalogSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-/**
- @brief vos_chipVoteOnXOBuffer() - This API will vote to turn on the XO buffer from
- PMIC. This API will be used when Libra uses the TCXO from PMIC on the MSM
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnXOBuffer
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipVoteOffXOBuffer() - This API will vote off PMIC XO buffer.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffXOBuffer
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-);
-
-/**
- @brief vos_chipVoteXOCore() - This API will FORCE vote ON PMIC XO CORE.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
- @param force_enable[in] : user supplied input for turning ON/OFF Xo Core
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteXOCore
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data,
- v_BOOL_t force_enable
-);
-
-
-/**
- @brief vos_chipVoteFreqFor1p3VSupply() - This API will vote for frequency for 1.3V RF supply.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- EVM issue is observed with 1.6Mhz freq for 1.3V supply in wlan standalone case.
- During concurrent operation (e.g. WLAN and WCDMA) this issue is not observed.
- To workaround, wlan will vote for 3.2Mhz during startup and will vote for 1.6Mhz
- during exit.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
- @param freq [in] : Frequency for 1.3V Supply for which WLAN driver needs to vote for.
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteFreqFor1p3VSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data,
- v_U32_t freq
-);
-
-
-#endif /* _VOS_POWER_H_ */
diff --git a/CORE/VOSS/inc/vos_trace.h b/CORE/VOSS/inc/vos_trace.h
index b87a41edb4fb..dab444a9a3e3 100644
--- a/CORE/VOSS/inc/vos_trace.h
+++ b/CORE/VOSS/inc/vos_trace.h
@@ -206,6 +206,6 @@ void vos_trace(v_U8_t module, v_U8_t code, v_U8_t session, v_U32_t data);
void vosTraceRegister(VOS_MODULE_ID, tpvosTraceCb);
VOS_STATUS vos_trace_spin_lock_init(void);
void vosTraceInit(void);
-void vosTraceEnable(v_U32_t);
+void vosTraceEnable(v_U32_t, v_U8_t enable);
void vosTraceDumpAll(void*, v_U8_t, v_U8_t, v_U32_t, v_U32_t);
#endif
diff --git a/CORE/VOSS/src/vos_api.c b/CORE/VOSS/src/vos_api.c
index d84b1cc636d2..df29bd2a10a1 100644
--- a/CORE/VOSS/src/vos_api.c
+++ b/CORE/VOSS/src/vos_api.c
@@ -431,6 +431,8 @@ VOS_STATUS vos_open( v_CONTEXT_t *pVosContext, v_SIZE_t hddContextSize )
*/
macOpenParms.dfsPhyerrFilterOffload =
pHddCtx->cfg_ini->fDfsPhyerrFilterOffload;
+ if (pHddCtx->cfg_ini->ssdp)
+ macOpenParms.ssdp = pHddCtx->cfg_ini->ssdp;
#endif
macOpenParms.apMaxOffloadPeers = pHddCtx->cfg_ini->apMaxOffloadPeers;
diff --git a/CORE/VOSS/src/vos_power.c b/CORE/VOSS/src/vos_power.c
deleted file mode 100644
index 7c05c6e0d426..000000000000
--- a/CORE/VOSS/src/vos_power.c
+++ /dev/null
@@ -1,676 +0,0 @@
-/*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
- *
- * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
- *
- *
- * Permission to use, copy, modify, and/or distribute this software for
- * any purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * This file was originally distributed by Qualcomm Atheros, Inc.
- * under proprietary terms before Copyright ownership was assigned
- * to the Linux Foundation.
- */
-
-/*!
- @file
- vos_power.c
-
- @brief
- This is the interface to VOSS power APIs using for power management
- of the WLAN Libra module from the MSM PMIC. These implementation of
- these APIs is very target dependent, also these APIs should only be
- used when the WLAN Libra module is powered from the MSM PMIC and not
- from an external independent power source
-
-*/
-
-/*===========================================================================
-
- EDIT HISTORY FOR MODULE
-
-This section contains comments describing changes made to the module.
-Notice that changes are listed in reverse chronological order.
-
-$Header: $
-
-when who what, where, why
--------- --- ----------------------------------------------------------
-
-===========================================================================*/
-
-/*===========================================================================
-
- INCLUDE FILES
-
-===========================================================================*/
-#include <vos_power.h>
-#include <vos_sched.h>
-
-//To work around issues of fail to turn WIFI back on after turning it off
-#define VOS_PWR_WIFI_ON_OFF_HACK
-#ifdef VOS_PWR_WIFI_ON_OFF_HACK
-#define VOS_PWR_SLEEP(ms) msleep(ms)
-#else
-#define VOS_PWR_SLEEP(ms)
-#endif
-
-/*===========================================================================
-
- DEFINITIONS AND TYPES
-
-===========================================================================*/
-
-#define CHIP_POWER_ON 1
-#define CHIP_POWER_OFF 0
-
-// SDIO Config Cycle Clock Frequency
-#define WLAN_LOW_SD_CONFIG_CLOCK_FREQ 400000
-
-/*===========================================================================
-
- FUNCTION PROTOTYPES
-
-===========================================================================*/
-
-/**
- @brief vos_chipPowerUp() - This API will power up the Libra chip
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- The Libra SDIO core will have been initialized if the operation completes
- successfully
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipPowerUp
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipPowerDown() - This API will power down the Libra chip
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipPowerDown
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipReset() - This API will reset the Libra chip
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- A hard reset will involve a powerDown followed by a PowerUp; a soft reset
- can potentially be accomplished by writing to some device registers
-
- The Libra SDIO core will have been initialized if the operation completes
- successfully
-
- @param status [out] : whether this operation will complete sync or async
- @param soft [in] : VOS_TRUE if a soft reset is desired
- VOS_FALSE for a hard reset i.e. powerDown followed by powerUp
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_NOSUPPORT - soft reset asked for but not supported
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipReset
-(
- vos_call_status_type* status,
- v_BOOL_t soft,
- vos_power_cb_type callback,
- v_PVOID_t user_data,
- vos_chip_reset_reason_type reason
-)
-{
- VOS_STATUS vstatus;
- vstatus = vos_watchdog_chip_reset(reason);
- return vstatus;
-}
-
-
-/**
- @brief vos_chipVoteOnPASupply() - This API will power up the PA supply
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnPASupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-
-/**
- @brief vos_chipVoteOffPASupply() - This API will vote to turn off the
- PA supply. Even if we succeed in voting, there is a chance PA supply will not
- be turned off. This will be treated the same as a failure.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffPASupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-
-/**
- @brief vos_chipAssertDeepSleep() - This API will assert the deep
- sleep signal to Libra
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipAssertDeepSleep
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-
-/**
- @brief vos_chipDeAssertDeepSleep() - This API will de-assert the deep sleep
- signal to Libra
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipDeAssertDeepSleep
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipExitDeepSleepVREGHandler() - This API will initialize the required VREG
- after exit from deep sleep.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipExitDeepSleepVREGHandler
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipVoteOnRFSupply() - This API will power up the RF supply
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnRFSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipVoteOffRFSupply() - This API will vote to turn off the
- RF supply. Even if we succeed in voting, there is a chance RF supply will not
- be turned off as RF rails could be shared with other modules (outside WLAN)
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffRFSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipVoteOnBBAnalogSupply() - This API will power up the I/P voltage
- used by Base band Analog.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnBBAnalogSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipVoteOffBBAnalogSupply() - This API will vote off the BB Analog supply.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffBBAnalogSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipVoteOnXOBuffer() - This API will vote to turn on the XO buffer from
- PMIC. This API will be used when Libra uses the TCXO from PMIC on the MSM
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately)
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOnXOBuffer
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipVoteOffXOBuffer() - This API will vote off PMIC XO buffer.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteOffXOBuffer
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data
-)
-{
- return VOS_STATUS_SUCCESS;
-}
-
-/**
- @brief vos_chipVoteXOCore - This API will vote PMIC XO Core.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
- @param force_enable [in] : Force enable XO CORE or not
-
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteXOCore
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data,
- v_BOOL_t force_enable
-)
-{
-
- return VOS_STATUS_SUCCESS;
-}
-
-
-/**
- @brief vos_chipVoteFreqFor1p3VSupply() - This API will vote for frequency for 1.3V RF supply.
-
- This operation may be asynchronous. If so, the supplied callback will
- be invoked when operation is complete with the result. The callback will
- be called with the user supplied data. If the operation is known to be
- sync, there is no need to supply a callback and user data.
-
- EVM issue is observed with 1.6Mhz freq for 1.3V supply in wlan standalone case.
- During concurrent operation (e.g. WLAN and WCDMA) this issue is not observed.
- To workaround, wlan will vote for 3.2Mhz during startup and will vote for 1.6Mhz
- during exit.
-
- @param status [out] : whether this operation will complete sync or async
- @param callback [in] : user supplied callback invoked when operation completes
- @param user_data [in] : user supplied context callback is called with
- @param freq [in] : Frequency for 1.3V Supply for which WLAN driver needs to vote for.
- @return
- VOS_STATUS_E_INVAL - status is NULL
- VOS_STATUS_E_FAULT - the operation needs to complete async and a callback
- and user_data has not been specified (status will be
- set to VOS_CALL_ASYNC)
- VOS_STATUS_E_ALREADY - operation needs to complete async but another request
- is already in progress (status will be set to VOS_CALL_ASYNC)
- VOS_STATUS_E_FAILURE - operation failed (status will be set appropriately) could be
- because the voting algorithm decided not to power down PA
- VOS_STATUS_SUCCESS - operation completed successfully if status is SYNC (will be set)
- OR operation started successfully if status is ASYNC (will be set)
-
-*/
-VOS_STATUS vos_chipVoteFreqFor1p3VSupply
-(
- vos_call_status_type* status,
- vos_power_cb_type callback,
- v_PVOID_t user_data,
- v_U32_t freq
-)
-{
- return VOS_STATUS_SUCCESS;
-}
diff --git a/CORE/VOSS/src/vos_sched.c b/CORE/VOSS/src/vos_sched.c
index 32a83cfbb635..3abb6569e881 100644
--- a/CORE/VOSS/src/vos_sched.c
+++ b/CORE/VOSS/src/vos_sched.c
@@ -1714,11 +1714,6 @@ VOS_STATUS vos_watchdog_close ( v_PVOID_t pVosContext )
return VOS_STATUS_SUCCESS;
} /* vos_watchdog_close() */
-VOS_STATUS vos_watchdog_chip_reset ( vos_chip_reset_reason_type reason )
-{
- return VOS_STATUS_SUCCESS;
-} /* vos_watchdog_chip_reset() */
-
/*---------------------------------------------------------------------------
\brief vos_sched_init_mqs: Initialize the vOSS Scheduler message queues
The \a vos_sched_init_mqs() function initializes the vOSS Scheduler
diff --git a/CORE/VOSS/src/vos_sched.h b/CORE/VOSS/src/vos_sched.h
index 0b7059432611..6dc346c027ff 100644
--- a/CORE/VOSS/src/vos_sched.h
+++ b/CORE/VOSS/src/vos_sched.h
@@ -72,7 +72,7 @@
#ifdef WLAN_OPEN_SOURCE
#include <linux/wakelock.h>
#endif
-#include <vos_power.h>
+#include <vos_mq.h>
#ifdef QCA_WIFI_2_0
#include <adf_os_types.h>
#endif
@@ -330,8 +330,6 @@ typedef struct _VosWatchdogContext
v_BOOL_t resetInProgress;
- vos_chip_reset_reason_type reason;
-
/* Lock for preventing multiple reset being triggered simultaneously */
spinlock_t wdLock;
@@ -646,7 +644,6 @@ void vos_sched_deinit_mqs (pVosSchedContext pSchedContext);
void vos_sched_flush_mc_mqs (pVosSchedContext pSchedContext);
void vos_sched_flush_tx_mqs (pVosSchedContext pSchedContext);
void vos_sched_flush_rx_mqs (pVosSchedContext pSchedContext);
-VOS_STATUS vos_watchdog_chip_reset ( vos_chip_reset_reason_type reason );
void clearWlanResetReason(void);
void vos_timer_module_init( void );
diff --git a/CORE/VOSS/src/vos_trace.c b/CORE/VOSS/src/vos_trace.c
index e85e954515d9..e965d69640fa 100644
--- a/CORE/VOSS/src/vos_trace.c
+++ b/CORE/VOSS/src/vos_trace.c
@@ -448,10 +448,11 @@ void vos_trace_hex_dump( VOS_MODULE_ID module, VOS_TRACE_LEVEL level,
/*-----------------------------------------------------------------------------
\brief vosTraceEnable() - Enable MTRACE for specific modules whose bits are
- set in bitmask. set the bitmask according to enum value of the modules.
+ set in bitmask and enable is true. if enable is false it disables MTRACE for
+ that module. set the bitmask according to enum value of the modules.
this functions will be called when you issue ioctl as mentioned following
- [iwpriv wlan0 setdumplog <value>].
+ [iwpriv wlan0 setdumplog <value> <enable>].
<value> - Decimal number, i.e. 64 decimal value shows only SME module,
128 decimal value shows only PE module, 192 decimal value shows PE and SME.
@@ -460,31 +461,54 @@ void vos_trace_hex_dump( VOS_MODULE_ID module, VOS_TRACE_LEVEL level,
32 [dec] = 0010 0000 [bin] <enum of HDD is 5>
64 [dec] = 0100 0000 [bin] <enum of SME is 6>
128 [dec] = 1000 0000 [bin] <enum of PE is 7>
+ \param - enable - can be true or false.
+ True implies enabling MTRACE, false implies disabling MTRACE.
---------------------------------------------------------------------------*/
-void vosTraceEnable(v_U32_t bitmask_of_moduleId)
+void vosTraceEnable(v_U32_t bitmask_of_moduleId, v_U8_t enable)
{
int i;
if (bitmask_of_moduleId)
{
- for (i=0; i<VOS_MODULE_ID_MAX; i++)
+ for (i = 0; i < VOS_MODULE_ID_MAX; i++)
{
- if (!((bitmask_of_moduleId >> i) & 1 ))
+ if (((bitmask_of_moduleId >> i) & 1 ))
{
- vostraceRestoreCBTable[i] = vostraceCBTable[i];
- vostraceCBTable[i] = NULL;
+ if (enable)
+ {
+ if (NULL != vostraceRestoreCBTable[i])
+ {
+ vostraceCBTable[i] = vostraceRestoreCBTable[i];
+ }
+ }
+ else
+ {
+ vostraceRestoreCBTable[i] = vostraceCBTable[i];
+ vostraceCBTable[i] = NULL;
+ }
}
}
- }
- else
- {
- for (i=0; i<VOS_MODULE_ID_MAX; i++)
+ }
+ else
+ {
+ if (enable)
{
- if (NULL != vostraceRestoreCBTable[i])
+ for (i = 0; i < VOS_MODULE_ID_MAX; i++)
{
- vostraceCBTable[i] = vostraceRestoreCBTable[i];
+ if (NULL != vostraceRestoreCBTable[i])
+ {
+ vostraceCBTable[i] = vostraceRestoreCBTable[i];
+ }
}
}
- }
+ else
+ {
+ for (i = 0; i < VOS_MODULE_ID_MAX; i++)
+ {
+ vostraceRestoreCBTable[i] = vostraceCBTable[i];
+ vostraceCBTable[i] = NULL;
+ }
+ }
+ }
}
/*-----------------------------------------------------------------------------
@@ -525,7 +549,7 @@ void vosTraceInit()
void vos_trace(v_U8_t module, v_U8_t code, v_U8_t session, v_U32_t data)
{
tpvosTraceRecord rec = NULL;
-
+ unsigned long flags;
if (!gvosTraceData.enable)
{
@@ -538,7 +562,7 @@ void vos_trace(v_U8_t module, v_U8_t code, v_U8_t session, v_U32_t data)
}
/* Aquire the lock so that only one thread at a time can fill the ring buffer */
- spin_lock(&ltraceLock);
+ spin_lock_irqsave(&ltraceLock, flags);
gvosTraceData.num++;
@@ -582,7 +606,7 @@ void vos_trace(v_U8_t module, v_U8_t code, v_U8_t session, v_U32_t data)
rec->time = vos_timer_get_system_time();
rec->module = module;
gvosTraceData.numSinceLastDump ++;
- spin_unlock(&ltraceLock);
+ spin_unlock_irqrestore(&ltraceLock, flags);
}
diff --git a/CORE/WDA/inc/legacy/halMsgApi.h b/CORE/WDA/inc/legacy/halMsgApi.h
index 16b9b7b83034..3fdb22a20b1d 100644
--- a/CORE/WDA/inc/legacy/halMsgApi.h
+++ b/CORE/WDA/inc/legacy/halMsgApi.h
@@ -286,6 +286,7 @@ typedef struct
#ifdef WLAN_FEATURE_11AC
tANI_U8 vhtCapable;
tANI_U8 vhtTxChannelWidthSet;
+ tANI_U8 vhtSupportedRxNss;
tANI_U8 vhtTxBFCapable;
tANI_U8 vhtTxMUBformeeCapable;
tANI_U8 enableVhtpAid;
@@ -912,6 +913,14 @@ typedef struct
typedef struct
{
+ tANI_U16 rxNss;
+ tANI_U16 staId;
+ tANI_U16 smesessionId;
+ tSirMacAddr peer_mac;
+}tUpdateRxNss, *tpUpdateRxNss;
+
+typedef struct
+{
tANI_U32 membership;
tANI_U16 staId;
tANI_U16 smesessionId;
@@ -1418,6 +1427,9 @@ typedef struct sP2pPsParams
tANI_U8 sessionId;
}tP2pPsParams, *tpP2pPsParams;
+#define HAL_MAX_SUPP_CHANNELS 128
+#define HAL_MAX_SUPP_OPER_CLASSES 32
+
typedef struct sTdlsLinkEstablishParams
{
tANI_U16 staIdx;
@@ -1425,6 +1437,13 @@ typedef struct sTdlsLinkEstablishParams
tANI_U8 uapsdQueues;
tANI_U8 maxSp;
tANI_U8 isBufsta;
+ tANI_U8 isOffChannelSupported;
+ tANI_U8 peerCurrOperClass;
+ tANI_U8 selfCurrOperClass;
+ tANI_U8 validChannelsLen;
+ tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
+ tANI_U8 validOperClassesLen;
+ tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
tANI_U32 status;
}tTdlsLinkEstablishParams, *tpTdlsLinkEstablishParams;
diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h
index 2d4dd03d46b0..2a68a886a534 100644
--- a/CORE/WDA/inc/wlan_qct_wda.h
+++ b/CORE/WDA/inc/wlan_qct_wda.h
@@ -1263,6 +1263,7 @@ tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
#ifdef WLAN_FEATURE_11AC
#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
+#define WDA_UPDATE_RX_NSS SIR_HAL_UPDATE_RX_NSS
#define WDA_UPDATE_MEMBERSHIP SIR_HAL_UPDATE_MEMBERSHIP
#define WDA_UPDATE_USERPOS SIR_HAL_UPDATE_USERPOS
#endif
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index ee49881a4894..ece58ed9fcc2 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -1598,6 +1598,22 @@ VOS_STATUS WDA_prepareConfigTLV(v_PVOID_t pVosContext,
}
tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ sizeof(tHalCfg) + tlvStruct->length) ;
+
+ /* QWLAN_HAL_CFG_TDLS_OFF_CHANNEL_CAPABLE */
+ tlvStruct->type = QWLAN_HAL_CFG_TDLS_OFF_CHANNEL_CAPABLE;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+
+ if (wlan_cfgGetInt(pMac, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
+ configDataValue ) != eSIR_SUCCESS)
+ {
+ VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+ "Failed to get value for WNI_CFG_TDLS_BUF_STA_ENABLED");
+ goto handle_failure;
+ }
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
#endif
/* QWLAN_HAL_CFG_ENABLE_ADAPTIVE_RX_DRAIN */
@@ -6821,6 +6837,21 @@ VOS_STATUS WDA_ProcessSetTdlsLinkEstablishReq(tWDA_CbContext *pWDA,
pTdlsLinkEstablishParams->maxSp;
wdiSetTDLSLinkEstablishReqParam->wdiTDLSLinkEstablishInfo.uIsBufSta =
pTdlsLinkEstablishParams->isBufsta;
+ wdiSetTDLSLinkEstablishReqParam->wdiTDLSLinkEstablishInfo.uIsOffChannelSupported =
+ pTdlsLinkEstablishParams->isOffChannelSupported;
+
+ vos_mem_copy(wdiSetTDLSLinkEstablishReqParam->wdiTDLSLinkEstablishInfo.validChannels,
+ pTdlsLinkEstablishParams->validChannels,
+ pTdlsLinkEstablishParams->validChannelsLen);
+
+ wdiSetTDLSLinkEstablishReqParam->wdiTDLSLinkEstablishInfo.validChannelsLen =
+ pTdlsLinkEstablishParams->validChannelsLen;
+
+ vos_mem_copy(wdiSetTDLSLinkEstablishReqParam->wdiTDLSLinkEstablishInfo.validOperClasses,
+ pTdlsLinkEstablishParams->validOperClasses,
+ pTdlsLinkEstablishParams->validOperClassesLen);
+ wdiSetTDLSLinkEstablishReqParam->wdiTDLSLinkEstablishInfo.validOperClassesLen =
+ pTdlsLinkEstablishParams->validOperClassesLen;
wdiSetTDLSLinkEstablishReqParam->wdiReqStatusCB = NULL ;
/* Store msg pointer from PE, as this will be used for response */
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi.h b/CORE/WDI/CP/inc/wlan_qct_wdi.h
index 89f83ddfa0aa..be13cd54598c 100644
--- a/CORE/WDI/CP/inc/wlan_qct_wdi.h
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi.h
@@ -3335,6 +3335,9 @@ typedef struct
void* pUserData;
}WDI_SetP2PGONOAReqParamsType;
+#define WDI_MAX_SUPP_CHANNELS 128
+#define WDI_MAX_SUPP_OPER_CLASSES 32
+
typedef struct
{
wpt_uint16 uStaIdx;
@@ -3342,6 +3345,13 @@ typedef struct
wpt_uint8 uUapsdQueues;
wpt_uint8 uMaxSp;
wpt_uint8 uIsBufSta;
+ wpt_uint8 uIsOffChannelSupported;
+ wpt_uint8 peerCurrOperClass;
+ wpt_uint8 selfCurrOperClass;
+ wpt_uint8 validChannelsLen;
+ wpt_uint8 validChannels[WDI_MAX_SUPP_CHANNELS];
+ wpt_uint8 validOperClassesLen;
+ wpt_uint8 validOperClasses[WDI_MAX_SUPP_OPER_CLASSES];
}WDI_SetTDLSLinkEstablishReqInfoType;
/*---------------------------------------------------------------------------
WDI_SetTDLSLinkEstablishReqParamsType
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index f5b2af7bb9e2..ce6e5ed685c7 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -12967,6 +12967,20 @@ WDI_ProcessTdlsLinkEstablishReq
halSetTDLSLinkEstablishParams.maxServicePeriodLength = (pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.uMaxSp & 0x03);
halSetTDLSLinkEstablishParams.moreDataAck = 0;
halSetTDLSLinkEstablishParams.TPUBufferStaSupport = pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.uIsBufSta;
+ halSetTDLSLinkEstablishParams.tdlsOffChannelSupport =
+ pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.uIsOffChannelSupported;
+
+ wpalMemoryCopy( halSetTDLSLinkEstablishParams.validChannels,
+ pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.validChannels,
+ pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.validChannelsLen);
+ halSetTDLSLinkEstablishParams.validChannelsLen =
+ pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.validChannelsLen;
+
+ wpalMemoryCopy( halSetTDLSLinkEstablishParams.validOperClasses,
+ pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.validOperClasses,
+ pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.validOperClassesLen);
+ halSetTDLSLinkEstablishParams.validOperClassesLen =
+ pwdiTDLSLinkEstablishReqParams->wdiTDLSLinkEstablishInfo.validOperClassesLen;
wpalMemoryCopy( pSendBuffer+usDataOffset,
&halSetTDLSLinkEstablishParams,
diff --git a/Kbuild b/Kbuild
index 6d1954945f4c..013f4afa2bd0 100644
--- a/Kbuild
+++ b/Kbuild
@@ -624,7 +624,6 @@ VOSS_OBJS := $(VOSS_SRC_DIR)/vos_api.o \
$(VOSS_SRC_DIR)/vos_mq.o \
$(VOSS_SRC_DIR)/vos_nvitem.o \
$(VOSS_SRC_DIR)/vos_packet.o \
- $(VOSS_SRC_DIR)/vos_power.o \
$(VOSS_SRC_DIR)/vos_sched.o \
$(VOSS_SRC_DIR)/vos_threads.o \
$(VOSS_SRC_DIR)/vos_timer.o \
diff --git a/firmware_bin/WCNSS_cfg.dat b/firmware_bin/WCNSS_cfg.dat
index 810533d48f70..875f900b2f58 100644
--- a/firmware_bin/WCNSS_cfg.dat
+++ b/firmware_bin/WCNSS_cfg.dat
Binary files differ
diff --git a/firmware_bin/WCNSS_qcom_cfg.ini b/firmware_bin/WCNSS_qcom_cfg.ini
index 26edac316034..4515a893cd7f 100755
--- a/firmware_bin/WCNSS_qcom_cfg.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.ini
@@ -462,7 +462,7 @@ gTrafficIdleTimeout=3000
gNumChanCombinedConc=60
#Enable Power Save offload
-gEnablePowerSaveOffload=2
+gEnablePowerSaveOffload=1
#Enable firmware uart print
gEnablefwprint=0
@@ -522,6 +522,15 @@ gEnable5gEBT=1
#Maximum number of offload peers supported
# gMaxOffloadPeers=2
+# controlling the following offload patterns
+# through ini parameter. Default value is 1
+# to disable set it to zero. ssdp = 0
+# Setup multicast pattern for mDNS 224.0.0.251,
+# SSDP 239.255.255.250 and LLMNR 224.0.0.252
+
+
+ssdp = 1
+
#Enable Hysteretic mode
gEnableHystereticMode=1