summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-02-09 19:40:53 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-02-09 19:42:46 +0530
commitabe66307dbf76ff66643f7a17a61840961096e38 (patch)
treea48fe9a9a50083083808f0cebbaa4d332741537f
parent0d56e7fd0c92d742d1769bcc62259ce4d0a77d1f (diff)
parentedd8337cc285d58f40b6cd9b0b44d8bba6de9b2d (diff)
Release 4.0.10.30 QCACLD WLAN Driver
Merge remote-tracking branch 'origin/caf/caf-wlan/master' * origin/caf/caf-wlan/master: Release 4.0.10.30 qcacld: HDD: Increase HDD_MOD_EXIT_SSR_MAX_RETRIES to 75. qcacld: CL 1179365 1186853 - update fw debug log file qcacld: CL 1221536 - update fw debug log file qca-cld:hdd: Remove gAutoChannelSelection from INI qcacld-2.0: Switch off the carrier in case of NULL bss qcacld-2.0: Replace memcpy with vos_mem_copy in VOSS qcacld-2.0: Remove unused hdd_is_apps_power_collapse_allowed qcacld-2.0: Output of gNeighborReassocThreshold is not getting update qcacld-2.0: HDD: Fix issues reported by Static Analysis tool wlan: Avoid the race conditon when disassoc ind is dropped. Change-Id: Icd5b3ba5286a314be3b93683a8b3cd6a5fe172e3
-rw-r--r--CORE/HDD/inc/qc_sap_ioctl.h3
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h20
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h3
-rw-r--r--CORE/HDD/src/wlan_hdd_assoc.c4
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c21
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c19
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c33
-rwxr-xr-xCORE/HDD/src/wlan_hdd_main.c147
-rw-r--r--CORE/HDD/src/wlan_hdd_wext.c45
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c10
-rw-r--r--CORE/SERVICES/COMMON/dbglog_id.h54
-rw-r--r--CORE/SYS/legacy/src/utils/src/parserApi.c6
-rw-r--r--CORE/VOSS/inc/vos_api.h3
-rw-r--r--CORE/VOSS/src/vos_api.c7
-rw-r--r--CORE/VOSS/src/vos_diag.c7
-rw-r--r--CORE/VOSS/src/vos_nvitem.c10
-rw-r--r--CORE/VOSS/src/vos_utils.c8
18 files changed, 139 insertions, 265 deletions
diff --git a/CORE/HDD/inc/qc_sap_ioctl.h b/CORE/HDD/inc/qc_sap_ioctl.h
index a9ff50b76cfe..80dd7da00570 100644
--- a/CORE/HDD/inc/qc_sap_ioctl.h
+++ b/CORE/HDD/inc/qc_sap_ioctl.h
@@ -199,8 +199,7 @@ enum {
QCSAP_PARAM_CLR_ACL = 4,
QCSAP_PARAM_ACL_MODE,
QCSAP_PARAM_HIDE_SSID,
- QCSAP_PARAM_AUTO_CHANNEL,
- QCSAP_PARAM_SET_MC_RATE,
+ QCSAP_PARAM_SET_MC_RATE = 8,
QCSAP_PARAM_SET_TXRX_FW_STATS,
QCSAP_PARAM_SET_MCC_CHANNEL_LATENCY,
QCSAP_PARAM_SET_MCC_CHANNEL_QUOTA,
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 9de32d109503..f7471f3b8edb 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1450,24 +1450,6 @@ typedef enum
#define HDD_MULTICAST_FILTER_LIST 0x04
#define HDD_MULTICAST_FILTER_LIST_CLEAR 0x05
-/*
- *
- * SAP Auto Channel Enable
- * Notes:
- * Auto Channel selection for SAP configuration
- * 0 - Disable Auto Channel
- * 1 - Enable auto channel selection in auto mode.
- * When enable auto channel, channel provided by Supplicant will be ignored.
- *
- * Default configuration: Auto channel is disabled.
- */
-
-#define CFG_SAP_AUTO_CHANNEL_SELECTION_NAME "gApAutoChannelSelection"
-
-#define CFG_SAP_AUTO_CHANNEL_SELECTION_MIN ( 0 )
-#define CFG_SAP_AUTO_CHANNEL_SELECTION_MAX ( 1 )
-#define CFG_SAP_AUTO_CHANNEL_SELECTION_DEFAULT ( 0 )
-
#define CFG_ONLY_ALLOWED_CHANNELS "gACSAllowedChannels"
#define CFG_ONLY_ALLOWED_CHANNELS_DEFAULT ""
@@ -2839,7 +2821,6 @@ typedef struct
v_U8_t apStartChannelNum;
v_U8_t apEndChannelNum;
v_U8_t apOperatingBand;
- v_BOOL_t apAutoChannelSelection;
v_BOOL_t apForce11ACFor11n;
v_U8_t enableLTECoex;
v_U32_t apKeepAlivePeriod;
@@ -3377,7 +3358,6 @@ typedef struct mbssid_sap_dyn_ini_config {
v_U8_t apStartChannelNum;
v_U8_t apEndChannelNum;
v_U8_t apOperatingBand;
- v_BOOL_t apAutoChannelSelection;
char acsAllowedChnls[CFG_MAX_STR_LEN];
v_U8_t acsScanBandPreference;
v_U16_t acsBandSwitchThreshold;
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index e66924487825..6562b4f17c42 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -195,7 +195,7 @@
#define WLAN_HDD_QOS_MAP_CONFIGURE 4
#define HDD_SAP_WAKE_LOCK_DURATION 10000 //in msecs
-#define HDD_MOD_EXIT_SSR_MAX_RETRIES 60
+#define HDD_MOD_EXIT_SSR_MAX_RETRIES 75
/* Maximum number of interfaces allowed(STA, P2P Device, P2P Interfaces) */
#ifndef WLAN_OPEN_P2P_INTERFACE
@@ -1587,7 +1587,6 @@ void hdd_set_conparam ( v_UINT_t newParam );
tVOS_CON_MODE hdd_get_conparam( void );
void wlan_hdd_enable_deepsleep(v_VOID_t * pVosContext);
-v_BOOL_t hdd_is_apps_power_collapse_allowed(hdd_context_t* pHddCtx);
v_BOOL_t hdd_is_suspend_notify_allowed(hdd_context_t* pHddCtx);
void hdd_abort_mac_scan(hdd_context_t* pHddCtx, tANI_U8 sessionId,
eCsrAbortReason reason);
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index fd54e47dbeff..f1e8f822ca54 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -1576,9 +1576,9 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs
/* add bss_id to cfg80211 data base */
bss = wlan_hdd_cfg80211_update_bss_db(pAdapter, pRoamInfo);
- if (NULL == bss)
- {
+ if (NULL == bss) {
pr_err("wlan: Not able to create BSS entry\n");
+ netif_carrier_off(dev);
return eHAL_STATUS_FAILURE;
}
#ifdef WLAN_FEATURE_VOWIFI_11R
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 18942087f3ac..4d593e57370c 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -731,16 +731,6 @@ REG_TABLE_ENTRY g_registry_table[] =
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,
- hdd_config_t, apAutoChannelSelection,
-#ifndef WLAN_FEATURE_MBSSID
- VAR_FLAGS_DYNAMIC_CFG |
-#endif
- 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,
hdd_config_t, enableLTECoex,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -3605,15 +3595,6 @@ REG_TABLE_ENTRY mbssid_sap_dyn_ini_reg_table[] =
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,
- mbssid_sap_dyn_ini_config_t, apAutoChannelSelection,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT
- | VAR_FLAGS_DYNAMIC_CFG,
- CFG_SAP_AUTO_CHANNEL_SELECTION_DEFAULT,
- CFG_SAP_AUTO_CHANNEL_SELECTION_MIN,
- CFG_SAP_AUTO_CHANNEL_SELECTION_MAX ),
-
-
REG_VARIABLE_STRING( CFG_ONLY_ALLOWED_CHANNELS, WLAN_PARAM_String,
mbssid_sap_dyn_ini_config_t, acsAllowedChnls,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_DYNAMIC_CFG,
@@ -3884,7 +3865,6 @@ void print_hdd_cfg(hdd_context_t *pHddCtx)
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableListenMode] Value = [%u]", pHddCtx->cfg_ini->nEnableListenMode);
VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApProtection] value = [%u]",pHddCtx->cfg_ini->apProtection);
VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableApOBSSProt] value = [%u]",pHddCtx->cfg_ini->apOBSSProtEnabled);
- VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApAutoChannelSelection] value = [%u]",pHddCtx->cfg_ini->apAutoChannelSelection);
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
VOS_TRACE (VOS_MODULE_ID_HDD,
VOS_TRACE_LEVEL_INFO_HIGH,
@@ -4785,7 +4765,6 @@ v_VOID_t hdd_mbssid_apply_def_cfg_ini(hdd_adapter_t *pAdapter)
sap_ini_cfg->apStartChannelNum = iniConfig->apStartChannelNum;
sap_ini_cfg->apEndChannelNum = iniConfig->apEndChannelNum;
sap_ini_cfg->apOperatingBand = iniConfig->apOperatingBand;
- sap_ini_cfg->apAutoChannelSelection = iniConfig->apAutoChannelSelection;
sap_ini_cfg->acsScanBandPreference = iniConfig->acsScanBandPreference;
sap_ini_cfg->acsBandSwitchThreshold = iniConfig->acsBandSwitchThreshold;
vos_mem_copy(sap_ini_cfg->acsAllowedChnls, iniConfig->acsAllowedChnls,
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index c51b21e63101..db0e29e9efbe 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -4541,15 +4541,12 @@ static int wlan_hdd_config_acs(hdd_context_t *hdd_ctx, hdd_adapter_t *adapter)
#ifdef WLAN_FEATURE_MBSSID
sap_config->acsBandSwitchThreshold =
adapter->sap_dyn_ini_cfg.acsBandSwitchThreshold;
- sap_config->apAutoChannelSelection =
- adapter->sap_dyn_ini_cfg.apAutoChannelSelection;
sap_config->apStartChannelNum =
adapter->sap_dyn_ini_cfg.apStartChannelNum;
sap_config->apEndChannelNum =
adapter->sap_dyn_ini_cfg.apEndChannelNum;
#else
sap_config->acsBandSwitchThreshold = ini_config->acsBandSwitchThreshold;
- sap_config->apAutoChannelSelection = ini_config->apAutoChannelSelection;
sap_config->apStartChannelNum = ini_config->apStartChannelNum;
sap_config->apEndChannelNum = ini_config->apEndChannelNum;
#endif
@@ -4737,6 +4734,7 @@ static int wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
sap_config = &adapter->sessionCtx.ap.sapConfig;
sap_config->channel = AUTO_CHANNEL_SELECT;
+ sap_config->apAutoChannelSelection = VOS_TRUE;
#ifdef WLAN_FEATURE_MBSSID
/*
* Check if AP+AP case, once primary AP chooses a DFS
@@ -6562,12 +6560,8 @@ static int wlan_hdd_cfg80211_set_channel( struct wiphy *wiphy, struct net_device
channel set by supplicant
*/
#ifndef QCA_HT_2040_COEX
-#ifdef WLAN_FEATURE_MBSSID
- if (pAdapter->sap_dyn_ini_cfg.apAutoChannelSelection)
-#else
- hdd_config_t *cfg_param = (WLAN_HDD_GET_CTX(pAdapter))->cfg_ini;
- if (cfg_param->apAutoChannelSelection)
-#endif
+ if ((WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->
+ sapConfig.apAutoChannelSelection)
{
(WLAN_HDD_GET_AP_CTX_PTR(pAdapter))->sapConfig.channel =
AUTO_CHANNEL_SELECT;
@@ -9124,9 +9118,6 @@ static int __wlan_hdd_cfg80211_get_key(
ENTER();
- MTRACE(vos_trace(VOS_MODULE_ID_HDD,
- TRACE_CODE_HDD_CFG80211_GET_KEY,
- pAdapter->sessionId, params.cipher));
hddLog(LOG1, FL("Device_mode %s(%d)"),
hdd_device_mode_to_string(pAdapter->device_mode),
pAdapter->device_mode);
@@ -9166,6 +9157,10 @@ static int __wlan_hdd_cfg80211_get_key(
break;
}
+ MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+ TRACE_CODE_HDD_CFG80211_GET_KEY,
+ pAdapter->sessionId, params.cipher));
+
params.key_len = pRoamProfile->Keys.KeyLength[key_index];
params.seq_len = 0;
params.seq = NULL;
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 08af58d97564..c6f9b287b2e8 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -2214,24 +2214,6 @@ static iw_softap_setparam(struct net_device *dev,
}
break;
- case QCSAP_PARAM_AUTO_CHANNEL:
- if ((0 != set_value) && (1 != set_value))
- {
- hddLog(LOGE, FL("Invalid setAutoChannel value %d"), set_value);
- ret = -EINVAL;
- }
- else
- {
-#ifdef WLAN_FEATURE_MBSSID
- pHostapdAdapter->sap_dyn_ini_cfg.apAutoChannelSelection =
- set_value;
-#else
- (WLAN_HDD_GET_CTX
- (pHostapdAdapter))->cfg_ini->apAutoChannelSelection = set_value;
-#endif
- }
- break;
-
case QCSAP_PARAM_SET_CHANNEL_CHANGE:
if ( WLAN_HDD_SOFTAP == pHostapdAdapter->device_mode )
{
@@ -2869,17 +2851,6 @@ static iw_softap_getparam(struct net_device *dev,
break;
}
- case QCSAP_PARAM_AUTO_CHANNEL:
- {
-#ifdef WLAN_FEATURE_MBSSID
- *value = pHostapdAdapter->sap_dyn_ini_cfg.apAutoChannelSelection;
-#else
- *value = (WLAN_HDD_GET_CTX
- (pHostapdAdapter))->cfg_ini->apAutoChannelSelection;
-#endif
- break;
- }
-
case QCSAP_PARAM_RTSCTS:
{
*value = wma_cli_get_command(pHddCtx->pvosContext,
@@ -4651,8 +4622,6 @@ static const struct iw_priv_args hostapd_private_args[] = {
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setMccLatency" },
{ QCSAP_PARAM_SET_MCC_CHANNEL_QUOTA,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setMccQuota" },
- { QCSAP_PARAM_AUTO_CHANNEL,
- IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setAutoChannel" },
{ QCSAP_PARAM_SET_CHANNEL_CHANGE,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setChanChange" },
@@ -4845,8 +4814,6 @@ static const struct iw_priv_args hostapd_private_args[] = {
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getMaxAssoc" },
{ QCSAP_PARAM_GET_WLAN_DBG, 0,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getwlandbg" },
- { QCSAP_PARAM_AUTO_CHANNEL, 0,
- IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getAutoChannel" },
{ QCSAP_GTX_BWMASK, 0,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_gtxBWMask" },
{ QCSAP_GTX_MINTPC, 0,
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index d79d23b30d30..f0b0f6982c44 100755
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -5531,6 +5531,8 @@ static int hdd_driver_command(hdd_adapter_t *pAdapter,
}
/* Set Reassoc threshold to (lookup rssi threshold + 5 dBm) */
+ pHddCtx->cfg_ini->nNeighborReassocRssiThreshold =
+ lookUpThreshold + 5;
sme_setNeighborReassocRssiThreshold(pHddCtx->hHal,
pAdapter->sessionId,
lookUpThreshold + 5);
@@ -13792,62 +13794,6 @@ tVOS_CONCURRENCY_MODE hdd_get_concurrency_mode ( void )
return VOS_STA;
}
-/* Decide whether to allow/not the apps power collapse.
- * Allow apps power collapse if we are in connected state.
- * if not, allow only if we are in IMPS */
-v_BOOL_t hdd_is_apps_power_collapse_allowed(hdd_context_t* pHddCtx)
-{
- tPmcState pmcState = pmcGetPmcState(pHddCtx->hHal);
- tANI_BOOLEAN scanRspPending;
- tANI_BOOLEAN inMiddleOfRoaming;
- hdd_config_t *pConfig = pHddCtx->cfg_ini;
- hdd_adapter_list_node_t *pAdapterNode = NULL, *pNext = NULL;
- hdd_adapter_t *pAdapter = NULL;
- VOS_STATUS status;
- tVOS_CONCURRENCY_MODE concurrent_state = 0;
-
- if (VOS_STA_SAP_MODE == hdd_get_conparam())
- return TRUE;
-
- concurrent_state = hdd_get_concurrency_mode();
-
-#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
- if(((concurrent_state == (VOS_STA | VOS_P2P_CLIENT)) ||
- (concurrent_state == (VOS_STA | VOS_P2P_GO))) &&
- (IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE))
- return TRUE;
-#endif
-
- /*loop through all adapters. TBD fix for Concurrency */
- status = hdd_get_front_adapter ( pHddCtx, &pAdapterNode );
- while ( NULL != pAdapterNode && VOS_STATUS_SUCCESS == status )
- {
- pAdapter = pAdapterNode->pAdapter;
- if ( (WLAN_HDD_INFRA_STATION == pAdapter->device_mode)
- || (WLAN_HDD_P2P_CLIENT == pAdapter->device_mode) )
- {
- scanRspPending = csrNeighborRoamScanRspPending(pHddCtx->hHal,
- pAdapter->sessionId);
- inMiddleOfRoaming = csrNeighborMiddleOfRoaming(pHddCtx->hHal,
- pAdapter->sessionId);
- if (((pConfig->fIsImpsEnabled || pConfig->fIsBmpsEnabled)
- && (pmcState != IMPS && pmcState != BMPS
- && pmcState != STOPPED && pmcState != STANDBY)) ||
- (eANI_BOOLEAN_TRUE == scanRspPending) ||
- (eANI_BOOLEAN_TRUE == inMiddleOfRoaming))
- {
- hddLog( LOGE, "%s: do not allow APPS power collapse-"
- "pmcState = %d scanRspPending = %d inMiddleOfRoaming = %d",
- __func__, pmcState, scanRspPending, inMiddleOfRoaming );
- return FALSE;
- }
- }
- status = hdd_get_next_adapter ( pHddCtx, pAdapterNode, &pNext );
- pAdapterNode = pNext;
- }
- return TRUE;
-}
-
/* Decides whether to send suspend notification to Riva
* if any adapter is in BMPS; then it is required */
v_BOOL_t hdd_is_suspend_notify_allowed(hdd_context_t* pHddCtx)
@@ -14205,6 +14151,8 @@ void hdd_ch_avoid_cb
static int restart_sap_in_progress = 0;
tHddAvoidFreqList hdd_avoid_freq_list;
tANI_U32 i;
+ hdd_adapter_list_node_t *adapter_node = NULL, *next = NULL;
+ VOS_STATUS status;
/* Basic sanity */
if (!hdd_context || !indi_param)
@@ -14317,45 +14265,56 @@ void hdd_ch_avoid_cb
}
#endif
- /* If auto channel select is enabled
- * preferred channel is in safe channel,
- * re-start softap interface with safe channel.
- * no overlap with preferred channel and safe channel
- * do not re-start softap interface
- * stay current operating channel. */
- if ((hdd_ctxt->cfg_ini->apAutoChannelSelection) &&
- (!hdd_find_prefd_safe_chnl(hdd_ctxt))) {
- return;
- }
+ if (0 == hdd_ctxt->unsafe_channel_count)
+ return;
- if (hdd_ctxt->unsafe_channel_count) {
- hostapd_adapter = hdd_get_adapter(hdd_ctxt, WLAN_HDD_SOFTAP);
- if (hostapd_adapter)
- {
- VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
- "%s : Current operation channel %d, sessionCtx.ap.sapConfig.channel %d",
- __func__,
- hostapd_adapter->sessionCtx.ap.operatingChannel,
- hostapd_adapter->sessionCtx.ap.sapConfig.channel);
- for (channel_loop = 0; channel_loop < hdd_ctxt->unsafe_channel_count; channel_loop++)
- {
- if (((hdd_ctxt->unsafe_channel_list[channel_loop] ==
- hostapd_adapter->sessionCtx.ap.operatingChannel)) &&
- (hostapd_adapter->sessionCtx.ap.sapConfig.acs_case == true) &&
- !restart_sap_in_progress)
- {
- VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
- "%s: Restarting SAP", __func__);
- wlan_hdd_send_svc_nlink_msg(WLAN_SVC_LTE_COEX_IND, NULL, 0);
- restart_sap_in_progress = 1;
- /* current operating channel is un-safe channel, restart driver */
- hdd_hostapd_stop(hostapd_adapter->dev);
- break;
- }
- }
- }
- }
- return;
+ status = hdd_get_front_adapter(hdd_ctxt, &adapter_node);
+ while (NULL != adapter_node && VOS_STATUS_SUCCESS == status) {
+ hostapd_adapter = adapter_node->pAdapter;
+
+ if( hostapd_adapter && (WLAN_HDD_SOFTAP ==
+ hostapd_adapter->device_mode)) {
+ /* If auto channel select is enabled
+ * preferred channel is in safe channel,
+ * re-start softap interface with safe channel.
+ * no overlap with preferred channel and safe channel
+ * do not re-start softap interface
+ * stay current operating channel.
+ */
+ if ((hostapd_adapter->sessionCtx.ap.sapConfig.
+ apAutoChannelSelection) &&
+ (!hdd_find_prefd_safe_chnl(hdd_ctxt)))
+ return;
+
+ hddLog(LOG1, FL("Current operation channel %d"),
+ hostapd_adapter->sessionCtx.ap.operatingChannel);
+
+ hddLog(LOG1, FL("sessionCtx.ap.sapConfig.channel %d"),
+ hostapd_adapter->sessionCtx.ap.sapConfig.channel);
+
+ for (channel_loop = 0;
+ channel_loop < hdd_ctxt->unsafe_channel_count;
+ channel_loop++) {
+ if (((hdd_ctxt->unsafe_channel_list[channel_loop] ==
+ hostapd_adapter->sessionCtx.ap.operatingChannel)) &&
+ (hostapd_adapter->sessionCtx.ap.sapConfig.acs_case == true)
+ && !restart_sap_in_progress) {
+
+ hddLog(LOG1, FL("Restarting SAP"));
+ wlan_hdd_send_svc_nlink_msg(WLAN_SVC_LTE_COEX_IND, NULL, 0);
+ restart_sap_in_progress = 1;
+ /* current operating channel is un-safe channel,
+ * restart driver
+ */
+ hdd_hostapd_stop(hostapd_adapter->dev);
+ return;
+ }
+ }
+ }
+ status = hdd_get_next_adapter (hdd_ctxt, adapter_node, &next);
+ adapter_node = next;
+ }
+ return;
}
#endif /* FEATURE_WLAN_CH_AVOID */
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index 7ae1967f0a27..f48137512786 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -145,7 +145,7 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2},
#define WE_WOWL 2
#define WE_SET_POWER 3
#define WE_SET_MAX_ASSOC 4
-#define WE_SET_SAP_AUTO_CHANNEL_SELECTION 5
+/* 5 is unused */
#define WE_SET_DATA_INACTIVITY_TO 6
#define WE_SET_MAX_TX_POWER 7
#define WE_SET_HIGHER_DTIM_TRANSITION 8
@@ -245,7 +245,7 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2},
#define WE_GET_WLAN_DBG 4
#define WE_GET_MAX_ASSOC 6
/* 7 is unused */
-#define WE_GET_SAP_AUTO_CHANNEL_SELECTION 8
+/* 8 is unused */
#define WE_GET_CONCURRENCY_MODE 9
#define WE_GET_NSS 11
#define WE_GET_LDPC 12
@@ -5289,27 +5289,6 @@ static int iw_setint_getnone(struct net_device *dev, struct iw_request_info *inf
break;
}
- case WE_SET_SAP_AUTO_CHANNEL_SELECTION:
- {
- if (set_value == 0 || set_value == 1)
- {
-#ifdef WLAN_FEATURE_MBSSID
- pAdapter->sap_dyn_ini_cfg.apAutoChannelSelection = set_value;
-#else
- (WLAN_HDD_GET_CTX(pAdapter))->cfg_ini->apAutoChannelSelection
- = set_value;
-#endif
- }
- else
- {
- hddLog(LOGE,
- "Invalid arg %d in WE_SET_SAP_AUTO_CHANNEL_SELECTION IOCTL",
- set_value);
- ret = -EINVAL;
- }
- break;
- }
-
case WE_SET_DATA_INACTIVITY_TO:
{
if ((set_value < CFG_DATA_INACTIVITY_TIMEOUT_MIN) ||
@@ -6518,16 +6497,6 @@ static int iw_setnone_getint(struct net_device *dev, struct iw_request_info *inf
}
break;
}
-
- case WE_GET_SAP_AUTO_CHANNEL_SELECTION:
- {
-#ifdef WLAN_FEATURE_MBSSID
- *value = pAdapter->sap_dyn_ini_cfg.apAutoChannelSelection;
-#else
- *value = (WLAN_HDD_GET_CTX(pAdapter))->cfg_ini->apAutoChannelSelection;
-#endif
- break;
- }
case WE_GET_CONCURRENCY_MODE:
{
*value = hdd_get_concurrency_mode ( );
@@ -9968,11 +9937,6 @@ static const struct iw_priv_args we_private_args[] = {
0,
"setMaxAssoc" },
- { WE_SET_SAP_AUTO_CHANNEL_SELECTION,
- IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
- 0,
- "setAutoChannel" },
-
{ WE_SET_DATA_INACTIVITY_TO,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
0,
@@ -10379,11 +10343,6 @@ static const struct iw_priv_args we_private_args[] = {
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
"getMaxAssoc" },
- { WE_GET_SAP_AUTO_CHANNEL_SELECTION,
- 0,
- IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
- "getAutoChannel" },
-
{ WE_GET_CONCURRENCY_MODE,
0,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h
index 7f6da09a675d..5a4f3813f8b1 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 10
#define QWLAN_VERSION_EXTRA ""
-#define QWLAN_VERSION_BUILD 29
+#define QWLAN_VERSION_BUILD 30
-#define QWLAN_VERSIONSTR "4.0.10.29"
+#define QWLAN_VERSIONSTR "4.0.10.30"
#define AR6320_REV1_VERSION 0x5000000
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index a5e53495ce8a..2b4b22d6991c 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -3031,15 +3031,17 @@ __limProcessSmeDeauthReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
break;
case eLIM_SME_WT_DEAUTH_STATE:
+ case eLIM_SME_WT_DISASSOC_STATE:
/*
- * PE Recieved a Deauth frame. Normally it gets
- * DEAUTH_CNF but it received DEAUTH_REQ. Which
+ * PE Recieved a Deauth/Disassoc frame. Normally it gets
+ * DEAUTH_CNF/DISASSOC_CNF but it received DEAUTH_REQ. Which
* means host is also trying to disconnect.
* PE can continue processing DEAUTH_REQ and send
* the response instead of failing the request.
- * SME will anyway ignore DEAUTH_IND that was sent
- * for deauth frame.
+ * SME will anyway ignore DEAUTH_IND/DISASSOC_IND that
+ * was sent for deauth/disassoc frame.
*/
+ psessionEntry->limSmeState = eLIM_SME_WT_DEAUTH_STATE;
limLog(pMac, LOG1, FL("Rcvd SME_DEAUTH_REQ while in "
"SME_WT_DEAUTH_STATE. "));
break;
diff --git a/CORE/SERVICES/COMMON/dbglog_id.h b/CORE/SERVICES/COMMON/dbglog_id.h
index d5b92b82bb45..c4dd32e87ad9 100644
--- a/CORE/SERVICES/COMMON/dbglog_id.h
+++ b/CORE/SERVICES/COMMON/dbglog_id.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -688,7 +688,6 @@ extern "C" {
#define WAL_DBGID_RESUME 67
#define WAL_DBGID_PEER_TX_FAIL_CNT_THRES_EXCEEDED 68
#define WAL_DBGID_RX_FULL_REORDER_SUPPORT 69
-#if defined(AR900B)
#define WAL_DBGID_HCM_BIN 70
#define WAL_DBGID_HCM_BIN_PENALIZE 71
#define WAL_DBGID_HCM_BIN_DEPENALIZE 72
@@ -697,11 +696,14 @@ extern "C" {
#define WAL_DBGID_TX_AC_BUFFER_SET 75
#define WAL_DBGID_AST_ENTRY_EXIST 76
#define WAL_DBGID_AST_ENTRY_FULL 77
-#define WAL_DBGID_DEFINITION_END 78
-#else
-#define WAL_DBGID_DEFINITION_END 70
-#endif
-
+#define WAL_DBGID_WMMAC_TXQ_STATUS 78
+#define WAL_DBGID_PROLONGED_TX_PPDU_TOTAL_US 79
+#define WAL_DBGID_UPDATE_USED_TIME 80
+#define WAL_DBGID_PAST_WB_ACK_TIMESTAMP 81
+#define WAL_DBGID_WMMAC_ADD_DEL_TSPEC 82
+#define WAL_DBGID_WMMAC_TIMER_EXPIRY 83
+#define WAL_DBGID_WMMAC_PARAMS 84
+#define WAL_DBGID_DEFINITION_END 85
#define ANI_DBGID_POLL 0
#define ANI_DBGID_CONTROL 1
#define ANI_DBGID_OFDM_PARAMS 2
@@ -1447,6 +1449,44 @@ extern "C" {
#define NLO_DBGID_SSID_TO_BE_SCANNED_LIST 0
#define NLO_DBGID_SSID_TO_BE_SKIPPED_LIST 1
+/* DSRC DBGIDs */
+#define OCB_DBGID_VDEV_CREATE 0
+#define OCB_DBGID_VDEV_DELETE 1
+#define OCB_DBGID_CHAN_PAUSE 2
+#define OCB_DBGID_CHAN_UNPAUSE 3
+#define OCB_DBGID_PEER_CREATE 4
+#define OCB_DBGID_PEER_DELETE 5
+#define OCB_DBGID_DCC_START 6
+#define OCB_DBGID_DCC_STOP 7
+#define OCB_DBGID_SET_CONFIG_CMD 8
+#define OCB_DBGID_SET_UTC_TIME_CMD 9
+#define OCB_DBGID_START_TIMING_ADVERT_CMD 10
+#define OCB_DBGID_STOP_TIMING_ADVERT_CMD 11
+#define OCB_DBGID_GET_TSF_TIMER_CMD 12
+#define OCB_DBGID_GET_DCC_STATS_CMD 13
+#define OCB_DBGID_UPDATE_DCC_NDL_CMD 14
+#define OCB_DBGID_SET_CONFIG_RESP_EVENT 15
+#define OCB_DBGID_GET_TSF_TIMER_RESP_EVENT 16
+#define OCB_DBGID_GET_DCC_STATS_RESP_EVENT 17
+#define OCB_DBGID_DCC_STATS_EVENT 18
+#define OCB_UPDATE_DCC_NDL_RESP_EVENT 19
+#define OCB_DBGID_GENERIC 20
+/* Up to 255 reserved for OCB debug IDs */
+
+#define DCC_DBGID_START 256
+#define DCC_DBGID_STOP 257
+#define DCC_DBGID_DCC_STATS_EVENT 258
+#define DCC_DBGID_SM_INIT 259
+#define DCC_DBGID_SM_EVENT 260
+#define DCC_DBGID_SM_CHANGE 261
+#define DCC_DBGID_GET_TX_ALLOWED 262
+#define DCC_DBGID_NOTIFY_TX_COMPLETION 263
+#define DCC_DBGID_NOTIFY_RX 264
+#define DCC_DBGID_GET_TX_POWER 265
+#define DCC_DBGID_GET_TX_RATE 266
+#define DCC_DBGID_TICKLE_SCHED 267
+#define DCC_DBGID_GENERIC 268
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c
index 20416dc2a0a4..2ceda7db3085 100644
--- a/CORE/SYS/legacy/src/utils/src/parserApi.c
+++ b/CORE/SYS/legacy/src/utils/src/parserApi.c
@@ -2013,10 +2013,10 @@ sirConvertProbeReqFrame2Struct(tpAniSirGlobal pMac,
vos_mem_copy( &pProbeReq->HTCaps, &pr.HTCaps, sizeof( tDot11fIEHTCaps ) );
}
- if ( pr.WscProbeReq.present )
- {
+ if (pr.WscProbeReq.present) {
pProbeReq->wscIePresent = 1;
- memcpy(&pProbeReq->probeReqWscIeInfo, &pr.WscProbeReq, sizeof(tDot11fIEWscProbeReq));
+ vos_mem_copy(&pProbeReq->probeReqWscIeInfo, &pr.WscProbeReq,
+ sizeof(tDot11fIEWscProbeReq));
}
#ifdef WLAN_FEATURE_11AC
if ( pr.VHTCaps.present )
diff --git a/CORE/VOSS/inc/vos_api.h b/CORE/VOSS/inc/vos_api.h
index 692bb071a3c4..8782810e4ab0 100644
--- a/CORE/VOSS/inc/vos_api.h
+++ b/CORE/VOSS/inc/vos_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -252,7 +252,6 @@ VOS_STATUS vos_alloc_context( v_VOID_t *pVosContext, VOS_MODULE_ID moduleID,
VOS_STATUS vos_free_context( v_VOID_t *pVosContext, VOS_MODULE_ID moduleID,
v_VOID_t *pModuleContext );
-v_BOOL_t vos_is_apps_power_collapse_allowed(void* pHddCtx);
void vos_abort_mac_scan(tANI_U8 sessionId);
/**
diff --git a/CORE/VOSS/src/vos_api.c b/CORE/VOSS/src/vos_api.c
index 725b0eb28207..291a5ff5b4d7 100644
--- a/CORE/VOSS/src/vos_api.c
+++ b/CORE/VOSS/src/vos_api.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -2017,11 +2017,6 @@ vos_fetch_tl_cfg_parms
}
-v_BOOL_t vos_is_apps_power_collapse_allowed(void* pHddCtx)
-{
- return hdd_is_apps_power_collapse_allowed((hdd_context_t*) pHddCtx);
-}
-
void vos_abort_mac_scan(v_U8_t sessionId)
{
hdd_context_t *pHddCtx = NULL;
diff --git a/CORE/VOSS/src/vos_diag.c b/CORE/VOSS/src/vos_diag.c
index 89de189ecf48..9c4da903cfa8 100644
--- a/CORE/VOSS/src/vos_diag.c
+++ b/CORE/VOSS/src/vos_diag.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -171,8 +171,7 @@ void vos_log_submit(v_VOID_t *plog_hdr_ptr)
*(v_U32_t*)pBuf = DIAG_TYPE_LOGS;
pBuf += sizeof(v_U32_t);
-
- memcpy(pBuf, pHdr,data_len);
+ vos_mem_copy(pBuf, pHdr, data_len);
if(pHddCtx->ptt_pid != INVALID_PID)
{
@@ -244,7 +243,7 @@ void vos_event_report_payload(v_U16_t event_Id, v_U16_t length, v_VOID_t *pPaylo
pBuf += sizeof(event_report_t);
- memcpy(pBuf, pPayload,length);
+ vos_mem_copy(pBuf, pPayload, length);
if( ptt_sock_send_msg_to_app(wmsg, 0, ANI_NL_MSG_PUMAC, pHddCtx->ptt_pid) < 0) {
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
diff --git a/CORE/VOSS/src/vos_nvitem.c b/CORE/VOSS/src/vos_nvitem.c
index 7ef24691e9d3..72d1d8a4fb53 100644
--- a/CORE/VOSS/src/vos_nvitem.c
+++ b/CORE/VOSS/src/vos_nvitem.c
@@ -821,9 +821,9 @@ VOS_STATUS vos_nv_getSupportedCountryCode( v_BYTE_t *pBuffer, v_SIZE_t *pBufferS
("Insufficient memory for country code list"));
return VOS_STATUS_E_NOMEM;
}
- for (i = 0; i < countryInfoTable.countryCount; i++)
- {
- memcpy( pBuffer, countryInfoTable.countryInfo[i].countryCode, VOS_COUNTRY_CODE_LEN );
+ for (i = 0; i < countryInfoTable.countryCount; i++) {
+ vos_mem_copy(pBuffer, countryInfoTable.countryInfo[i].countryCode,
+ VOS_COUNTRY_CODE_LEN);
pBuffer += (VOS_COUNTRY_CODE_LEN + paddingSize );
}
return VOS_STATUS_SUCCESS;
@@ -960,7 +960,9 @@ VOS_STATUS vos_nv_readDefaultCountryTable( uNvTables *tableData )
{
VOS_STATUS status = VOS_STATUS_SUCCESS;
- memcpy(&tableData->defaultCountryTable, &pnvEFSTable->halnv.tables.defaultCountryTable, sizeof(sDefaultCountry));
+ vos_mem_copy(&tableData->defaultCountryTable,
+ &pnvEFSTable->halnv.tables.defaultCountryTable,
+ sizeof(sDefaultCountry));
pr_info("DefaultCountry is %c%c\n",
tableData->defaultCountryTable.countryCode[0],
tableData->defaultCountryTable.countryCode[1]);
diff --git a/CORE/VOSS/src/vos_utils.c b/CORE/VOSS/src/vos_utils.c
index f8eeb89f19b8..b420dba6c499 100644
--- a/CORE/VOSS/src/vos_utils.c
+++ b/CORE/VOSS/src/vos_utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -198,7 +198,7 @@ void cmac_calc_mic(struct crypto_cipher *tfm, u8 *m,
xor_128(x, m_last, y);
crypto_cipher_encrypt_one(tfm, x, y);
- memcpy(mac, x, CMAC_TLEN);
+ vos_mem_copy(mac, x, CMAC_TLEN);
}
#endif
#endif
@@ -696,7 +696,7 @@ int hmac_sha1(v_U8_t *key, v_U8_t ksize, char *plaintext, v_U8_t psize,
}
memset(hash_result, 0, 64);
- memcpy(hash_buff, plaintext, psize);
+ vos_mem_copy(hash_buff, plaintext, psize);
sg_init_one(&sg, hash_buff, psize);
if (ksize) {
@@ -867,7 +867,7 @@ int hmac_md5(v_U8_t *key, v_U8_t ksize, char *plaintext, v_U8_t psize,
}
memset(hash_result, 0, 64);
- memcpy(hash_buff, plaintext, psize);
+ vos_mem_copy(hash_buff, plaintext, psize);
sg_init_one(&sg, hash_buff, psize);
if (ksize) {