summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-05-14 11:44:58 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-05-14 11:44:58 -0700
commitbcb869f8e3c58485e1f50cf71bb28ea309527c51 (patch)
tree70b872db83d437dd68566814e7a68676adce2d12
parent496d5a150af07dba98f5e47dce74a4f50f8ecc0b (diff)
parent6d69e401e515726fb41d8d63ac530afd1bdb44f8 (diff)
Merge "Release 1.0.0.108 QCACLD WLAN Driver"
-rw-r--r--CORE/BAP/src/bapModule.c8
-rw-r--r--CORE/CLD_TXRX/TLSHIM/tl_shim.c36
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_tx_queue.c32
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_tx_sched.c18
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h2
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h2
-rw-r--r--CORE/HDD/src/wlan_hdd_assoc.c12
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c93
-rw-r--r--CORE/HDD/src/wlan_hdd_early_suspend.c2
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c12
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c11
-rw-r--r--CORE/HDD/src/wlan_hdd_scan.c2
-rw-r--r--CORE/HDD/src/wlan_hdd_tdls.c5
-rw-r--r--CORE/HDD/src/wlan_hdd_wext.c27
-rw-r--r--CORE/MAC/inc/qwlan_version.h8
-rw-r--r--CORE/MAC/inc/sirApi.h10
-rw-r--r--CORE/MAC/inc/wniCfgAp.h602
-rw-r--r--CORE/MAC/inc/wniCfgSta.h586
-rw-r--r--CORE/MAC/src/cfg/cfgUtil/cfg.txt9
-rw-r--r--CORE/MAC/src/include/sirParams.h1
-rw-r--r--CORE/MAC/src/pe/lim/limAdmitControl.c8
-rw-r--r--CORE/MAC/src/pe/lim/limApi.c35
-rw-r--r--CORE/MAC/src/pe/lim/limAssocUtils.c24
-rw-r--r--CORE/MAC/src/pe/lim/limIbssPeerMgmt.c10
-rw-r--r--CORE/MAC/src/pe/lim/limProcessActionFrame.c29
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c10
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c80
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c32
-rw-r--r--CORE/MAC/src/pe/lim/limProcessProbeRspFrame.c12
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c22
-rw-r--r--CORE/MAC/src/pe/lim/limSecurityUtils.c7
-rw-r--r--CORE/MAC/src/pe/lim/limSendManagementFrames.c147
-rw-r--r--CORE/MAC/src/pe/lim/limTypes.h8
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.c13
-rw-r--r--CORE/SAP/src/sapModule.c2
-rw-r--r--CORE/SERVICES/COMMON/dbglog_id.h3
-rw-r--r--CORE/SERVICES/COMMON/ol_if_athvar.h1
-rw-r--r--CORE/SERVICES/COMMON/wlan_module_ids.h1
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h26
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h71
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h171
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/HIF/PCIe/hif_pci.c5
-rw-r--r--CORE/SERVICES/HIF/PCIe/if_pci.c72
-rw-r--r--CORE/SERVICES/HIF/PCIe/if_pci.h2
-rw-r--r--CORE/SERVICES/HIF/USB/hif_usb.c7
-rw-r--r--CORE/SERVICES/HIF/USB/if_usb.c7
-rw-r--r--CORE/SERVICES/HIF/USB/if_usb.h2
-rw-r--r--CORE/SERVICES/HIF/USB/usbdrv.c20
-rw-r--r--CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c7
-rw-r--r--CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h1
-rw-r--r--CORE/SERVICES/WMA/wma.c111
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c11
-rw-r--r--CORE/SERVICES/WMI/wmi_unified_priv.h1
-rw-r--r--CORE/SME/inc/csrApi.h4
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c6
-rw-r--r--CORE/SME/src/csr/csrApiScan.c16
-rw-r--r--CORE/SME/src/csr/csrUtil.c8
-rw-r--r--CORE/SYS/legacy/src/utils/src/macTrace.c1
-rw-r--r--CORE/WDA/inc/wlan_qct_wda.h1
-rw-r--r--Kbuild1
-rwxr-xr-xfirmware_bin/WCNSS_cfg.datbin10810 -> 10778 bytes
-rwxr-xr-xfirmware_bin/WCNSS_qcom_cfg.ini2
63 files changed, 1240 insertions, 1237 deletions
diff --git a/CORE/BAP/src/bapModule.c b/CORE/BAP/src/bapModule.c
index f7f9a48a1429..bb52a4af8fa0 100644
--- a/CORE/BAP/src/bapModule.c
+++ b/CORE/BAP/src/bapModule.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2013 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -123,7 +123,7 @@ tBtampHCI_Version_Info btampHCI_Version_Info;
// Include the Local Supported Cmds info structure.
tBtampHCI_Supported_Cmds btampHCI_Supported_Cmds;
-static unsigned char pBtStaOwnMacAddr[WNI_CFG_BSSID_LEN];
+static unsigned char pBtStaOwnMacAddr[VOS_MAC_ADDR_SIZE];
/*BT-AMP SSID; per spec should have this format: "AMP-00-0a-f5-04-05-08" */
#define WLAN_BAP_SSID_MAX_LEN 21
@@ -1198,7 +1198,7 @@ WLANBAP_ReadMacConfig
ptBtampContext pBtampCtx
)
{
- tANI_U32 len = WNI_CFG_BSSID_LEN;
+ tANI_U32 len = VOS_MAC_ADDR_SIZE;
tHalHandle pMac = NULL;
/*------------------------------------------------------------------------
@@ -1223,7 +1223,7 @@ WLANBAP_ReadMacConfig
ccmCfgGetStr( pMac, WNI_CFG_STA_ID, pBtStaOwnMacAddr, &len );
- if (WNI_CFG_BSSID_LEN != len)
+ if (VOS_MAC_ADDR_SIZE != len)
{
VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR,
"len is improper %s", __func__);
diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.c b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
index 2a0d8be01e2e..5ed6c272ba52 100644
--- a/CORE/CLD_TXRX/TLSHIM/tl_shim.c
+++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
@@ -487,7 +487,8 @@ static int tlshim_mgmt_rx_process(void *context, u_int8_t *data,
roundup(hdr->buf_len, 4),
0, 4, FALSE);
if (!wbuf) {
- TLSHIM_LOGE("Failed to allocate wbuf for mgmt rx");
+ TLSHIM_LOGE("%s: Failed to allocate wbuf for mgmt rx len(%u)",
+ __func__, hdr->buf_len);
vos_mem_free(rx_pkt);
return 0;
}
@@ -539,14 +540,39 @@ static int tlshim_mgmt_rx_process(void *context, u_int8_t *data,
(mgt_subtype == IEEE80211_FC0_SUBTYPE_BEACON || mgt_subtype == IEEE80211_FC0_SUBTYPE_PROBE_RESP))
{
/* remember this beacon to be used later for better_ap event */
+ WMI_MGMT_RX_EVENTID_param_tlvs *last_tlvs =
+ (WMI_MGMT_RX_EVENTID_param_tlvs *) tl_shim->last_beacon_data;
if (tl_shim->last_beacon_data) {
+ /* Free the previously allocated buffers */
+ if (last_tlvs->hdr)
+ vos_mem_free(last_tlvs->hdr);
+ if (last_tlvs->bufp)
+ vos_mem_free(last_tlvs->bufp);
vos_mem_free(tl_shim->last_beacon_data);
tl_shim->last_beacon_data = NULL;
tl_shim->last_beacon_len = 0;
}
if((tl_shim->last_beacon_data = vos_mem_malloc(data_len))) {
- vos_mem_copy(tl_shim->last_beacon_data, data, data_len);
- tl_shim->last_beacon_len = data_len;
+ u_int32_t buf_len = roundup(hdr->buf_len, sizeof(u_int32_t));
+
+ vos_mem_copy(tl_shim->last_beacon_data, data, data_len);
+ tl_shim->last_beacon_len = data_len;
+ last_tlvs = (WMI_MGMT_RX_EVENTID_param_tlvs *) tl_shim->last_beacon_data;
+ if ((last_tlvs->hdr = vos_mem_malloc(sizeof(wmi_mgmt_rx_hdr)))) {
+ vos_mem_copy(last_tlvs->hdr, hdr, sizeof(wmi_mgmt_rx_hdr));
+ if ((last_tlvs->bufp = vos_mem_malloc(buf_len))) {
+ vos_mem_copy(last_tlvs->bufp, param_tlvs->bufp, buf_len);
+ } else {
+ vos_mem_free(last_tlvs->hdr);
+ vos_mem_free(tl_shim->last_beacon_data);
+ tl_shim->last_beacon_data = NULL;
+ tl_shim->last_beacon_len = 0;
+ }
+ } else {
+ vos_mem_free(tl_shim->last_beacon_data);
+ tl_shim->last_beacon_data = NULL;
+ tl_shim->last_beacon_len = 0;
+ }
}
}
@@ -1678,6 +1704,10 @@ VOS_STATUS WLANTL_Close(void *vos_ctx)
wdi_in_pdev_detach(((pVosContextType) vos_ctx)->pdev_txrx_ctx, 1);
// Delete beacon buffer hanging off tl_shim
if (tl_shim->last_beacon_data) {
+ if (((WMI_MGMT_RX_EVENTID_param_tlvs *) tl_shim->last_beacon_data)->hdr)
+ vos_mem_free(((WMI_MGMT_RX_EVENTID_param_tlvs *) tl_shim->last_beacon_data)->hdr);
+ if (((WMI_MGMT_RX_EVENTID_param_tlvs *) tl_shim->last_beacon_data)->bufp)
+ vos_mem_free(((WMI_MGMT_RX_EVENTID_param_tlvs *) tl_shim->last_beacon_data)->bufp);
vos_mem_free(tl_shim->last_beacon_data);
}
vos_free_context(vos_ctx, VOS_MODULE_ID_TL, tl_shim);
diff --git a/CORE/CLD_TXRX/TXRX/ol_tx_queue.c b/CORE/CLD_TXRX/TXRX/ol_tx_queue.c
index 1f655ec15a07..c688a2f8639f 100644
--- a/CORE/CLD_TXRX/TXRX/ol_tx_queue.c
+++ b/CORE/CLD_TXRX/TXRX/ol_tx_queue.c
@@ -171,7 +171,7 @@ ol_tx_queue_discard(
u_int16_t num;
u_int16_t discarded, actual_discarded = 0;
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
if (flush_all == A_TRUE) {
/* flush all the pending tx queues in the scheduler */
@@ -199,7 +199,7 @@ ol_tx_queue_discard(
adf_os_atomic_add(actual_discarded, &pdev->tx_queue.rsrc_cnt);
TX_SCHED_DEBUG_PRINT("-%s \n",__FUNCTION__);
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
if (flush_all == A_TRUE && num > 0) {
/*
@@ -236,7 +236,7 @@ ol_tx_enqueue(
//Discard Frames in Discard List
ol_tx_desc_frame_list_free(pdev, &tx_descs, 1 /* error */);
}
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
TAILQ_INSERT_TAIL(&txq->head, tx_desc, tx_desc_list_elem);
bytes = adf_nbuf_len(tx_desc->netbuf);
@@ -257,7 +257,7 @@ ol_tx_enqueue(
if (!ETHERTYPE_IS_EAPOL_WAPI(tx_msdu_info->htt.info.ethertype)) {
OL_TX_QUEUE_ADDBA_CHECK(pdev, txq, tx_msdu_info);
}
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
TX_SCHED_DEBUG_PRINT("Leave %s\n", __func__);
}
@@ -323,7 +323,7 @@ ol_tx_queue_free(
TAILQ_INIT(&tx_tmp_list);
TX_SCHED_DEBUG_PRINT("Enter %s\n", __func__);
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
notify_ctx.event = OL_TX_DELETE_QUEUE;
notify_ctx.txq = txq;
@@ -344,7 +344,7 @@ ol_tx_queue_free(
/* txq->head gets reset during the TAILQ_CONCAT call */
TAILQ_CONCAT(&tx_tmp_list, &txq->head, tx_desc_list_elem);
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
/* free tx frames without holding tx_queue_spinlock */
adf_os_atomic_add(frms, &pdev->tx_queue.rsrc_cnt);
while (frms) {
@@ -421,9 +421,9 @@ ol_txrx_peer_tid_unpause_base(
* the scheduler function takes the lock, temporarily
* release the lock.
*/
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
ol_tx_sched(pdev);
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
}
}
}
@@ -438,11 +438,11 @@ ol_txrx_peer_pause(ol_txrx_peer_handle peer)
/* acquire the mutex lock, since we'll be modifying the queues */
TX_SCHED_DEBUG_PRINT("Enter %s\n", __func__);
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
ol_txrx_peer_pause_base(pdev, peer);
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
TX_SCHED_DEBUG_PRINT("Leave %s\n", __func__);
}
#endif
@@ -456,7 +456,7 @@ ol_txrx_peer_tid_unpause(ol_txrx_peer_handle peer, int tid)
/* acquire the mutex lock, since we'll be modifying the queues */
TX_SCHED_DEBUG_PRINT("Enter %s\n", __func__);
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
if (tid == -1) {
int i;
@@ -467,7 +467,7 @@ ol_txrx_peer_tid_unpause(ol_txrx_peer_handle peer, int tid)
ol_txrx_peer_tid_unpause_base(pdev, peer, tid);
}
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
TX_SCHED_DEBUG_PRINT("Leave %s\n", __func__);
}
@@ -486,11 +486,11 @@ ol_txrx_vdev_pause(ol_txrx_vdev_handle vdev)
#if defined(CONFIG_HL_SUPPORT)
struct ol_txrx_pdev_t *pdev = vdev->pdev;
struct ol_txrx_peer_t *peer;
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
ol_txrx_peer_pause_base(pdev, peer);
}
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
#endif /* defined(CONFIG_HL_SUPPORT) */
} else {
vdev->ll_pause.is_paused = A_TRUE;
@@ -510,7 +510,7 @@ ol_txrx_vdev_unpause(ol_txrx_vdev_handle vdev)
#if defined(CONFIG_HL_SUPPORT)
struct ol_txrx_pdev_t *pdev = vdev->pdev;
struct ol_txrx_peer_t *peer;
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
int i;
@@ -518,7 +518,7 @@ ol_txrx_vdev_unpause(ol_txrx_vdev_handle vdev)
ol_txrx_peer_tid_unpause_base(pdev, peer, i);
}
}
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
#endif /* defined(CONFIG_HL_SUPPORT) */
} else {
if (vdev->ll_pause.is_paused)
diff --git a/CORE/CLD_TXRX/TXRX/ol_tx_sched.c b/CORE/CLD_TXRX/TXRX/ol_tx_sched.c
index 605fd51d0818..2f0a418062d6 100644
--- a/CORE/CLD_TXRX/TXRX/ol_tx_sched.c
+++ b/CORE/CLD_TXRX/TXRX/ol_tx_sched.c
@@ -136,9 +136,9 @@ typedef TAILQ_HEAD(ol_tx_frms_queue_list_s, ol_tx_frms_queue_t)
#define ol_tx_sched_init ol_tx_sched_init_wrr_adv
#define ol_tx_sched_select_init(pdev) \
do { \
- adf_os_spin_lock(&pdev->tx_queue_spinlock); \
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock); \
ol_tx_sched_select_init_wrr_adv(pdev); \
- adf_os_spin_unlock(&pdev->tx_queue_spinlock); \
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock); \
} while (0)
#define ol_tx_sched_select_batch ol_tx_sched_select_batch_wrr_adv
#define ol_tx_sched_txq_enqueue ol_tx_sched_txq_enqueue_wrr_adv
@@ -1246,9 +1246,9 @@ ol_tx_sched(struct ol_txrx_pdev_t *pdev)
u_int32_t credit;
TX_SCHED_DEBUG_PRINT("Enter %s\n", __func__);
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
if (pdev->tx_sched.tx_sched_status != ol_tx_scheduler_idle) {
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
return;
}
pdev->tx_sched.tx_sched_status = ol_tx_scheduler_running;
@@ -1256,7 +1256,7 @@ ol_tx_sched(struct ol_txrx_pdev_t *pdev)
OL_TX_SCHED_LOG(pdev);
//adf_os_print("BEFORE tx sched:\n");
//ol_tx_queues_display(pdev);
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
TAILQ_INIT(&sctx.head);
sctx.frms = 0;
@@ -1264,7 +1264,7 @@ ol_tx_sched(struct ol_txrx_pdev_t *pdev)
ol_tx_sched_select_init(pdev);
while (adf_os_atomic_read(&pdev->target_tx_credit) > 0) {
int num_credits;
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
credit = adf_os_atomic_read(&pdev->target_tx_credit);
num_credits = ol_tx_sched_select_batch(pdev, &sctx, credit);
if (num_credits > 0){
@@ -1276,18 +1276,18 @@ ol_tx_sched(struct ol_txrx_pdev_t *pdev)
#endif
adf_os_atomic_add(-num_credits, &pdev->target_tx_credit);
}
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
if (num_credits == 0) break;
}
ol_tx_sched_dispatch(pdev, &sctx);
- adf_os_spin_lock(&pdev->tx_queue_spinlock);
+ adf_os_spin_lock_bh(&pdev->tx_queue_spinlock);
//adf_os_print("AFTER tx sched:\n");
//ol_tx_queues_display(pdev);
pdev->tx_sched.tx_sched_status = ol_tx_scheduler_idle;
- adf_os_spin_unlock(&pdev->tx_queue_spinlock);
+ adf_os_spin_unlock_bh(&pdev->tx_queue_spinlock);
TX_SCHED_DEBUG_PRINT("Leave %s\n", __func__);
}
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index f3523c585372..6c87a97146e1 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2431,7 +2431,7 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */
#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_NAME "gEnableStrictRegulatoryForFCC"
#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_MIN ( 0 )
#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_MAX ( 1 )
-#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_DEFAULT ( 1 )
+#define CFG_ENABLE_STRICT_REGULATORY_FOR_FCC_DEFAULT ( 0 )
#ifdef QCA_WIFI_2_0
#define CFG_SAP_MAX_OFFLOAD_PEERS "gMaxOffloadPeers"
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index 83f140f7ce71..aeee1145472c 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -1419,6 +1419,8 @@ struct hdd_context_s
/* defining the chip/rom version */
v_U32_t target_hw_version;
+ /* defining the chip/rom revision */
+ v_U32_t target_hw_revision;
#endif
struct regulatory reg;
#ifdef FEATURE_WLAN_CH_AVOID
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index 137bcc397740..e5440e4b9a90 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -1263,10 +1263,10 @@ void hdd_PerformRoamSetKeyComplete(hdd_adapter_t *pAdapter)
roamInfo.fAuthRequired = FALSE;
vos_mem_copy(roamInfo.bssid,
pHddStaCtx->roam_info.bssid,
- WNI_CFG_BSSID_LEN);
+ VOS_MAC_ADDR_SIZE);
vos_mem_copy(roamInfo.peerMac,
pHddStaCtx->roam_info.peerMac,
- WNI_CFG_BSSID_LEN);
+ VOS_MAC_ADDR_SIZE);
halStatus = hdd_RoamSetKeyCompleteHandler(pAdapter,
&roamInfo,
@@ -2160,7 +2160,7 @@ static eHalStatus roamRoamConnectStatusUpdateHandler( hdd_adapter_t *pAdapter, t
{
pHddStaCtx->ibss_enc_key.keyDirection = eSIR_TX_RX;
memcpy(&pHddStaCtx->ibss_enc_key.peerMac,
- pRoamInfo->peerMac, WNI_CFG_BSSID_LEN);
+ pRoamInfo->peerMac, VOS_MAC_ADDR_SIZE);
VOS_TRACE( VOS_MODULE_ID_HDD,
VOS_TRACE_LEVEL_INFO_HIGH, "New peer joined set PTK encType=%d",
@@ -4351,9 +4351,9 @@ void hdd_indicateCckmPreAuth(hdd_adapter_t *pAdapter, tCsrRoamInfo *pRoamInfo)
pos += nBytes;
freeBytes -= nBytes;
- vos_mem_copy(pos, pRoamInfo->bssid, WNI_CFG_BSSID_LEN);
- pos += WNI_CFG_BSSID_LEN;
- freeBytes -= WNI_CFG_BSSID_LEN;
+ vos_mem_copy(pos, pRoamInfo->bssid, VOS_MAC_ADDR_SIZE);
+ pos += VOS_MAC_ADDR_SIZE;
+ freeBytes -= VOS_MAC_ADDR_SIZE;
nBytes = snprintf(pos, freeBytes, " %u:%u",
pRoamInfo->timestamp[0], pRoamInfo->timestamp[1]);
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 51ebc8598108..65e06d8a3d13 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -1269,7 +1269,7 @@ void wlan_hdd_cfg80211_set_key_wapi(hdd_adapter_t* pAdapter, u8 key_index,
else
{
isConnected = hdd_connIsConnected(pHddStaCtx);
- vos_mem_copy(setKey.peerMac,&pHddStaCtx->conn_info.bssId,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,&pHddStaCtx->conn_info.bssId, VOS_MAC_ADDR_SIZE);
}
setKey.keyLength = key_Len;
pKeyPtr = setKey.Key;
@@ -3672,14 +3672,6 @@ static int wlan_hdd_tdls_add_station(struct wiphy *wiphy,
return -ENOTSUPP;
}
- if (pHddCtx->isLogpInProgress)
- {
- VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
- "%s:LOGP in Progress. Ignore!!!", __func__);
- wlan_hdd_tdls_set_link_status(pAdapter, mac, eTDLS_LINK_IDLE);
- return -EBUSY;
- }
-
pTdlsPeer = wlan_hdd_tdls_get_peer(pAdapter, mac);
if ( NULL == pTdlsPeer ) {
@@ -3858,21 +3850,23 @@ static int wlan_hdd_change_station(struct wiphy *wiphy,
MTRACE(vos_trace(VOS_MODULE_ID_HDD,
TRACE_CODE_HDD_CHANGE_STATION,
pAdapter->sessionId, params->listen_interval));
+
pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
- pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
- if ((NULL == pHddCtx) || (NULL == pHddStaCtx))
+ if (0 != wlan_hdd_validate_context(pHddCtx))
{
- VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
- "invalid HDD state or HDD station context");
- return -EINVAL;
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: HDD context is not valid", __func__);
+ return -EINVAL;
}
- if (pHddCtx->isLogpInProgress)
+ pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
+
+ if (!pHddStaCtx)
{
- VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
- "%s:LOGP in Progress. Ignore!!!", __func__);
- return -EAGAIN;
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
+ "%s: HDD station context is null", __func__);
+ return -EINVAL;
}
vos_mem_copy(STAMacAddress.bytes, mac, sizeof(v_MACADDR_t));
@@ -4023,7 +4017,7 @@ static int wlan_hdd_cfg80211_add_key( struct wiphy *wiphy,
{
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR( ndev );
tCsrRoamSetKey setKey;
- u8 groupmacaddr[WNI_CFG_BSSID_LEN] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
+ u8 groupmacaddr[VOS_MAC_ADDR_SIZE] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
int status;
v_U32_t roamId= 0xFF;
#ifndef WLAN_FEATURE_MBSSID
@@ -4167,7 +4161,7 @@ static int wlan_hdd_cfg80211_add_key( struct wiphy *wiphy,
"%s- %d: setting Broadcast key",
__func__, __LINE__);
setKey.keyDirection = eSIR_RX_ONLY;
- vos_mem_copy(setKey.peerMac,groupmacaddr,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,groupmacaddr, VOS_MAC_ADDR_SIZE);
}
else
{
@@ -4176,7 +4170,7 @@ static int wlan_hdd_cfg80211_add_key( struct wiphy *wiphy,
"%s- %d: setting pairwise key",
__func__, __LINE__);
setKey.keyDirection = eSIR_TX_RX;
- vos_mem_copy(setKey.peerMac, mac_addr,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac, mac_addr, VOS_MAC_ADDR_SIZE);
}
if ((WLAN_HDD_IBSS == pAdapter->device_mode) && !pairwise)
{
@@ -4342,7 +4336,7 @@ static int wlan_hdd_cfg80211_add_key( struct wiphy *wiphy,
)
{
setKey.keyDirection = eSIR_RX_ONLY;
- vos_mem_copy(setKey.peerMac,groupmacaddr,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,groupmacaddr, VOS_MAC_ADDR_SIZE);
hddLog(VOS_TRACE_LEVEL_INFO_MED,
"%s: set key peerMac %2x:%2x:%2x:%2x:%2x:%2x, direction %d",
@@ -4459,7 +4453,7 @@ static int wlan_hdd_cfg80211_del_key( struct wiphy *wiphy,
#if 0
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR( ndev );
v_CONTEXT_t pVosContext = (WLAN_HDD_GET_CTX(pAdapter))->pvosContext;
- u8 groupmacaddr[WNI_CFG_BSSID_LEN] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
+ u8 groupmacaddr[VOS_MAC_ADDR_SIZE] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
tCsrRoamSetKey setKey;
v_U32_t roamId= 0xFF;
@@ -4480,9 +4474,9 @@ static int wlan_hdd_cfg80211_del_key( struct wiphy *wiphy,
setKey.keyId = key_index;
if (mac_addr)
- vos_mem_copy(setKey.peerMac, mac_addr,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac, mac_addr, VOS_MAC_ADDR_SIZE);
else
- vos_mem_copy(setKey.peerMac, groupmacaddr, WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac, groupmacaddr, VOS_MAC_ADDR_SIZE);
setKey.encType = eCSR_ENCRYPT_TYPE_NONE;
@@ -4636,7 +4630,7 @@ static int wlan_hdd_cfg80211_set_default_key( struct wiphy *wiphy,
vos_mem_copy(setKey.peerMac,
&pHddStaCtx->conn_info.bssId[0],
- WNI_CFG_BSSID_LEN);
+ VOS_MAC_ADDR_SIZE);
if (Keys->KeyLength[key_index] == CSR_WEP40_KEY_LEN &&
pWextState->roamProfile.EncryptionType.encryptionType[0] ==
@@ -4917,7 +4911,7 @@ wlan_hdd_cfg80211_inform_bss_frame( hdd_adapter_t *pAdapter,
pAdapter->sessionCtx.station.conn_info.connState ) &&
( VOS_TRUE == vos_mem_compare(bss_desc->bssId,
pAdapter->sessionCtx.station.conn_info.bssId,
- WNI_CFG_BSSID_LEN)) &&
+ VOS_MAC_ADDR_SIZE)) &&
(pHddCtx->hdd_wlan_suspended == FALSE))
{
/* supplicant takes the signal strength in terms of mBm(100*dBm) */
@@ -5965,17 +5959,17 @@ int wlan_hdd_cfg80211_connect_start( hdd_adapter_t *pAdapter,
{
pRoamProfile->BSSIDs.numOfBSSIDs = 1;
vos_mem_copy((void *)(pRoamProfile->BSSIDs.bssid), bssid,
- WNI_CFG_BSSID_LEN);
+ VOS_MAC_ADDR_SIZE);
/* Save BSSID in seperate variable as well, as RoamProfile
BSSID is getting zeroed out in the association process. And in
case of join failure we should send valid BSSID to supplicant
*/
vos_mem_copy((void *)(pWextState->req_bssId), bssid,
- WNI_CFG_BSSID_LEN);
+ VOS_MAC_ADDR_SIZE);
}
else
{
- vos_mem_zero((void *)(pRoamProfile->BSSIDs.bssid),WNI_CFG_BSSID_LEN);
+ vos_mem_zero((void *)(pRoamProfile->BSSIDs.bssid), VOS_MAC_ADDR_SIZE);
}
hddLog(LOG1, FL("Connect to SSID: %.*s operating Channel: %u"),
@@ -8467,15 +8461,25 @@ int wlan_hdd_cfg80211_del_station(struct wiphy *wiphy,
static int wlan_hdd_cfg80211_add_station(struct wiphy *wiphy,
struct net_device *dev, u8 *mac, struct station_parameters *params)
{
- hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
int status = -EPERM;
#ifdef FEATURE_WLAN_TDLS
+ hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
+ hdd_context_t *pHddCtx = wiphy_priv(wiphy);
u32 mask, set;
+
ENTER();
MTRACE(vos_trace(VOS_MODULE_ID_HDD,
TRACE_CODE_HDD_CFG80211_ADD_STA,
pAdapter->sessionId, params->listen_interval));
+
+ if (0 != wlan_hdd_validate_context(pHddCtx))
+ {
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: HDD context is not valid", __func__);
+ return -EINVAL;
+ }
+
mask = params->sta_flags_mask;
set = params->sta_flags_set;
@@ -8540,12 +8544,12 @@ static int wlan_hdd_cfg80211_set_pmksa(struct wiphy *wiphy, struct net_device *d
for (j = 0; j < PMKIDCacheIndex; j++)
{
if(vos_mem_compare(PMKIDCache[j].BSSID,
- pmksa->bssid, WNI_CFG_BSSID_LEN))
+ pmksa->bssid, VOS_MAC_ADDR_SIZE))
{
/* BSSID matched previous entry. Overwrite it. */
BSSIDMatched = 1;
vos_mem_copy(PMKIDCache[j].BSSID,
- pmksa->bssid, WNI_CFG_BSSID_LEN);
+ pmksa->bssid, VOS_MAC_ADDR_SIZE);
vos_mem_copy(PMKIDCache[j].PMKID,
pmksa->pmkid,
CSR_RSN_PMKID_SIZE);
@@ -8642,7 +8646,7 @@ static int wlan_hdd_cfg80211_del_pmksa(struct wiphy *wiphy, struct net_device *d
{
if (vos_mem_compare(PMKIDCache[j].BSSID,
pmksa->bssid,
- WNI_CFG_BSSID_LEN))
+ VOS_MAC_ADDR_SIZE))
{
/* BSSID matched entry */
BSSIDMatched = 1;
@@ -8652,14 +8656,14 @@ static int wlan_hdd_cfg80211_del_pmksa(struct wiphy *wiphy, struct net_device *d
/*replace the matching entry with the last entry in HDD local cache*/
vos_mem_copy(PMKIDCache[j].BSSID,
PMKIDCache[PMKIDCacheIndex-1].BSSID,
- WNI_CFG_BSSID_LEN);
+ VOS_MAC_ADDR_SIZE);
vos_mem_copy(PMKIDCache[j].PMKID,
PMKIDCache[PMKIDCacheIndex-1].PMKID,
CSR_RSN_PMKID_SIZE);
}
/*clear the last entry in HDD cache ---[index-1]*/
- vos_mem_zero(PMKIDCache[PMKIDCacheIndex-1].BSSID, WNI_CFG_BSSID_LEN);
+ vos_mem_zero(PMKIDCache[PMKIDCacheIndex-1].BSSID, VOS_MAC_ADDR_SIZE);
vos_mem_zero(PMKIDCache[PMKIDCacheIndex-1].PMKID, CSR_RSN_PMKID_SIZE);
/*reduce the PMKID array index*/
@@ -8750,7 +8754,7 @@ static int wlan_hdd_cfg80211_flush_pmksa(struct wiphy *wiphy, struct net_device
status = -EINVAL;
}
/*clear the entry in HDD cache 0--index-1 */
- vos_mem_zero(PMKIDCache[j].BSSID, WNI_CFG_BSSID_LEN);
+ vos_mem_zero(PMKIDCache[j].BSSID, VOS_MAC_ADDR_SIZE);
vos_mem_zero(PMKIDCache[j].PMKID, CSR_RSN_PMKID_SIZE);
}
@@ -9286,19 +9290,12 @@ static int wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *d
MTRACE(vos_trace(VOS_MODULE_ID_HDD,
TRACE_CODE_HDD_CFG80211_TDLS_MGMT,
pAdapter->sessionId, action_code));
- if (NULL == pHddCtx || NULL == pHddCtx->cfg_ini)
- {
- VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
- "Invalid arguments");
- return -EINVAL;
- }
- if (pHddCtx->isLogpInProgress)
+ if (0 != wlan_hdd_validate_context(pHddCtx))
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
- "%s:LOGP in Progress. Ignore!!!", __func__);
- wlan_hdd_tdls_set_link_status(pAdapter, peer, eTDLS_LINK_IDLE);
- return -EBUSY;
+ "%s: HDD context is not valid", __func__);
+ return -EINVAL;
}
if (eTDLS_SUPPORT_NOT_ENABLED == pHddCtx->tdls_mode)
@@ -10002,7 +9999,7 @@ int wlan_hdd_cfg80211_set_rekey_data(struct wiphy *wiphy, struct net_device *dev
memcpy(pHddStaCtx->gtkOffloadReqParams.aKCK, data->kck, NL80211_KCK_LEN);
memcpy(pHddStaCtx->gtkOffloadReqParams.aKEK, data->kek, NL80211_KEK_LEN);
memcpy(pHddStaCtx->gtkOffloadReqParams.bssId, &pHddStaCtx->conn_info.bssId,
- WNI_CFG_BSSID_LEN);
+ VOS_MAC_ADDR_SIZE);
{
/* changing from big to little endian since driver
* works on little endian format
diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c
index 28648424bcc0..47278d176235 100644
--- a/CORE/HDD/src/wlan_hdd_early_suspend.c
+++ b/CORE/HDD/src/wlan_hdd_early_suspend.c
@@ -1531,7 +1531,7 @@ void hdd_conf_gtk_offload(hdd_adapter_t *pAdapter, v_BOOL_t fenable)
{
if ((eConnectionState_Associated == pHddStaCtx->conn_info.connState) &&
(0 == memcmp(&pHddStaCtx->gtkOffloadReqParams.bssId,
- &pHddStaCtx->conn_info.bssId, WNI_CFG_BSSID_LEN)) &&
+ &pHddStaCtx->conn_info.bssId, VOS_MAC_ADDR_SIZE)) &&
(GTK_OFFLOAD_ENABLE == pHddStaCtx->gtkOffloadReqParams.ulFlags))
{
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 817467704dbc..afdbc2aad55f 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -3078,7 +3078,7 @@ static int iw_set_ap_encodeext(struct net_device *dev,
int retval = 0;
VOS_STATUS vstatus;
struct iw_encode_ext *ext = (struct iw_encode_ext*)extra;
- v_U8_t groupmacaddr[WNI_CFG_BSSID_LEN] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
+ v_U8_t groupmacaddr[VOS_MAC_ADDR_SIZE] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
int key_index;
struct iw_point *encoding = &wrqu->encoding;
tCsrRoamSetKey setKey;
@@ -3104,10 +3104,10 @@ static int iw_set_ap_encodeext(struct net_device *dev,
RemoveKey.keyId = key_index;
if(ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) {
/*Key direction for group is RX only*/
- vos_mem_copy(RemoveKey.peerMac,groupmacaddr,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(RemoveKey.peerMac,groupmacaddr, VOS_MAC_ADDR_SIZE);
}
else {
- vos_mem_copy(RemoveKey.peerMac,ext->addr.sa_data,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(RemoveKey.peerMac,ext->addr.sa_data, VOS_MAC_ADDR_SIZE);
}
switch(ext->alg)
{
@@ -3161,17 +3161,17 @@ static int iw_set_ap_encodeext(struct net_device *dev,
if(ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) {
/*Key direction for group is RX only*/
setKey.keyDirection = eSIR_RX_ONLY;
- vos_mem_copy(setKey.peerMac,groupmacaddr,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,groupmacaddr, VOS_MAC_ADDR_SIZE);
}
else {
setKey.keyDirection = eSIR_TX_RX;
- vos_mem_copy(setKey.peerMac,ext->addr.sa_data,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,ext->addr.sa_data, VOS_MAC_ADDR_SIZE);
}
if(ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
{
setKey.keyDirection = eSIR_TX_DEFAULT;
- vos_mem_copy(setKey.peerMac,ext->addr.sa_data,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,ext->addr.sa_data, VOS_MAC_ADDR_SIZE);
}
/*For supplicant pae role is zero*/
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 114b19b10401..72a5ebc276a1 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -277,6 +277,7 @@ struct completion wlan_start_comp;
extern void hif_init_adf_ctx(adf_os_device_t adf_ctx, v_VOID_t *hif_sc);
extern int hif_register_driver(void);
extern void hif_unregister_driver(void);
+extern void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision);
#ifdef QCA_WIFI_FTM
extern int hdd_ftm_start(hdd_context_t *pHddCtx);
extern int hdd_ftm_stop(hdd_context_t *pHddCtx);
@@ -7464,6 +7465,8 @@ static hdd_adapter_t* hdd_alloc_station_adapter( hdd_context_t *pHddCtx, tSirMac
pWlanDev->watchdog_timeo = HDD_TX_TIMEOUT;
#ifndef QCA_WIFI_2_0
pWlanDev->hard_header_len += LIBRA_HW_NEEDED_HEADROOM;
+#elif defined(HIF_USB)
+ pWlanDev->hard_header_len += LIBRA_HW_NEEDED_HEADROOM;
#endif
#ifdef QCA_WIFI_2_0
@@ -10853,7 +10856,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
((VosContextType*)(pVosContext))->adf_ctx = adf_ctx;
#endif /* QCA_WIFI_2_0 */
- pHddCtx->nEnableStrictRegulatoryForFCC = TRUE;
+ pHddCtx->nEnableStrictRegulatoryForFCC = FALSE;
// Load all config first as TL config is needed during vos_open
pHddCtx->cfg_ini = (hdd_config_t*) kmalloc(sizeof(hdd_config_t), GFP_KERNEL);
if(pHddCtx->cfg_ini == NULL)
@@ -11320,9 +11323,9 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
#ifdef QCA_WIFI_2_0
- /* target hw version would only be retrieved after firmware donwload */
- pHddCtx->target_hw_version =
- ((struct ol_softc *)hif_sc)->target_version;
+ /* target hw version/revision would only be retrieved after firmware donwload */
+ hif_get_hw_info(hif_sc, &pHddCtx->target_hw_version,
+ &pHddCtx->target_hw_revision);
/* Get the wlan hw/fw version */
hdd_wlan_get_version(pAdapter, NULL, NULL);
diff --git a/CORE/HDD/src/wlan_hdd_scan.c b/CORE/HDD/src/wlan_hdd_scan.c
index 7c4b9f574d20..f20915456eb8 100644
--- a/CORE/HDD/src/wlan_hdd_scan.c
+++ b/CORE/HDD/src/wlan_hdd_scan.c
@@ -488,7 +488,7 @@ static eHalStatus hdd_IndicateScanResult(hdd_scan_info_t *scanInfo, tCsrScanResu
pAdapter->sessionCtx.station.conn_info.connState ) &&
( VOS_TRUE == vos_mem_compare(descriptor->bssId,
pAdapter->sessionCtx.station.conn_info.bssId,
- WNI_CFG_BSSID_LEN)))
+ VOS_MAC_ADDR_SIZE)))
{
event.u.qual.level = pAdapter->rssi;
}
diff --git a/CORE/HDD/src/wlan_hdd_tdls.c b/CORE/HDD/src/wlan_hdd_tdls.c
index c2934dbd3710..be70e8fa1be3 100644
--- a/CORE/HDD/src/wlan_hdd_tdls.c
+++ b/CORE/HDD/src/wlan_hdd_tdls.c
@@ -1092,8 +1092,8 @@ hddTdlsPeer_t *wlan_hdd_tdls_get_peer(hdd_adapter_t *pAdapter, u8 *mac)
if (NULL == pHddTdlsCtx)
{
- VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
- FL("pHddTdlsCtx is NULL"));
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ FL("pHddTdlsCtx is NULL"));
vos_mem_free(peer);
mutex_unlock(&pHddCtx->tdls_lock);
return NULL;
@@ -1214,7 +1214,6 @@ int wlan_hdd_tdls_recv_discovery_resp(hdd_adapter_t *pAdapter, u8 *mac)
pHddCtx = WLAN_HDD_GET_CTX(pHddTdlsCtx->pAdapter);
- if (NULL == pHddCtx)
if (0 != (wlan_hdd_validate_context(pHddCtx)))
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index d6ed334bb103..cab8e18fd20b 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -524,19 +524,33 @@ enum {
static const struct qwlan_hw qwlan_hw_list[] = {
{
.id = AR6320_REV1_VERSION,
+ .subid = 0,
.name = "QCA6174_REV1",
},
{
.id = AR6320_REV1_1_VERSION,
+ .subid = 0x1,
.name = "QCA6174_REV1_1",
},
{
.id = AR6320_REV1_3_VERSION,
+ .subid = 0x2,
.name = "QCA6174_REV1_3",
},
{
.id = AR6320_REV2_1_VERSION,
+ .subid = 0x4,
.name = "QCA6174_REV2_1",
+ },
+ {
+ .id = AR6320_REV2_1_VERSION,
+ .subid = 0x5,
+ .name = "QCA6174_REV2_2",
+ },
+ {
+ .id = AR6320_REV3_VERSION,
+ .subid = 0x8,
+ .name = "QCA6174_REV3",
}
};
@@ -646,7 +660,8 @@ void hdd_wlan_get_version(hdd_adapter_t *pAdapter, union iwreq_data *wrqu,
CRMId = pHddContext->target_fw_version & 0x7fff;
for (i = 0; i < ARRAY_SIZE(qwlan_hw_list); i++) {
- if (pHddContext->target_hw_version == qwlan_hw_list[i].id) {
+ if (pHddContext->target_hw_version == qwlan_hw_list[i].id &&
+ pHddContext->target_hw_revision == qwlan_hw_list[i].subid) {
pHWversion = qwlan_hw_list[i].name;
break;
}
@@ -1400,7 +1415,7 @@ void hdd_clearRoamProfileIe( hdd_adapter_t *pAdapter)
pAdapter->wapi_info.nWapiMode = 0;
#endif
- vos_mem_zero((void *)(pWextState->req_bssId), WNI_CFG_BSSID_LEN);
+ vos_mem_zero((void *)(pWextState->req_bssId), VOS_MAC_ADDR_SIZE);
}
@@ -3895,7 +3910,7 @@ static int iw_set_encodeext(struct net_device *dev,
struct iw_encode_ext *ext = (struct iw_encode_ext*)extra;
- v_U8_t groupmacaddr[WNI_CFG_BSSID_LEN] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
+ v_U8_t groupmacaddr[VOS_MAC_ADDR_SIZE] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
int key_index;
struct iw_point *encoding = &wrqu->encoding;
@@ -3962,12 +3977,12 @@ static int iw_set_encodeext(struct net_device *dev,
if(ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) {
/*Key direction for group is RX only*/
setKey.keyDirection = eSIR_RX_ONLY;
- vos_mem_copy(setKey.peerMac,groupmacaddr,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,groupmacaddr, VOS_MAC_ADDR_SIZE);
}
else {
setKey.keyDirection = eSIR_TX_RX;
- vos_mem_copy(setKey.peerMac,ext->addr.sa_data,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,ext->addr.sa_data, VOS_MAC_ADDR_SIZE);
}
/*For supplicant pae role is zero*/
@@ -7939,7 +7954,7 @@ static int iw_qcom_set_wapi_key(struct net_device *dev, struct iw_request_info *
case PAIRWISE_KEY:
{
isConnected = hdd_connIsConnected(pHddStaCtx);
- vos_mem_copy(setKey.peerMac,&pHddStaCtx->conn_info.bssId,WNI_CFG_BSSID_LEN);
+ vos_mem_copy(setKey.peerMac,&pHddStaCtx->conn_info.bssId, VOS_MAC_ADDR_SIZE);
break;
}
case GROUP_KEY:
diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h
index 3b6c190cd5c0..a52e20626fd0 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 107
+#define QWLAN_VERSION_BUILD 108
-#define QWLAN_VERSIONSTR "1.0.0.107"
+#define QWLAN_VERSIONSTR "1.0.0.108"
#ifdef QCA_WIFI_2_0
@@ -52,9 +52,11 @@ BRIEF DESCRIPTION:
#define AR6320_REV1_1_VERSION 0x5000001
#define AR6320_REV1_3_VERSION 0x5000003
#define AR6320_REV2_1_VERSION 0x5010000
+#define AR6320_REV3_VERSION 0x5020000
struct qwlan_hw {
- unsigned long id;
+ u32 id;
+ u32 subid;
const char *name;
};
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index e370ddf7b82a..cd9e01d0d811 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -3833,7 +3833,7 @@ typedef struct
typedef struct
{
tSirMacSSid ssId;
- tANI_U8 currAPbssid[WNI_CFG_BSSID_LEN];
+ tANI_U8 currAPbssid[VOS_MAC_ADDR_SIZE];
tANI_U32 authentication;
tANI_U8 encryption;
tANI_U8 mcencryption;
@@ -4491,7 +4491,7 @@ typedef struct sAniHandoffReq
tANI_U16 msgType; // message type is same as the request type
tANI_U16 msgLen; // length of the entire request
tANI_U8 sessionId;
- tANI_U8 bssid[WNI_CFG_BSSID_LEN];
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE];
tANI_U8 channel;
#ifndef QCA_WIFI_ISOC
tANI_U8 handoff_src;
@@ -4837,7 +4837,7 @@ typedef struct sSirChanChangeRequest
tANI_U16 messageLen;
tANI_U8 targetChannel;
tANI_U8 cbMode;
- tANI_U8 bssid[WNI_CFG_BSSID_LEN];
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE];
}tSirChanChangeRequest, *tpSirChanChangeRequest;
typedef struct sSirChanChangeResponse
@@ -4853,7 +4853,7 @@ typedef struct sSirStartBeaconIndication
tANI_U16 messageType;
tANI_U16 messageLen;
tANI_U8 beaconStartStatus;
- tANI_U8 bssid[WNI_CFG_BSSID_LEN];
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE];
}tSirStartBeaconIndication, *tpSirStartBeaconIndication;
/* Message format for requesting channel switch announcement to lower layers */
@@ -4863,7 +4863,7 @@ typedef struct sSirDfsCsaIeRequest
tANI_U16 msgLen;
tANI_U8 targetChannel;
tANI_U8 csaIeRequired;
- tANI_U8 bssid[WNI_CFG_BSSID_LEN];
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE];
}tSirDfsCsaIeRequest, *tpSirDfsCsaIeRequest;
/* Indication from lower layer indicating the completion of first beacon send
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index f22f37934684..7fa62aef8fc7 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -1,29 +1,29 @@
/*
- * Copyright (c) 2011-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.
- */
+ * Copyright (c) 2011-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.
+ */
/*
* DO NOT EDIT - This file is generated automatically
@@ -84,279 +84,278 @@
#define WNI_CFG_OPERATIONAL_RATE_SET 37
#define WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET 38
#define WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET 39
-#define WNI_CFG_BSSID 40
-#define WNI_CFG_LISTEN_INTERVAL 41
-#define WNI_CFG_VALID_CHANNEL_LIST 42
-#define WNI_CFG_CURRENT_CHANNEL 43
-#define WNI_CFG_DEFAULT_RATE_INDEX_5GHZ 44
-#define WNI_CFG_DEFAULT_RATE_INDEX_24GHZ 45
-#define WNI_CFG_RATE_ADAPTATION_TYPE 46
-#define WNI_CFG_FIXED_RATE 47
-#define WNI_CFG_FIXED_RATE_MULTICAST_24GHZ 48
-#define WNI_CFG_FIXED_RATE_MULTICAST_5GHZ 49
-#define WNI_CFG_RETRYRATE_POLICY 50
-#define WNI_CFG_RETRYRATE_SECONDARY 51
-#define WNI_CFG_RETRYRATE_TERTIARY 52
-#define WNI_CFG_APSD_ENABLED 53
-#define WNI_CFG_SHARED_KEY_AUTH_ENABLE 54
-#define WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE 55
-#define WNI_CFG_AUTHENTICATION_TYPE 56
-#define WNI_CFG_CF_POLL_REQUEST 57
-#define WNI_CFG_PRIVACY_ENABLED 58
-#define WNI_CFG_SHORT_PREAMBLE 59
-#define WNI_CFG_SHORT_SLOT_TIME 60
-#define WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY 61
-#define WNI_CFG_QOS_ENABLED 62
-#define WNI_CFG_HCF_ENABLED 63
-#define WNI_CFG_RSN_ENABLED 64
-#define WNI_CFG_BACKGROUND_SCAN_PERIOD 65
-#define WNI_CFG_MAX_NUM_PRE_AUTH 66
-#define WNI_CFG_PREAUTH_CLNUP_TIMEOUT 67
-#define WNI_CFG_RELEASE_AID_TIMEOUT 68
-#define WNI_CFG_HEART_BEAT_THRESHOLD 69
-#define WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT 70
-#define WNI_CFG_MANUFACTURER_OUI 71
-#define WNI_CFG_MANUFACTURER_NAME 72
-#define WNI_CFG_MODEL_NUMBER 73
-#define WNI_CFG_MODEL_NAME 74
-#define WNI_CFG_MANUFACTURER_PRODUCT_NAME 75
-#define WNI_CFG_MANUFACTURER_PRODUCT_VERSION 76
-#define WNI_CFG_11D_ENABLED 77
-#define WNI_CFG_MAX_TX_POWER_2_4 78
-#define WNI_CFG_MAX_TX_POWER_5 79
-#define WNI_CFG_NETWORK_DENSITY 80
-#define WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM 81
-#define WNI_CFG_CURRENT_TX_ANTENNA 82
-#define WNI_CFG_CURRENT_RX_ANTENNA 83
-#define WNI_CFG_CURRENT_TX_POWER_LEVEL 84
-#define WNI_CFG_POWER_STATE_PER_CHAIN 85
-#define WNI_CFG_NEW_BSS_FOUND_IND 86
-#define WNI_CFG_PROPRIETARY_ANI_FEATURES_ENABLED 87
-#define WNI_CFG_PROPRIETARY_RATES_ENABLED 88
-#define WNI_CFG_AP_NODE_NAME 89
-#define WNI_CFG_COUNTRY_CODE 90
-#define WNI_CFG_11H_ENABLED 91
-#define WNI_CFG_WT_CNF_TIMEOUT 92
-#define WNI_CFG_KEEPALIVE_TIMEOUT 93
-#define WNI_CFG_PROXIMITY 94
-#define WNI_CFG_LOG_LEVEL 95
-#define WNI_CFG_OLBC_DETECT_TIMEOUT 96
-#define WNI_CFG_PROTECTION_ENABLED 97
-#define WNI_CFG_11G_PROTECTION_ALWAYS 98
-#define WNI_CFG_FORCE_POLICY_PROTECTION 99
-#define WNI_CFG_11G_SHORT_PREAMBLE_ENABLED 100
-#define WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED 101
-#define WNI_CFG_CAL_PERIOD 102
-#define WNI_CFG_STATS_PERIOD 103
-#define WNI_CFG_CAL_CONTROL 104
-#define WNI_CFG_11G_ONLY_POLICY 105
-#define WNI_CFG_PACKET_CLASSIFICATION 106
-#define WNI_CFG_WME_ENABLED 107
-#define WNI_CFG_ADDTS_RSP_TIMEOUT 108
-#define WNI_CFG_MAX_SP_LENGTH 109
-#define WNI_CFG_KEEP_ALIVE_STA_LIMIT_THRESHOLD 110
-#define WNI_CFG_SEND_SINGLE_SSID_ALWAYS 111
-#define WNI_CFG_WSM_ENABLED 112
-#define WNI_CFG_PROP_CAPABILITY 113
-#define WNI_CFG_EDCA_PROFILE 114
-#define WNI_CFG_EDCA_ANI_ACBK_LOCAL 115
-#define WNI_CFG_EDCA_ANI_ACBE_LOCAL 116
-#define WNI_CFG_EDCA_ANI_ACVI_LOCAL 117
-#define WNI_CFG_EDCA_ANI_ACVO_LOCAL 118
-#define WNI_CFG_EDCA_ANI_ACBK 119
-#define WNI_CFG_EDCA_ANI_ACBE 120
-#define WNI_CFG_EDCA_ANI_ACVI 121
-#define WNI_CFG_EDCA_ANI_ACVO 122
-#define WNI_CFG_EDCA_WME_ACBK_LOCAL 123
-#define WNI_CFG_EDCA_WME_ACBE_LOCAL 124
-#define WNI_CFG_EDCA_WME_ACVI_LOCAL 125
-#define WNI_CFG_EDCA_WME_ACVO_LOCAL 126
-#define WNI_CFG_EDCA_WME_ACBK 127
-#define WNI_CFG_EDCA_WME_ACBE 128
-#define WNI_CFG_EDCA_WME_ACVI 129
-#define WNI_CFG_EDCA_WME_ACVO 130
-#define WNI_CFG_EDCA_TIT_DEMO_ACBK_LOCAL 131
-#define WNI_CFG_EDCA_TIT_DEMO_ACBE_LOCAL 132
-#define WNI_CFG_EDCA_TIT_DEMO_ACVI_LOCAL 133
-#define WNI_CFG_EDCA_TIT_DEMO_ACVO_LOCAL 134
-#define WNI_CFG_EDCA_TIT_DEMO_ACBK 135
-#define WNI_CFG_EDCA_TIT_DEMO_ACBE 136
-#define WNI_CFG_EDCA_TIT_DEMO_ACVI 137
-#define WNI_CFG_EDCA_TIT_DEMO_ACVO 138
-#define WNI_CFG_RDET_FLAG 139
-#define WNI_CFG_RADAR_CHANNEL_LIST 140
-#define WNI_CFG_LOCAL_POWER_CONSTRAINT 141
-#define WNI_CFG_ADMIT_POLICY 142
-#define WNI_CFG_ADMIT_BWFACTOR 143
-#define WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE 144
-#define WNI_CFG_CHANNEL_BONDING_MODE 145
-#define WNI_CFG_CB_SECONDARY_CHANNEL_STATE 146
-#define WNI_CFG_DYNAMIC_THRESHOLD_ZERO 147
-#define WNI_CFG_DYNAMIC_THRESHOLD_ONE 148
-#define WNI_CFG_DYNAMIC_THRESHOLD_TWO 149
-#define WNI_CFG_TRIG_STA_BK_SCAN 150
-#define WNI_CFG_DYNAMIC_PROFILE_SWITCHING 151
-#define WNI_CFG_SCAN_CONTROL_LIST 152
-#define WNI_CFG_MIMO_ENABLED 153
-#define WNI_CFG_BLOCK_ACK_ENABLED 154
-#define WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT 155
-#define WNI_CFG_HT_RX_STBC 156
-#define WNI_CFG_HT_CAP_INFO 157
-#define WNI_CFG_HT_AMPDU_PARAMS 158
-#define WNI_CFG_SUPPORTED_MCS_SET 159
-#define WNI_CFG_EXT_HT_CAP_INFO 160
-#define WNI_CFG_TX_BF_CAP 161
-#define WNI_CFG_AS_CAP 162
-#define WNI_CFG_HT_INFO_FIELD1 163
-#define WNI_CFG_HT_INFO_FIELD2 164
-#define WNI_CFG_HT_INFO_FIELD3 165
-#define WNI_CFG_BASIC_MCS_SET 166
-#define WNI_CFG_CURRENT_MCS_SET 167
-#define WNI_CFG_GREENFIELD_CAPABILITY 168
-#define WNI_CFG_VHT_MAX_MPDU_LENGTH 169
-#define WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET 170
-#define WNI_CFG_VHT_LDPC_CODING_CAP 171
-#define WNI_CFG_VHT_SHORT_GI_80MHZ 172
-#define WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ 173
-#define WNI_CFG_VHT_TXSTBC 174
-#define WNI_CFG_VHT_RXSTBC 175
-#define WNI_CFG_VHT_SU_BEAMFORMER_CAP 176
-#define WNI_CFG_VHT_SU_BEAMFORMEE_CAP 177
-#define WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED 178
-#define WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS 179
-#define WNI_CFG_VHT_MU_BEAMFORMER_CAP 180
-#define WNI_CFG_VHT_MU_BEAMFORMEE_CAP 181
-#define WNI_CFG_VHT_TXOP_PS 182
-#define WNI_CFG_VHT_HTC_VHTC_CAP 183
-#define WNI_CFG_VHT_AMPDU_LEN_EXPONENT 184
-#define WNI_CFG_VHT_LINK_ADAPTATION_CAP 185
-#define WNI_CFG_VHT_RX_ANT_PATTERN 186
-#define WNI_CFG_VHT_TX_ANT_PATTERN 187
-#define WNI_CFG_VHT_RX_MCS_MAP 188
-#define WNI_CFG_VHT_TX_MCS_MAP 189
-#define WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE 190
-#define WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE 191
-#define WNI_CFG_VHT_CHANNEL_WIDTH 192
-#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1 193
-#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2 194
-#define WNI_CFG_VHT_BASIC_MCS_SET 195
-#define WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT 196
-#define WNI_CFG_VHT_SS_UNDER_UTIL 197
-#define WNI_CFG_VHT_40MHZ_UTILIZATION 198
-#define WNI_CFG_VHT_80MHZ_UTILIZATION 199
-#define WNI_CFG_VHT_160MHZ_UTILIZATION 200
-#define WNI_CFG_MAX_AMSDU_LENGTH 201
-#define WNI_CFG_MPDU_DENSITY 202
-#define WNI_CFG_NUM_BUFF_ADVERT 203
-#define WNI_CFG_MAX_RX_AMPDU_FACTOR 204
-#define WNI_CFG_SHORT_GI_20MHZ 205
-#define WNI_CFG_SHORT_GI_40MHZ 206
-#define WNI_CFG_RIFS_ENABLED 207
-#define WNI_CFG_MAX_PS_POLL 208
-#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE 209
-#define WNI_CFG_RSSI_FILTER_PERIOD 210
-#define WNI_CFG_MIN_RSSI_THRESHOLD 211
-#define WNI_CFG_NTH_BEACON_FILTER 212
-#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE 213
-#define WNI_CFG_SCAN_IN_POWERSAVE 214
-#define WNI_CFG_IGNORE_DTIM 215
-#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE 216
-#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE 217
-#define WNI_CFG_WOWLAN_DEAUTH_ENABLE 218
-#define WNI_CFG_WOWLAN_DISASSOC_ENABLE 219
-#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON 220
-#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD 221
-#define WNI_CFG_BA_TIMEOUT 222
-#define WNI_CFG_BA_THRESHOLD_HIGH 223
-#define WNI_CFG_MAX_BA_BUFFERS 224
-#define WNI_CFG_MAX_BA_SESSIONS 225
-#define WNI_CFG_BA_AUTO_SETUP 226
-#define WNI_CFG_ADDBA_REQ_DECLINE 227
-#define WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC 228
-#define WNI_CFG_BG_SCAN_CHANNEL_LIST 229
-#define WNI_CFG_MAX_MEDIUM_TIME 230
-#define WNI_CFG_MAX_MPDUS_IN_AMPDU 231
-#define WNI_CFG_IBSS_AUTO_BSSID 232
-#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG 233
-#define WNI_CFG_PROBE_REQ_ADDNIE_DATA 234
-#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG 235
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1 236
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2 237
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3 238
-#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG 239
-#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA 240
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG 241
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA 242
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG 243
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA 244
-#define WNI_CFG_WPS_ENABLE 245
-#define WNI_CFG_WPS_STATE 246
-#define WNI_CFG_WPS_PROBE_REQ_FLAG 247
-#define WNI_CFG_WPS_VERSION 248
-#define WNI_CFG_WPS_REQUEST_TYPE 249
-#define WNI_CFG_WPS_CFG_METHOD 250
-#define WNI_CFG_WPS_UUID 251
-#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY 252
-#define WNI_CFG_WPS_PIMARY_DEVICE_OUI 253
-#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY 254
-#define WNI_CFG_WPS_ASSOCIATION_STATE 255
-#define WNI_CFG_WPS_CONFIGURATION_ERROR 256
-#define WNI_CFG_WPS_DEVICE_PASSWORD_ID 257
-#define WNI_CFG_WPS_ASSOC_METHOD 258
-#define WNI_CFG_LOW_GAIN_OVERRIDE 259
-#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE 260
-#define WNI_CFG_RPE_POLLING_THRESHOLD 261
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG 262
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG 263
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG 264
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG 265
-#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS 266
-#define WNI_CFG_SINGLE_TID_RC 267
-#define WNI_CFG_RRM_ENABLED 268
-#define WNI_CFG_RRM_OPERATING_CHAN_MAX 269
-#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX 270
-#define WNI_CFG_TX_PWR_CTRL_ENABLE 271
-#define WNI_CFG_MCAST_BCAST_FILTER_SETTING 272
-#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK 273
-#define WNI_CFG_DYNAMIC_PS_POLL_VALUE 274
-#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT 275
-#define WNI_CFG_TELE_BCN_WAKEUP_EN 276
-#define WNI_CFG_TELE_BCN_TRANS_LI 277
-#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS 278
-#define WNI_CFG_TELE_BCN_MAX_LI 279
-#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS 280
-#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS 281
-#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD 282
-#define WNI_CFG_ASSOC_STA_LIMIT 283
-#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL 284
-#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL 285
-#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND 286
-#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD 287
-#define WNI_CFG_ENABLE_CLOSE_LOOP 288
-#define WNI_CFG_ENABLE_LTE_COEX 289
-#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT 290
-#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT 291
-#define WNI_CFG_ENABLE_MC_ADDR_LIST 292
-#define WNI_CFG_ENABLE_UC_FILTER 293
-#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 294
-#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 295
-#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP 296
-#define WNI_CFG_AP_LINK_MONITOR_TIMEOUT 297
-#define WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK 298
-#define WNI_CFG_TDLS_BUF_STA_ENABLED 299
-#define WNI_CFG_TDLS_PUAPSD_INACT_TIME 300
-#define WNI_CFG_TDLS_RX_FRAME_THRESHOLD 301
-#define WNI_CFG_PMF_SA_QUERY_MAX_RETRIES 302
-#define WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL 303
-#define WNI_CFG_ENABLE_ADAPT_RX_DRAIN 304
-#define WNI_CFG_FLEX_CONNECT_POWER_FACTOR 305
-#define WNI_CFG_ANTENNA_DIVESITY 306
-#define WNI_CFG_GO_LINK_MONITOR_TIMEOUT 307
-#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY 308
-#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
+#define WNI_CFG_LISTEN_INTERVAL 40
+#define WNI_CFG_VALID_CHANNEL_LIST 41
+#define WNI_CFG_CURRENT_CHANNEL 42
+#define WNI_CFG_DEFAULT_RATE_INDEX_5GHZ 43
+#define WNI_CFG_DEFAULT_RATE_INDEX_24GHZ 44
+#define WNI_CFG_RATE_ADAPTATION_TYPE 45
+#define WNI_CFG_FIXED_RATE 46
+#define WNI_CFG_FIXED_RATE_MULTICAST_24GHZ 47
+#define WNI_CFG_FIXED_RATE_MULTICAST_5GHZ 48
+#define WNI_CFG_RETRYRATE_POLICY 49
+#define WNI_CFG_RETRYRATE_SECONDARY 50
+#define WNI_CFG_RETRYRATE_TERTIARY 51
+#define WNI_CFG_APSD_ENABLED 52
+#define WNI_CFG_SHARED_KEY_AUTH_ENABLE 53
+#define WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE 54
+#define WNI_CFG_AUTHENTICATION_TYPE 55
+#define WNI_CFG_CF_POLL_REQUEST 56
+#define WNI_CFG_PRIVACY_ENABLED 57
+#define WNI_CFG_SHORT_PREAMBLE 58
+#define WNI_CFG_SHORT_SLOT_TIME 59
+#define WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY 60
+#define WNI_CFG_QOS_ENABLED 61
+#define WNI_CFG_HCF_ENABLED 62
+#define WNI_CFG_RSN_ENABLED 63
+#define WNI_CFG_BACKGROUND_SCAN_PERIOD 64
+#define WNI_CFG_MAX_NUM_PRE_AUTH 65
+#define WNI_CFG_PREAUTH_CLNUP_TIMEOUT 66
+#define WNI_CFG_RELEASE_AID_TIMEOUT 67
+#define WNI_CFG_HEART_BEAT_THRESHOLD 68
+#define WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT 69
+#define WNI_CFG_MANUFACTURER_OUI 70
+#define WNI_CFG_MANUFACTURER_NAME 71
+#define WNI_CFG_MODEL_NUMBER 72
+#define WNI_CFG_MODEL_NAME 73
+#define WNI_CFG_MANUFACTURER_PRODUCT_NAME 74
+#define WNI_CFG_MANUFACTURER_PRODUCT_VERSION 75
+#define WNI_CFG_11D_ENABLED 76
+#define WNI_CFG_MAX_TX_POWER_2_4 77
+#define WNI_CFG_MAX_TX_POWER_5 78
+#define WNI_CFG_NETWORK_DENSITY 79
+#define WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM 80
+#define WNI_CFG_CURRENT_TX_ANTENNA 81
+#define WNI_CFG_CURRENT_RX_ANTENNA 82
+#define WNI_CFG_CURRENT_TX_POWER_LEVEL 83
+#define WNI_CFG_POWER_STATE_PER_CHAIN 84
+#define WNI_CFG_NEW_BSS_FOUND_IND 85
+#define WNI_CFG_PROPRIETARY_ANI_FEATURES_ENABLED 86
+#define WNI_CFG_PROPRIETARY_RATES_ENABLED 87
+#define WNI_CFG_AP_NODE_NAME 88
+#define WNI_CFG_COUNTRY_CODE 89
+#define WNI_CFG_11H_ENABLED 90
+#define WNI_CFG_WT_CNF_TIMEOUT 91
+#define WNI_CFG_KEEPALIVE_TIMEOUT 92
+#define WNI_CFG_PROXIMITY 93
+#define WNI_CFG_LOG_LEVEL 94
+#define WNI_CFG_OLBC_DETECT_TIMEOUT 95
+#define WNI_CFG_PROTECTION_ENABLED 96
+#define WNI_CFG_11G_PROTECTION_ALWAYS 97
+#define WNI_CFG_FORCE_POLICY_PROTECTION 98
+#define WNI_CFG_11G_SHORT_PREAMBLE_ENABLED 99
+#define WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED 100
+#define WNI_CFG_CAL_PERIOD 101
+#define WNI_CFG_STATS_PERIOD 102
+#define WNI_CFG_CAL_CONTROL 103
+#define WNI_CFG_11G_ONLY_POLICY 104
+#define WNI_CFG_PACKET_CLASSIFICATION 105
+#define WNI_CFG_WME_ENABLED 106
+#define WNI_CFG_ADDTS_RSP_TIMEOUT 107
+#define WNI_CFG_MAX_SP_LENGTH 108
+#define WNI_CFG_KEEP_ALIVE_STA_LIMIT_THRESHOLD 109
+#define WNI_CFG_SEND_SINGLE_SSID_ALWAYS 110
+#define WNI_CFG_WSM_ENABLED 111
+#define WNI_CFG_PROP_CAPABILITY 112
+#define WNI_CFG_EDCA_PROFILE 113
+#define WNI_CFG_EDCA_ANI_ACBK_LOCAL 114
+#define WNI_CFG_EDCA_ANI_ACBE_LOCAL 115
+#define WNI_CFG_EDCA_ANI_ACVI_LOCAL 116
+#define WNI_CFG_EDCA_ANI_ACVO_LOCAL 117
+#define WNI_CFG_EDCA_ANI_ACBK 118
+#define WNI_CFG_EDCA_ANI_ACBE 119
+#define WNI_CFG_EDCA_ANI_ACVI 120
+#define WNI_CFG_EDCA_ANI_ACVO 121
+#define WNI_CFG_EDCA_WME_ACBK_LOCAL 122
+#define WNI_CFG_EDCA_WME_ACBE_LOCAL 123
+#define WNI_CFG_EDCA_WME_ACVI_LOCAL 124
+#define WNI_CFG_EDCA_WME_ACVO_LOCAL 125
+#define WNI_CFG_EDCA_WME_ACBK 126
+#define WNI_CFG_EDCA_WME_ACBE 127
+#define WNI_CFG_EDCA_WME_ACVI 128
+#define WNI_CFG_EDCA_WME_ACVO 129
+#define WNI_CFG_EDCA_TIT_DEMO_ACBK_LOCAL 130
+#define WNI_CFG_EDCA_TIT_DEMO_ACBE_LOCAL 131
+#define WNI_CFG_EDCA_TIT_DEMO_ACVI_LOCAL 132
+#define WNI_CFG_EDCA_TIT_DEMO_ACVO_LOCAL 133
+#define WNI_CFG_EDCA_TIT_DEMO_ACBK 134
+#define WNI_CFG_EDCA_TIT_DEMO_ACBE 135
+#define WNI_CFG_EDCA_TIT_DEMO_ACVI 136
+#define WNI_CFG_EDCA_TIT_DEMO_ACVO 137
+#define WNI_CFG_RDET_FLAG 138
+#define WNI_CFG_RADAR_CHANNEL_LIST 139
+#define WNI_CFG_LOCAL_POWER_CONSTRAINT 140
+#define WNI_CFG_ADMIT_POLICY 141
+#define WNI_CFG_ADMIT_BWFACTOR 142
+#define WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE 143
+#define WNI_CFG_CHANNEL_BONDING_MODE 144
+#define WNI_CFG_CB_SECONDARY_CHANNEL_STATE 145
+#define WNI_CFG_DYNAMIC_THRESHOLD_ZERO 146
+#define WNI_CFG_DYNAMIC_THRESHOLD_ONE 147
+#define WNI_CFG_DYNAMIC_THRESHOLD_TWO 148
+#define WNI_CFG_TRIG_STA_BK_SCAN 149
+#define WNI_CFG_DYNAMIC_PROFILE_SWITCHING 150
+#define WNI_CFG_SCAN_CONTROL_LIST 151
+#define WNI_CFG_MIMO_ENABLED 152
+#define WNI_CFG_BLOCK_ACK_ENABLED 153
+#define WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT 154
+#define WNI_CFG_HT_RX_STBC 155
+#define WNI_CFG_HT_CAP_INFO 156
+#define WNI_CFG_HT_AMPDU_PARAMS 157
+#define WNI_CFG_SUPPORTED_MCS_SET 158
+#define WNI_CFG_EXT_HT_CAP_INFO 159
+#define WNI_CFG_TX_BF_CAP 160
+#define WNI_CFG_AS_CAP 161
+#define WNI_CFG_HT_INFO_FIELD1 162
+#define WNI_CFG_HT_INFO_FIELD2 163
+#define WNI_CFG_HT_INFO_FIELD3 164
+#define WNI_CFG_BASIC_MCS_SET 165
+#define WNI_CFG_CURRENT_MCS_SET 166
+#define WNI_CFG_GREENFIELD_CAPABILITY 167
+#define WNI_CFG_VHT_MAX_MPDU_LENGTH 168
+#define WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET 169
+#define WNI_CFG_VHT_LDPC_CODING_CAP 170
+#define WNI_CFG_VHT_SHORT_GI_80MHZ 171
+#define WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ 172
+#define WNI_CFG_VHT_TXSTBC 173
+#define WNI_CFG_VHT_RXSTBC 174
+#define WNI_CFG_VHT_SU_BEAMFORMER_CAP 175
+#define WNI_CFG_VHT_SU_BEAMFORMEE_CAP 176
+#define WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED 177
+#define WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS 178
+#define WNI_CFG_VHT_MU_BEAMFORMER_CAP 179
+#define WNI_CFG_VHT_MU_BEAMFORMEE_CAP 180
+#define WNI_CFG_VHT_TXOP_PS 181
+#define WNI_CFG_VHT_HTC_VHTC_CAP 182
+#define WNI_CFG_VHT_AMPDU_LEN_EXPONENT 183
+#define WNI_CFG_VHT_LINK_ADAPTATION_CAP 184
+#define WNI_CFG_VHT_RX_ANT_PATTERN 185
+#define WNI_CFG_VHT_TX_ANT_PATTERN 186
+#define WNI_CFG_VHT_RX_MCS_MAP 187
+#define WNI_CFG_VHT_TX_MCS_MAP 188
+#define WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE 189
+#define WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE 190
+#define WNI_CFG_VHT_CHANNEL_WIDTH 191
+#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1 192
+#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2 193
+#define WNI_CFG_VHT_BASIC_MCS_SET 194
+#define WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT 195
+#define WNI_CFG_VHT_SS_UNDER_UTIL 196
+#define WNI_CFG_VHT_40MHZ_UTILIZATION 197
+#define WNI_CFG_VHT_80MHZ_UTILIZATION 198
+#define WNI_CFG_VHT_160MHZ_UTILIZATION 199
+#define WNI_CFG_MAX_AMSDU_LENGTH 200
+#define WNI_CFG_MPDU_DENSITY 201
+#define WNI_CFG_NUM_BUFF_ADVERT 202
+#define WNI_CFG_MAX_RX_AMPDU_FACTOR 203
+#define WNI_CFG_SHORT_GI_20MHZ 204
+#define WNI_CFG_SHORT_GI_40MHZ 205
+#define WNI_CFG_RIFS_ENABLED 206
+#define WNI_CFG_MAX_PS_POLL 207
+#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE 208
+#define WNI_CFG_RSSI_FILTER_PERIOD 209
+#define WNI_CFG_MIN_RSSI_THRESHOLD 210
+#define WNI_CFG_NTH_BEACON_FILTER 211
+#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE 212
+#define WNI_CFG_SCAN_IN_POWERSAVE 213
+#define WNI_CFG_IGNORE_DTIM 214
+#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE 215
+#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE 216
+#define WNI_CFG_WOWLAN_DEAUTH_ENABLE 217
+#define WNI_CFG_WOWLAN_DISASSOC_ENABLE 218
+#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON 219
+#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD 220
+#define WNI_CFG_BA_TIMEOUT 221
+#define WNI_CFG_BA_THRESHOLD_HIGH 222
+#define WNI_CFG_MAX_BA_BUFFERS 223
+#define WNI_CFG_MAX_BA_SESSIONS 224
+#define WNI_CFG_BA_AUTO_SETUP 225
+#define WNI_CFG_ADDBA_REQ_DECLINE 226
+#define WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC 227
+#define WNI_CFG_BG_SCAN_CHANNEL_LIST 228
+#define WNI_CFG_MAX_MEDIUM_TIME 229
+#define WNI_CFG_MAX_MPDUS_IN_AMPDU 230
+#define WNI_CFG_IBSS_AUTO_BSSID 231
+#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG 232
+#define WNI_CFG_PROBE_REQ_ADDNIE_DATA 233
+#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG 234
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1 235
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2 236
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3 237
+#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG 238
+#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA 239
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG 240
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA 241
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG 242
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA 243
+#define WNI_CFG_WPS_ENABLE 244
+#define WNI_CFG_WPS_STATE 245
+#define WNI_CFG_WPS_PROBE_REQ_FLAG 246
+#define WNI_CFG_WPS_VERSION 247
+#define WNI_CFG_WPS_REQUEST_TYPE 248
+#define WNI_CFG_WPS_CFG_METHOD 249
+#define WNI_CFG_WPS_UUID 250
+#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY 251
+#define WNI_CFG_WPS_PIMARY_DEVICE_OUI 252
+#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY 253
+#define WNI_CFG_WPS_ASSOCIATION_STATE 254
+#define WNI_CFG_WPS_CONFIGURATION_ERROR 255
+#define WNI_CFG_WPS_DEVICE_PASSWORD_ID 256
+#define WNI_CFG_WPS_ASSOC_METHOD 257
+#define WNI_CFG_LOW_GAIN_OVERRIDE 258
+#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE 259
+#define WNI_CFG_RPE_POLLING_THRESHOLD 260
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG 261
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG 262
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG 263
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG 264
+#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS 265
+#define WNI_CFG_SINGLE_TID_RC 266
+#define WNI_CFG_RRM_ENABLED 267
+#define WNI_CFG_RRM_OPERATING_CHAN_MAX 268
+#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX 269
+#define WNI_CFG_TX_PWR_CTRL_ENABLE 270
+#define WNI_CFG_MCAST_BCAST_FILTER_SETTING 271
+#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK 272
+#define WNI_CFG_DYNAMIC_PS_POLL_VALUE 273
+#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT 274
+#define WNI_CFG_TELE_BCN_WAKEUP_EN 275
+#define WNI_CFG_TELE_BCN_TRANS_LI 276
+#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS 277
+#define WNI_CFG_TELE_BCN_MAX_LI 278
+#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS 279
+#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS 280
+#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD 281
+#define WNI_CFG_ASSOC_STA_LIMIT 282
+#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL 283
+#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL 284
+#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND 285
+#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD 286
+#define WNI_CFG_ENABLE_CLOSE_LOOP 287
+#define WNI_CFG_ENABLE_LTE_COEX 288
+#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT 289
+#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT 290
+#define WNI_CFG_ENABLE_MC_ADDR_LIST 291
+#define WNI_CFG_ENABLE_UC_FILTER 292
+#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 293
+#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 294
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP 295
+#define WNI_CFG_AP_LINK_MONITOR_TIMEOUT 296
+#define WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK 297
+#define WNI_CFG_TDLS_BUF_STA_ENABLED 298
+#define WNI_CFG_TDLS_PUAPSD_INACT_TIME 299
+#define WNI_CFG_TDLS_RX_FRAME_THRESHOLD 300
+#define WNI_CFG_PMF_SA_QUERY_MAX_RETRIES 301
+#define WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL 302
+#define WNI_CFG_ENABLE_ADAPT_RX_DRAIN 303
+#define WNI_CFG_FLEX_CONNECT_POWER_FACTOR 304
+#define WNI_CFG_ANTENNA_DIVESITY 305
+#define WNI_CFG_GO_LINK_MONITOR_TIMEOUT 306
+#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY 307
+#define WNI_CFG_CURRENT_RSSI 308
+#define WNI_CFG_RTT3_ENABLE 309
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL 310
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED 311
/*
* String parameter lengths
@@ -373,7 +372,6 @@
#define WNI_CFG_OPERATIONAL_RATE_SET_LEN 12
#define WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN 8
#define WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET_LEN 4
-#define WNI_CFG_BSSID_LEN 6
#define WNI_CFG_VALID_CHANNEL_LIST_LEN 100
#define WNI_CFG_MANUFACTURER_OUI_LEN 3
#define WNI_CFG_MANUFACTURER_NAME_LEN 65
@@ -2612,11 +2610,11 @@
#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_PARAM_MAX_NUM 312
#define CFG_AP_IBUF_MAX_SIZE 252
-#define CFG_AP_SBUF_MAX_SIZE 3422
+#define CFG_AP_SBUF_MAX_SIZE 3414
#define CFG_STA_IBUF_MAX_SIZE 247
-#define CFG_STA_SBUF_MAX_SIZE 3388
+#define CFG_STA_SBUF_MAX_SIZE 3380
#define CFG_SEM_MAX_NUM 19
#define CFG_STA_MAGIC_DWORD 0xbeefbeef
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index 5a7bb4a1890e..5411fddcb927 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -1,23 +1,29 @@
-/*
- * Copyright (c) 2011-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.
-*/
+ /*
+ * Copyright (c) 2011-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.
+ */
/*
* DO NOT EDIT - This file is generated automatically
@@ -77,274 +83,273 @@
#define WNI_CFG_OPERATIONAL_RATE_SET 37
#define WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET 38
#define WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET 39
-#define WNI_CFG_BSSID 40
-#define WNI_CFG_LISTEN_INTERVAL 41
-#define WNI_CFG_VALID_CHANNEL_LIST 42
-#define WNI_CFG_CURRENT_CHANNEL 43
-#define WNI_CFG_DEFAULT_RATE_INDEX_5GHZ 44
-#define WNI_CFG_DEFAULT_RATE_INDEX_24GHZ 45
-#define WNI_CFG_RATE_ADAPTATION_TYPE 46
-#define WNI_CFG_FIXED_RATE 47
-#define WNI_CFG_FIXED_RATE_MULTICAST_24GHZ 48
-#define WNI_CFG_FIXED_RATE_MULTICAST_5GHZ 49
-#define WNI_CFG_RETRYRATE_POLICY 50
-#define WNI_CFG_RETRYRATE_SECONDARY 51
-#define WNI_CFG_RETRYRATE_TERTIARY 52
-#define WNI_CFG_APSD_ENABLED 53
-#define WNI_CFG_SHARED_KEY_AUTH_ENABLE 54
-#define WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE 55
-#define WNI_CFG_AUTHENTICATION_TYPE 56
-#define WNI_CFG_PRIVACY_ENABLED 58
-#define WNI_CFG_SHORT_PREAMBLE 59
-#define WNI_CFG_SHORT_SLOT_TIME 60
-#define WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY 61
-#define WNI_CFG_QOS_ENABLED 62
-#define WNI_CFG_HCF_ENABLED 63
-#define WNI_CFG_RSN_ENABLED 64
-#define WNI_CFG_BACKGROUND_SCAN_PERIOD 65
-#define WNI_CFG_MAX_NUM_PRE_AUTH 66
-#define WNI_CFG_HEART_BEAT_THRESHOLD 69
-#define WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT 70
-#define WNI_CFG_MANUFACTURER_OUI 71
-#define WNI_CFG_MANUFACTURER_NAME 72
-#define WNI_CFG_MODEL_NUMBER 73
-#define WNI_CFG_MODEL_NAME 74
-#define WNI_CFG_MANUFACTURER_PRODUCT_NAME 75
-#define WNI_CFG_MANUFACTURER_PRODUCT_VERSION 76
-#define WNI_CFG_11D_ENABLED 77
-#define WNI_CFG_MAX_TX_POWER_2_4 78
-#define WNI_CFG_MAX_TX_POWER_5 79
-#define WNI_CFG_NETWORK_DENSITY 80
-#define WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM 81
-#define WNI_CFG_CURRENT_TX_ANTENNA 82
-#define WNI_CFG_CURRENT_RX_ANTENNA 83
-#define WNI_CFG_CURRENT_TX_POWER_LEVEL 84
-#define WNI_CFG_POWER_STATE_PER_CHAIN 85
-#define WNI_CFG_NEW_BSS_FOUND_IND 86
-#define WNI_CFG_PROPRIETARY_ANI_FEATURES_ENABLED 87
-#define WNI_CFG_PROPRIETARY_RATES_ENABLED 88
-#define WNI_CFG_COUNTRY_CODE 90
-#define WNI_CFG_11H_ENABLED 91
-#define WNI_CFG_WT_CNF_TIMEOUT 92
-#define WNI_CFG_KEEPALIVE_TIMEOUT 93
-#define WNI_CFG_PROXIMITY 94
-#define WNI_CFG_LOG_LEVEL 95
-#define WNI_CFG_OLBC_DETECT_TIMEOUT 96
-#define WNI_CFG_PROTECTION_ENABLED 97
-#define WNI_CFG_11G_PROTECTION_ALWAYS 98
-#define WNI_CFG_FORCE_POLICY_PROTECTION 99
-#define WNI_CFG_11G_SHORT_PREAMBLE_ENABLED 100
-#define WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED 101
-#define WNI_CFG_CAL_PERIOD 102
-#define WNI_CFG_STATS_PERIOD 103
-#define WNI_CFG_CAL_CONTROL 104
-#define WNI_CFG_11G_ONLY_POLICY 105
-#define WNI_CFG_PACKET_CLASSIFICATION 106
-#define WNI_CFG_WME_ENABLED 107
-#define WNI_CFG_ADDTS_RSP_TIMEOUT 108
-#define WNI_CFG_MAX_SP_LENGTH 109
-#define WNI_CFG_SEND_SINGLE_SSID_ALWAYS 111
-#define WNI_CFG_WSM_ENABLED 112
-#define WNI_CFG_PROP_CAPABILITY 113
-#define WNI_CFG_EDCA_PROFILE 114
-#define WNI_CFG_EDCA_ANI_ACBK_LOCAL 115
-#define WNI_CFG_EDCA_ANI_ACBE_LOCAL 116
-#define WNI_CFG_EDCA_ANI_ACVI_LOCAL 117
-#define WNI_CFG_EDCA_ANI_ACVO_LOCAL 118
-#define WNI_CFG_EDCA_ANI_ACBK 119
-#define WNI_CFG_EDCA_ANI_ACBE 120
-#define WNI_CFG_EDCA_ANI_ACVI 121
-#define WNI_CFG_EDCA_ANI_ACVO 122
-#define WNI_CFG_EDCA_WME_ACBK_LOCAL 123
-#define WNI_CFG_EDCA_WME_ACBE_LOCAL 124
-#define WNI_CFG_EDCA_WME_ACVI_LOCAL 125
-#define WNI_CFG_EDCA_WME_ACVO_LOCAL 126
-#define WNI_CFG_EDCA_WME_ACBK 127
-#define WNI_CFG_EDCA_WME_ACBE 128
-#define WNI_CFG_EDCA_WME_ACVI 129
-#define WNI_CFG_EDCA_WME_ACVO 130
-#define WNI_CFG_EDCA_TIT_DEMO_ACBK_LOCAL 131
-#define WNI_CFG_EDCA_TIT_DEMO_ACBE_LOCAL 132
-#define WNI_CFG_EDCA_TIT_DEMO_ACVI_LOCAL 133
-#define WNI_CFG_EDCA_TIT_DEMO_ACVO_LOCAL 134
-#define WNI_CFG_EDCA_TIT_DEMO_ACBK 135
-#define WNI_CFG_EDCA_TIT_DEMO_ACBE 136
-#define WNI_CFG_EDCA_TIT_DEMO_ACVI 137
-#define WNI_CFG_EDCA_TIT_DEMO_ACVO 138
-#define WNI_CFG_RDET_FLAG 139
-#define WNI_CFG_RADAR_CHANNEL_LIST 140
-#define WNI_CFG_LOCAL_POWER_CONSTRAINT 141
-#define WNI_CFG_ADMIT_POLICY 142
-#define WNI_CFG_ADMIT_BWFACTOR 143
-#define WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE 144
-#define WNI_CFG_CHANNEL_BONDING_MODE 145
-#define WNI_CFG_CB_SECONDARY_CHANNEL_STATE 146
-#define WNI_CFG_DYNAMIC_THRESHOLD_ZERO 147
-#define WNI_CFG_DYNAMIC_THRESHOLD_ONE 148
-#define WNI_CFG_DYNAMIC_THRESHOLD_TWO 149
-#define WNI_CFG_TRIG_STA_BK_SCAN 150
-#define WNI_CFG_DYNAMIC_PROFILE_SWITCHING 151
-#define WNI_CFG_SCAN_CONTROL_LIST 152
-#define WNI_CFG_MIMO_ENABLED 153
-#define WNI_CFG_BLOCK_ACK_ENABLED 154
-#define WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT 155
-#define WNI_CFG_HT_RX_STBC 156
-#define WNI_CFG_HT_CAP_INFO 157
-#define WNI_CFG_HT_AMPDU_PARAMS 158
-#define WNI_CFG_SUPPORTED_MCS_SET 159
-#define WNI_CFG_EXT_HT_CAP_INFO 160
-#define WNI_CFG_TX_BF_CAP 161
-#define WNI_CFG_AS_CAP 162
-#define WNI_CFG_HT_INFO_FIELD1 163
-#define WNI_CFG_HT_INFO_FIELD2 164
-#define WNI_CFG_HT_INFO_FIELD3 165
-#define WNI_CFG_BASIC_MCS_SET 166
-#define WNI_CFG_CURRENT_MCS_SET 167
-#define WNI_CFG_GREENFIELD_CAPABILITY 168
-#define WNI_CFG_VHT_MAX_MPDU_LENGTH 169
-#define WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET 170
-#define WNI_CFG_VHT_LDPC_CODING_CAP 171
-#define WNI_CFG_VHT_SHORT_GI_80MHZ 172
-#define WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ 173
-#define WNI_CFG_VHT_TXSTBC 174
-#define WNI_CFG_VHT_RXSTBC 175
-#define WNI_CFG_VHT_SU_BEAMFORMER_CAP 176
-#define WNI_CFG_VHT_SU_BEAMFORMEE_CAP 177
-#define WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED 178
-#define WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS 179
-#define WNI_CFG_VHT_MU_BEAMFORMER_CAP 180
-#define WNI_CFG_VHT_MU_BEAMFORMEE_CAP 181
-#define WNI_CFG_VHT_TXOP_PS 182
-#define WNI_CFG_VHT_HTC_VHTC_CAP 183
-#define WNI_CFG_VHT_AMPDU_LEN_EXPONENT 184
-#define WNI_CFG_VHT_LINK_ADAPTATION_CAP 185
-#define WNI_CFG_VHT_RX_ANT_PATTERN 186
-#define WNI_CFG_VHT_TX_ANT_PATTERN 187
-#define WNI_CFG_VHT_RX_MCS_MAP 188
-#define WNI_CFG_VHT_TX_MCS_MAP 189
-#define WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE 190
-#define WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE 191
-#define WNI_CFG_VHT_CHANNEL_WIDTH 192
-#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1 193
-#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2 194
-#define WNI_CFG_VHT_BASIC_MCS_SET 195
-#define WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT 196
-#define WNI_CFG_VHT_SS_UNDER_UTIL 197
-#define WNI_CFG_VHT_40MHZ_UTILIZATION 198
-#define WNI_CFG_VHT_80MHZ_UTILIZATION 199
-#define WNI_CFG_VHT_160MHZ_UTILIZATION 200
-#define WNI_CFG_MAX_AMSDU_LENGTH 201
-#define WNI_CFG_MPDU_DENSITY 202
-#define WNI_CFG_NUM_BUFF_ADVERT 203
-#define WNI_CFG_MAX_RX_AMPDU_FACTOR 204
-#define WNI_CFG_SHORT_GI_20MHZ 205
-#define WNI_CFG_SHORT_GI_40MHZ 206
-#define WNI_CFG_RIFS_ENABLED 207
-#define WNI_CFG_MAX_PS_POLL 208
-#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE 209
-#define WNI_CFG_RSSI_FILTER_PERIOD 210
-#define WNI_CFG_MIN_RSSI_THRESHOLD 211
-#define WNI_CFG_NTH_BEACON_FILTER 212
-#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE 213
-#define WNI_CFG_SCAN_IN_POWERSAVE 214
-#define WNI_CFG_IGNORE_DTIM 215
-#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE 216
-#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE 217
-#define WNI_CFG_WOWLAN_DEAUTH_ENABLE 218
-#define WNI_CFG_WOWLAN_DISASSOC_ENABLE 219
-#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON 220
-#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD 221
-#define WNI_CFG_BA_TIMEOUT 222
-#define WNI_CFG_BA_THRESHOLD_HIGH 223
-#define WNI_CFG_MAX_BA_BUFFERS 224
-#define WNI_CFG_MAX_BA_SESSIONS 225
-#define WNI_CFG_BA_AUTO_SETUP 226
-#define WNI_CFG_ADDBA_REQ_DECLINE 227
-#define WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC 228
-#define WNI_CFG_BG_SCAN_CHANNEL_LIST 229
-#define WNI_CFG_MAX_MEDIUM_TIME 230
-#define WNI_CFG_MAX_MPDUS_IN_AMPDU 231
-#define WNI_CFG_IBSS_AUTO_BSSID 232
-#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG 233
-#define WNI_CFG_PROBE_REQ_ADDNIE_DATA 234
-#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG 235
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1 236
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2 237
-#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3 238
-#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG 239
-#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA 240
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG 241
-#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA 242
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG 243
-#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA 244
-#define WNI_CFG_WPS_ENABLE 245
-#define WNI_CFG_WPS_STATE 246
-#define WNI_CFG_WPS_PROBE_REQ_FLAG 247
-#define WNI_CFG_WPS_VERSION 248
-#define WNI_CFG_WPS_REQUEST_TYPE 249
-#define WNI_CFG_WPS_CFG_METHOD 250
-#define WNI_CFG_WPS_UUID 251
-#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY 252
-#define WNI_CFG_WPS_PIMARY_DEVICE_OUI 253
-#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY 254
-#define WNI_CFG_WPS_ASSOCIATION_STATE 255
-#define WNI_CFG_WPS_CONFIGURATION_ERROR 256
-#define WNI_CFG_WPS_DEVICE_PASSWORD_ID 257
-#define WNI_CFG_WPS_ASSOC_METHOD 258
-#define WNI_CFG_LOW_GAIN_OVERRIDE 259
-#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE 260
-#define WNI_CFG_RPE_POLLING_THRESHOLD 261
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG 262
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG 263
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG 264
-#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG 265
-#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS 266
-#define WNI_CFG_SINGLE_TID_RC 267
-#define WNI_CFG_RRM_ENABLED 268
-#define WNI_CFG_RRM_OPERATING_CHAN_MAX 269
-#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX 270
-#define WNI_CFG_TX_PWR_CTRL_ENABLE 271
-#define WNI_CFG_MCAST_BCAST_FILTER_SETTING 272
-#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK 273
-#define WNI_CFG_DYNAMIC_PS_POLL_VALUE 274
-#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT 275
-#define WNI_CFG_TELE_BCN_WAKEUP_EN 276
-#define WNI_CFG_TELE_BCN_TRANS_LI 277
-#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS 278
-#define WNI_CFG_TELE_BCN_MAX_LI 279
-#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS 280
-#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS 281
-#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD 282
-#define WNI_CFG_ASSOC_STA_LIMIT 283
-#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL 284
-#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL 285
-#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND 286
-#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD 287
-#define WNI_CFG_ENABLE_CLOSE_LOOP 288
-#define WNI_CFG_ENABLE_LTE_COEX 289
-#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT 290
-#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT 291
-#define WNI_CFG_ENABLE_MC_ADDR_LIST 292
-#define WNI_CFG_ENABLE_UC_FILTER 293
-#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 294
-#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 295
-#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP 296
-#define WNI_CFG_AP_LINK_MONITOR_TIMEOUT 297
-#define WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK 298
-#define WNI_CFG_TDLS_BUF_STA_ENABLED 299
-#define WNI_CFG_TDLS_PUAPSD_INACT_TIME 300
-#define WNI_CFG_TDLS_RX_FRAME_THRESHOLD 301
-#define WNI_CFG_PMF_SA_QUERY_MAX_RETRIES 302
-#define WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL 303
-#define WNI_CFG_ENABLE_ADAPT_RX_DRAIN 304
-#define WNI_CFG_FLEX_CONNECT_POWER_FACTOR 305
-#define WNI_CFG_ANTENNA_DIVESITY 306
-#define WNI_CFG_GO_LINK_MONITOR_TIMEOUT 307
-#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY 308
-#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
+#define WNI_CFG_LISTEN_INTERVAL 40
+#define WNI_CFG_VALID_CHANNEL_LIST 41
+#define WNI_CFG_CURRENT_CHANNEL 42
+#define WNI_CFG_DEFAULT_RATE_INDEX_5GHZ 43
+#define WNI_CFG_DEFAULT_RATE_INDEX_24GHZ 44
+#define WNI_CFG_RATE_ADAPTATION_TYPE 45
+#define WNI_CFG_FIXED_RATE 46
+#define WNI_CFG_FIXED_RATE_MULTICAST_24GHZ 47
+#define WNI_CFG_FIXED_RATE_MULTICAST_5GHZ 48
+#define WNI_CFG_RETRYRATE_POLICY 49
+#define WNI_CFG_RETRYRATE_SECONDARY 50
+#define WNI_CFG_RETRYRATE_TERTIARY 51
+#define WNI_CFG_APSD_ENABLED 52
+#define WNI_CFG_SHARED_KEY_AUTH_ENABLE 53
+#define WNI_CFG_OPEN_SYSTEM_AUTH_ENABLE 54
+#define WNI_CFG_AUTHENTICATION_TYPE 55
+#define WNI_CFG_PRIVACY_ENABLED 57
+#define WNI_CFG_SHORT_PREAMBLE 58
+#define WNI_CFG_SHORT_SLOT_TIME 59
+#define WNI_CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY 60
+#define WNI_CFG_QOS_ENABLED 61
+#define WNI_CFG_HCF_ENABLED 62
+#define WNI_CFG_RSN_ENABLED 63
+#define WNI_CFG_BACKGROUND_SCAN_PERIOD 64
+#define WNI_CFG_MAX_NUM_PRE_AUTH 65
+#define WNI_CFG_HEART_BEAT_THRESHOLD 68
+#define WNI_CFG_PROBE_AFTER_HB_FAIL_TIMEOUT 69
+#define WNI_CFG_MANUFACTURER_OUI 70
+#define WNI_CFG_MANUFACTURER_NAME 71
+#define WNI_CFG_MODEL_NUMBER 72
+#define WNI_CFG_MODEL_NAME 73
+#define WNI_CFG_MANUFACTURER_PRODUCT_NAME 74
+#define WNI_CFG_MANUFACTURER_PRODUCT_VERSION 75
+#define WNI_CFG_11D_ENABLED 76
+#define WNI_CFG_MAX_TX_POWER_2_4 77
+#define WNI_CFG_MAX_TX_POWER_5 78
+#define WNI_CFG_NETWORK_DENSITY 79
+#define WNI_CFG_ADAPTIVE_THRESHOLD_ALGORITHM 80
+#define WNI_CFG_CURRENT_TX_ANTENNA 81
+#define WNI_CFG_CURRENT_RX_ANTENNA 82
+#define WNI_CFG_CURRENT_TX_POWER_LEVEL 83
+#define WNI_CFG_POWER_STATE_PER_CHAIN 84
+#define WNI_CFG_NEW_BSS_FOUND_IND 85
+#define WNI_CFG_PROPRIETARY_ANI_FEATURES_ENABLED 86
+#define WNI_CFG_PROPRIETARY_RATES_ENABLED 87
+#define WNI_CFG_COUNTRY_CODE 89
+#define WNI_CFG_11H_ENABLED 90
+#define WNI_CFG_WT_CNF_TIMEOUT 91
+#define WNI_CFG_KEEPALIVE_TIMEOUT 92
+#define WNI_CFG_PROXIMITY 93
+#define WNI_CFG_LOG_LEVEL 94
+#define WNI_CFG_OLBC_DETECT_TIMEOUT 95
+#define WNI_CFG_PROTECTION_ENABLED 96
+#define WNI_CFG_11G_PROTECTION_ALWAYS 97
+#define WNI_CFG_FORCE_POLICY_PROTECTION 98
+#define WNI_CFG_11G_SHORT_PREAMBLE_ENABLED 99
+#define WNI_CFG_11G_SHORT_SLOT_TIME_ENABLED 100
+#define WNI_CFG_CAL_PERIOD 101
+#define WNI_CFG_STATS_PERIOD 102
+#define WNI_CFG_CAL_CONTROL 103
+#define WNI_CFG_11G_ONLY_POLICY 104
+#define WNI_CFG_PACKET_CLASSIFICATION 105
+#define WNI_CFG_WME_ENABLED 106
+#define WNI_CFG_ADDTS_RSP_TIMEOUT 107
+#define WNI_CFG_MAX_SP_LENGTH 108
+#define WNI_CFG_SEND_SINGLE_SSID_ALWAYS 110
+#define WNI_CFG_WSM_ENABLED 111
+#define WNI_CFG_PROP_CAPABILITY 112
+#define WNI_CFG_EDCA_PROFILE 113
+#define WNI_CFG_EDCA_ANI_ACBK_LOCAL 114
+#define WNI_CFG_EDCA_ANI_ACBE_LOCAL 115
+#define WNI_CFG_EDCA_ANI_ACVI_LOCAL 116
+#define WNI_CFG_EDCA_ANI_ACVO_LOCAL 117
+#define WNI_CFG_EDCA_ANI_ACBK 118
+#define WNI_CFG_EDCA_ANI_ACBE 119
+#define WNI_CFG_EDCA_ANI_ACVI 120
+#define WNI_CFG_EDCA_ANI_ACVO 121
+#define WNI_CFG_EDCA_WME_ACBK_LOCAL 122
+#define WNI_CFG_EDCA_WME_ACBE_LOCAL 123
+#define WNI_CFG_EDCA_WME_ACVI_LOCAL 124
+#define WNI_CFG_EDCA_WME_ACVO_LOCAL 125
+#define WNI_CFG_EDCA_WME_ACBK 126
+#define WNI_CFG_EDCA_WME_ACBE 127
+#define WNI_CFG_EDCA_WME_ACVI 128
+#define WNI_CFG_EDCA_WME_ACVO 129
+#define WNI_CFG_EDCA_TIT_DEMO_ACBK_LOCAL 130
+#define WNI_CFG_EDCA_TIT_DEMO_ACBE_LOCAL 131
+#define WNI_CFG_EDCA_TIT_DEMO_ACVI_LOCAL 132
+#define WNI_CFG_EDCA_TIT_DEMO_ACVO_LOCAL 133
+#define WNI_CFG_EDCA_TIT_DEMO_ACBK 134
+#define WNI_CFG_EDCA_TIT_DEMO_ACBE 135
+#define WNI_CFG_EDCA_TIT_DEMO_ACVI 136
+#define WNI_CFG_EDCA_TIT_DEMO_ACVO 137
+#define WNI_CFG_RDET_FLAG 138
+#define WNI_CFG_RADAR_CHANNEL_LIST 139
+#define WNI_CFG_LOCAL_POWER_CONSTRAINT 140
+#define WNI_CFG_ADMIT_POLICY 141
+#define WNI_CFG_ADMIT_BWFACTOR 142
+#define WNI_CFG_MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE 143
+#define WNI_CFG_CHANNEL_BONDING_MODE 144
+#define WNI_CFG_CB_SECONDARY_CHANNEL_STATE 145
+#define WNI_CFG_DYNAMIC_THRESHOLD_ZERO 146
+#define WNI_CFG_DYNAMIC_THRESHOLD_ONE 147
+#define WNI_CFG_DYNAMIC_THRESHOLD_TWO 148
+#define WNI_CFG_TRIG_STA_BK_SCAN 149
+#define WNI_CFG_DYNAMIC_PROFILE_SWITCHING 150
+#define WNI_CFG_SCAN_CONTROL_LIST 151
+#define WNI_CFG_MIMO_ENABLED 152
+#define WNI_CFG_BLOCK_ACK_ENABLED 153
+#define WNI_CFG_BA_ACTIVITY_CHECK_TIMEOUT 154
+#define WNI_CFG_HT_RX_STBC 155
+#define WNI_CFG_HT_CAP_INFO 156
+#define WNI_CFG_HT_AMPDU_PARAMS 157
+#define WNI_CFG_SUPPORTED_MCS_SET 158
+#define WNI_CFG_EXT_HT_CAP_INFO 159
+#define WNI_CFG_TX_BF_CAP 160
+#define WNI_CFG_AS_CAP 161
+#define WNI_CFG_HT_INFO_FIELD1 162
+#define WNI_CFG_HT_INFO_FIELD2 163
+#define WNI_CFG_HT_INFO_FIELD3 164
+#define WNI_CFG_BASIC_MCS_SET 165
+#define WNI_CFG_CURRENT_MCS_SET 166
+#define WNI_CFG_GREENFIELD_CAPABILITY 167
+#define WNI_CFG_VHT_MAX_MPDU_LENGTH 168
+#define WNI_CFG_VHT_SUPPORTED_CHAN_WIDTH_SET 169
+#define WNI_CFG_VHT_LDPC_CODING_CAP 170
+#define WNI_CFG_VHT_SHORT_GI_80MHZ 171
+#define WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ 172
+#define WNI_CFG_VHT_TXSTBC 173
+#define WNI_CFG_VHT_RXSTBC 174
+#define WNI_CFG_VHT_SU_BEAMFORMER_CAP 175
+#define WNI_CFG_VHT_SU_BEAMFORMEE_CAP 176
+#define WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED 177
+#define WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS 178
+#define WNI_CFG_VHT_MU_BEAMFORMER_CAP 179
+#define WNI_CFG_VHT_MU_BEAMFORMEE_CAP 180
+#define WNI_CFG_VHT_TXOP_PS 181
+#define WNI_CFG_VHT_HTC_VHTC_CAP 182
+#define WNI_CFG_VHT_AMPDU_LEN_EXPONENT 183
+#define WNI_CFG_VHT_LINK_ADAPTATION_CAP 184
+#define WNI_CFG_VHT_RX_ANT_PATTERN 185
+#define WNI_CFG_VHT_TX_ANT_PATTERN 186
+#define WNI_CFG_VHT_RX_MCS_MAP 187
+#define WNI_CFG_VHT_TX_MCS_MAP 188
+#define WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE 189
+#define WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE 190
+#define WNI_CFG_VHT_CHANNEL_WIDTH 191
+#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT1 192
+#define WNI_CFG_VHT_CHANNEL_CENTER_FREQ_SEGMENT2 193
+#define WNI_CFG_VHT_BASIC_MCS_SET 194
+#define WNI_CFG_VHT_MU_MIMO_CAP_STA_COUNT 195
+#define WNI_CFG_VHT_SS_UNDER_UTIL 196
+#define WNI_CFG_VHT_40MHZ_UTILIZATION 197
+#define WNI_CFG_VHT_80MHZ_UTILIZATION 198
+#define WNI_CFG_VHT_160MHZ_UTILIZATION 199
+#define WNI_CFG_MAX_AMSDU_LENGTH 200
+#define WNI_CFG_MPDU_DENSITY 201
+#define WNI_CFG_NUM_BUFF_ADVERT 202
+#define WNI_CFG_MAX_RX_AMPDU_FACTOR 203
+#define WNI_CFG_SHORT_GI_20MHZ 204
+#define WNI_CFG_SHORT_GI_40MHZ 205
+#define WNI_CFG_RIFS_ENABLED 206
+#define WNI_CFG_MAX_PS_POLL 207
+#define WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE 208
+#define WNI_CFG_RSSI_FILTER_PERIOD 209
+#define WNI_CFG_MIN_RSSI_THRESHOLD 210
+#define WNI_CFG_NTH_BEACON_FILTER 211
+#define WNI_CFG_BROADCAST_FRAME_FILTER_ENABLE 212
+#define WNI_CFG_SCAN_IN_POWERSAVE 213
+#define WNI_CFG_IGNORE_DTIM 214
+#define WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE 215
+#define WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE 216
+#define WNI_CFG_WOWLAN_DEAUTH_ENABLE 217
+#define WNI_CFG_WOWLAN_DISASSOC_ENABLE 218
+#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON 219
+#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD 220
+#define WNI_CFG_BA_TIMEOUT 221
+#define WNI_CFG_BA_THRESHOLD_HIGH 222
+#define WNI_CFG_MAX_BA_BUFFERS 223
+#define WNI_CFG_MAX_BA_SESSIONS 224
+#define WNI_CFG_BA_AUTO_SETUP 225
+#define WNI_CFG_ADDBA_REQ_DECLINE 226
+#define WNI_CFG_DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC 227
+#define WNI_CFG_BG_SCAN_CHANNEL_LIST 228
+#define WNI_CFG_MAX_MEDIUM_TIME 229
+#define WNI_CFG_MAX_MPDUS_IN_AMPDU 230
+#define WNI_CFG_IBSS_AUTO_BSSID 231
+#define WNI_CFG_PROBE_REQ_ADDNIE_FLAG 232
+#define WNI_CFG_PROBE_REQ_ADDNIE_DATA 233
+#define WNI_CFG_PROBE_RSP_ADDNIE_FLAG 234
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1 235
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA2 236
+#define WNI_CFG_PROBE_RSP_ADDNIE_DATA3 237
+#define WNI_CFG_ASSOC_RSP_ADDNIE_FLAG 238
+#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA 239
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_FLAG 240
+#define WNI_CFG_PROBE_REQ_ADDNP2PIE_DATA 241
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_FLAG 242
+#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA 243
+#define WNI_CFG_WPS_ENABLE 244
+#define WNI_CFG_WPS_STATE 245
+#define WNI_CFG_WPS_PROBE_REQ_FLAG 246
+#define WNI_CFG_WPS_VERSION 247
+#define WNI_CFG_WPS_REQUEST_TYPE 248
+#define WNI_CFG_WPS_CFG_METHOD 249
+#define WNI_CFG_WPS_UUID 250
+#define WNI_CFG_WPS_PRIMARY_DEVICE_CATEGORY 251
+#define WNI_CFG_WPS_PIMARY_DEVICE_OUI 252
+#define WNI_CFG_WPS_DEVICE_SUB_CATEGORY 253
+#define WNI_CFG_WPS_ASSOCIATION_STATE 254
+#define WNI_CFG_WPS_CONFIGURATION_ERROR 255
+#define WNI_CFG_WPS_DEVICE_PASSWORD_ID 256
+#define WNI_CFG_WPS_ASSOC_METHOD 257
+#define WNI_CFG_LOW_GAIN_OVERRIDE 258
+#define WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE 259
+#define WNI_CFG_RPE_POLLING_THRESHOLD 260
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC0_REG 261
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC1_REG 262
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC2_REG 263
+#define WNI_CFG_RPE_AGING_THRESHOLD_FOR_AC3_REG 264
+#define WNI_CFG_NO_OF_ONCHIP_REORDER_SESSIONS 265
+#define WNI_CFG_SINGLE_TID_RC 266
+#define WNI_CFG_RRM_ENABLED 267
+#define WNI_CFG_RRM_OPERATING_CHAN_MAX 268
+#define WNI_CFG_RRM_NON_OPERATING_CHAN_MAX 269
+#define WNI_CFG_TX_PWR_CTRL_ENABLE 270
+#define WNI_CFG_MCAST_BCAST_FILTER_SETTING 271
+#define WNI_CFG_BTC_DHCP_BT_SLOTS_TO_BLOCK 272
+#define WNI_CFG_DYNAMIC_PS_POLL_VALUE 273
+#define WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT 274
+#define WNI_CFG_TELE_BCN_WAKEUP_EN 275
+#define WNI_CFG_TELE_BCN_TRANS_LI 276
+#define WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS 277
+#define WNI_CFG_TELE_BCN_MAX_LI 278
+#define WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS 279
+#define WNI_CFG_BTC_A2DP_DHCP_BT_SUB_INTERVALS 280
+#define WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD 281
+#define WNI_CFG_ASSOC_STA_LIMIT 282
+#define WNI_CFG_SAP_CHANNEL_SELECT_START_CHANNEL 283
+#define WNI_CFG_SAP_CHANNEL_SELECT_END_CHANNEL 284
+#define WNI_CFG_SAP_CHANNEL_SELECT_OPERATING_BAND 285
+#define WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD 286
+#define WNI_CFG_ENABLE_CLOSE_LOOP 287
+#define WNI_CFG_ENABLE_LTE_COEX 288
+#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT 289
+#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT 290
+#define WNI_CFG_ENABLE_MC_ADDR_LIST 291
+#define WNI_CFG_ENABLE_UC_FILTER 292
+#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 293
+#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 294
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP 295
+#define WNI_CFG_AP_LINK_MONITOR_TIMEOUT 296
+#define WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK 297
+#define WNI_CFG_TDLS_BUF_STA_ENABLED 298
+#define WNI_CFG_TDLS_PUAPSD_INACT_TIME 299
+#define WNI_CFG_TDLS_RX_FRAME_THRESHOLD 300
+#define WNI_CFG_PMF_SA_QUERY_MAX_RETRIES 301
+#define WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL 302
+#define WNI_CFG_ENABLE_ADAPT_RX_DRAIN 303
+#define WNI_CFG_FLEX_CONNECT_POWER_FACTOR 304
+#define WNI_CFG_ANTENNA_DIVESITY 305
+#define WNI_CFG_GO_LINK_MONITOR_TIMEOUT 306
+#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY 307
+#define WNI_CFG_CURRENT_RSSI 308
+#define WNI_CFG_RTT3_ENABLE 309
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL 310
+#define WNI_CFG_TDLS_OFF_CHANNEL_ENABLED 311
/*
* String parameter lengths
@@ -361,7 +366,6 @@
#define WNI_CFG_OPERATIONAL_RATE_SET_LEN 12
#define WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN 8
#define WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET_LEN 4
-#define WNI_CFG_BSSID_LEN 6
#define WNI_CFG_VALID_CHANNEL_LIST_LEN 100
#define WNI_CFG_MANUFACTURER_OUI_LEN 3
#define WNI_CFG_MANUFACTURER_NAME_LEN 65
@@ -1679,9 +1683,9 @@
#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_PARAM_MAX_NUM 312
#define CFG_STA_IBUF_MAX_SIZE 247
-#define CFG_STA_SBUF_MAX_SIZE 3388
+#define CFG_STA_SBUF_MAX_SIZE 3380
#define CFG_SEM_MAX_NUM 19
#define CFG_STA_MAGIC_DWORD 0xbeefbeef
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index 357aa64fda75..fdca4815b5e5 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -673,15 +673,6 @@ NONE
* In IBSS, this can be changed for coalescing, should SME go into IDLE state?
*
-WNI_CFG_BSSID S 6 7
-V RW NP RESTART
-NONE
-6 0x22 0x22 0x11 0x11 0x33 0x33
-V RW NP RESTART
-NONE
-6 0x22 0x22 0x11 0x11 0x33 0x33
-
-
*
* Listen Interval
*
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index f9e7c418e5c0..e0d45f4bc300 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -668,6 +668,7 @@ typedef struct sSirMbMsgP2p
#define SIR_HAL_UPDATE_RX_NSS (SIR_HAL_ITC_MSG_TYPES_BEGIN + 257)
#endif
+#define SIR_HAL_VDEV_STOP_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 258)
#define SIR_HAL_MSG_TYPES_END (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF)
// CFG message types
diff --git a/CORE/MAC/src/pe/lim/limAdmitControl.c b/CORE/MAC/src/pe/lim/limAdmitControl.c
index 16b32fcbe5c8..dbfce8dbfe66 100644
--- a/CORE/MAC/src/pe/lim/limAdmitControl.c
+++ b/CORE/MAC/src/pe/lim/limAdmitControl.c
@@ -1258,14 +1258,6 @@ void limProcessHalAddTsRsp(tpAniSirGlobal pMac, tpSirMsgQ limMsg)
// Send DELTS action frame to AP
// 090803: Get peer MAC addr from session
-#if 0
- cfgLen = sizeof(tSirMacAddr);
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, peerMacAddr, &cfgLen) != eSIR_SUCCESS)
- {
- limLog(pMac, LOGP, FL("Fail to retrieve BSSID "));
- goto end;
- }
-#endif //TO SUPPORT BT-AMP
sirCopyMacAddr(peerMacAddr,psessionEntry->bssId);
// 090803: Add the SME Session ID
diff --git a/CORE/MAC/src/pe/lim/limApi.c b/CORE/MAC/src/pe/lim/limApi.c
index 502b5f83e240..87bc9eb9a1fc 100644
--- a/CORE/MAC/src/pe/lim/limApi.c
+++ b/CORE/MAC/src/pe/lim/limApi.c
@@ -728,13 +728,6 @@ limInitialize(tpAniSirGlobal pMac)
return status;
}
- /*
- * MLM will be intitalized when 'START' request comes from SME.
- * limInitMlm calls limCreateTimers, which actually relies on
- * CFG to be downloaded. So it should not be called as part of
- * peStart, as CFG download is happening after peStart.
- */
- //limInitMlm(pMac);
// Initializations for maintaining peers in IBSS
limIbssInit(pMac);
@@ -751,34 +744,6 @@ limInitialize(tpAniSirGlobal pMac)
vos_list_init(&pMac->lim.gLimMgmtFrameRegistratinQueue);
-#if 0
-
- vos_trace_setLevel(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_ERROR);
- vos_trace_setLevel(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_WARN);
- vos_trace_setLevel(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_FATAL);
-
- vos_trace_setLevel(VOS_MODULE_ID_HAL, VOS_TRACE_LEVEL_WARN);
- vos_trace_setLevel(VOS_MODULE_ID_HAL, VOS_TRACE_LEVEL_ERROR);
-
- vos_trace_setLevel(VOS_MODULE_ID_SYS, VOS_TRACE_LEVEL_WARN);
- vos_trace_setLevel(VOS_MODULE_ID_SYS, VOS_TRACE_LEVEL_ERROR);
- vos_trace_setLevel(VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_ERROR);
-
- vos_trace_setLevel(VOS_MODULE_ID_SAL, VOS_TRACE_LEVEL_ERROR);
-
- vos_trace_setLevel(VOS_MODULE_ID_SSC, VOS_TRACE_LEVEL_ERROR);
-
- vos_trace_setLevel(VOS_MODULE_ID_SAL, VOS_TRACE_LEVEL_ERROR);
- vos_trace_setLevel(VOS_MODULE_ID_VOSS, VOS_TRACE_LEVEL_ERROR);
-
- vos_trace_setLevel(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR);
-
-
- vos_trace_setLevel(VOS_MODULE_ID_BAL, VOS_TRACE_LEVEL_ERROR);
-
- vos_trace_setLevel(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR);
-#endif
-
//Initialize the configurations needed by PE
if( eSIR_FAILURE == __limInitConfig(pMac))
{
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index a2664b7d7999..86cc55e71371 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -786,16 +786,6 @@ limSendDelStaCnf(tpAniSirGlobal pMac, tSirMacAddr staDsAddr,
{
// Set BSSID at CFG to null
tSirMacAddr nullAddr = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
- #if 0
- if (cfgSetStr(pMac, WNI_CFG_BSSID, (tANI_U8 *) &nullAddr,
- sizeof(tSirMacAddr)) != eSIR_SUCCESS)
- {
- /// Could not update BSSID at CFG. Log error.
- limLog(pMac, LOGP, FL("could not update BSSID at CFG"));
-
- return;
- }
- #endif//TO SUPPORT BT-AMP
sirCopyMacAddr(nullAddr,psessionEntry->bssId);
@@ -1508,20 +1498,6 @@ limRestorePreReassocState(tpAniSirGlobal pMac,
// 'Change' timer for future activations
limDeactivateAndChangeTimer(pMac, eLIM_REASSOC_FAIL_TIMER);
- // Update BSSID at CFG database
- #if 0
- if (cfgSetStr(pMac, WNI_CFG_BSSID,
- pMac->lim.gLimCurrentBssId,
- sizeof(tSirMacAddr)) != eSIR_SUCCESS)
- {
- /// Could not update BSSID at CFG. Log error.
- limLog(pMac, LOGP, FL("could not update BSSID at CFG"));
- return;
- }
- #endif
-
- // chanNum = pMac->lim.gLimCurrentChannelId;
-
/* To support BT-AMP */
chanNum = psessionEntry->currentOperChannel;
secChanOffset = psessionEntry->htSecondaryChannelOffset;
diff --git a/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c b/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c
index 23b58c5055ff..2c114a91fb15 100644
--- a/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c
+++ b/CORE/MAC/src/pe/lim/limIbssPeerMgmt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2013 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -557,15 +557,7 @@ ibss_bss_add(
vos_mem_copy(psessionEntry->bssId, pHdr->bssId,
sizeof(tSirMacAddr));
- #if 0
- if (cfgSetStr(pMac, WNI_CFG_BSSID, (tANI_U8 *) pHdr->bssId, sizeof(tSirMacAddr))
- != eSIR_SUCCESS)
- limLog(pMac, LOGP, FL("could not update BSSID at CFG"));
- #endif //TO SUPPORT BT-AMP
-
sirCopyMacAddr(pHdr->bssId,psessionEntry->bssId);
- /* We need not use global Mac address since per seesion BSSID is available */
- //limSetBssid(pMac, pHdr->bssId);
#if 0
if (wlan_cfgGetInt(pMac, WNI_CFG_BEACON_INTERVAL, &cfg) != eSIR_SUCCESS)
diff --git a/CORE/MAC/src/pe/lim/limProcessActionFrame.c b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
index 60061269250e..14394be3043d 100644
--- a/CORE/MAC/src/pe/lim/limProcessActionFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessActionFrame.c
@@ -1103,13 +1103,13 @@ __limProcessDelTsReq(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,tpPESession pse
static void
__limProcessBasicMeasReq(tpAniSirGlobal pMac,
tpSirMacMeasReqActionFrame pMeasReqFrame,
- tSirMacAddr peerMacAddr)
+ tSirMacAddr peerMacAddr, tpPESession psessionEntry)
{
// TBD - Station shall perform basic measurements
if (limSendMeasReportFrame(pMac,
pMeasReqFrame,
- peerMacAddr) != eSIR_SUCCESS)
+ peerMacAddr, psessionEntry) != eSIR_SUCCESS)
{
PELOGE(limLog(pMac, LOGE, FL("fail to send Basic Meas report "));)
return;
@@ -1140,13 +1140,13 @@ __limProcessBasicMeasReq(tpAniSirGlobal pMac,
static void
__limProcessCcaMeasReq(tpAniSirGlobal pMac,
tpSirMacMeasReqActionFrame pMeasReqFrame,
- tSirMacAddr peerMacAddr)
+ tSirMacAddr peerMacAddr, tpPESession psessionEntry)
{
// TBD - Station shall perform cca measurements
if (limSendMeasReportFrame(pMac,
pMeasReqFrame,
- peerMacAddr) != eSIR_SUCCESS)
+ peerMacAddr, psessionEntry) != eSIR_SUCCESS)
{
PELOGE(limLog(pMac, LOGE, FL("fail to send CCA Meas report "));)
return;
@@ -1176,11 +1176,11 @@ __limProcessCcaMeasReq(tpAniSirGlobal pMac,
static void
__limProcessRpiMeasReq(tpAniSirGlobal pMac,
tpSirMacMeasReqActionFrame pMeasReqFrame,
- tSirMacAddr peerMacAddr)
+ tSirMacAddr peerMacAddr, tpPESession psessionEntry)
{
if (limSendMeasReportFrame(pMac,
pMeasReqFrame,
- peerMacAddr) != eSIR_SUCCESS)
+ peerMacAddr, psessionEntry) != eSIR_SUCCESS)
{
PELOGE(limLog(pMac, LOGE, FL("fail to send RPI Meas report "));)
return;
@@ -1205,7 +1205,8 @@ __limProcessRpiMeasReq(tpAniSirGlobal pMac,
*/
static void
-__limProcessMeasurementRequestFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo)
+__limProcessMeasurementRequestFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,
+ tpPESession psessionEntry)
{
tpSirMacMgmtHdr pHdr;
tANI_U8 *pBody;
@@ -1235,15 +1236,15 @@ __limProcessMeasurementRequestFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo)
switch(pMeasReqFrame->measReqIE.measType)
{
case SIR_MAC_BASIC_MEASUREMENT_TYPE:
- __limProcessBasicMeasReq(pMac, pMeasReqFrame, pHdr->sa);
+ __limProcessBasicMeasReq(pMac, pMeasReqFrame, pHdr->sa, psessionEntry);
break;
case SIR_MAC_CCA_MEASUREMENT_TYPE:
- __limProcessCcaMeasReq(pMac, pMeasReqFrame, pHdr->sa);
+ __limProcessCcaMeasReq(pMac, pMeasReqFrame, pHdr->sa, psessionEntry);
break;
case SIR_MAC_RPI_MEASUREMENT_TYPE:
- __limProcessRpiMeasReq(pMac, pMeasReqFrame, pHdr->sa);
+ __limProcessRpiMeasReq(pMac, pMeasReqFrame, pHdr->sa, psessionEntry);
break;
default:
@@ -1269,7 +1270,7 @@ __limProcessMeasurementRequestFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo)
*/
static void
-__limProcessTpcRequestFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo)
+__limProcessTpcRequestFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tpPESession psessionEntry)
{
tpSirMacMgmtHdr pHdr;
tANI_U8 *pBody;
@@ -1298,7 +1299,7 @@ __limProcessTpcRequestFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo)
if (limSendTpcReportFrame(pMac,
pTpcReqFrame,
- pHdr->sa) != eSIR_SUCCESS)
+ pHdr->sa, psessionEntry) != eSIR_SUCCESS)
{
PELOGE(limLog(pMac, LOGE, FL("fail to send TPC Report Frame. "));)
return;
@@ -2233,7 +2234,7 @@ limProcessActionFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,tpPESession ps
case SIR_MAC_ACTION_MEASURE_REQUEST_ID:
if(psessionEntry->lim11hEnable)
{
- __limProcessMeasurementRequestFrame(pMac, pRxPacketInfo);
+ __limProcessMeasurementRequestFrame(pMac, pRxPacketInfo, psessionEntry);
}
break;
@@ -2243,7 +2244,7 @@ limProcessActionFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,tpPESession ps
{
if(psessionEntry->lim11hEnable)
{
- __limProcessTpcRequestFrame(pMac, pRxPacketInfo);
+ __limProcessTpcRequestFrame(pMac, pRxPacketInfo, psessionEntry);
}
}
break;
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
index 09b00e676ea5..57fd8cdbe7a9 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
@@ -388,16 +388,6 @@ limProcessAssocRspFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tANI_U8 sub
vos_mem_free(pBeaconStruct);
return;
}
-#if 0
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, currentBssId, &cfg) !=
- eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- vos_mem_free(pBeaconStruct);
- return;
- }
-#endif //TO SUPPORT BT-AMP
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
if (subType == LIM_ASSOC)
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
index a1695399218a..48710190fa99 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
@@ -1834,19 +1834,7 @@ limProcessMlmStartReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
#endif //TO SUPPORT BT-AMP
- // Update BSSID & SSID at CFG database
- #if 0 //We are not using the BSSID and SSID from the config file, instead we are reading form the session table
- if (cfgSetStr(pMac, WNI_CFG_BSSID, (tANI_U8 *) pMlmStartReq->bssId, sizeof(tSirMacAddr))
- != eSIR_SUCCESS)
- limLog(pMac, LOGP, FL("could not update BSSID at CFG"));
-
-
-
- vos_mem_copy( pMac->lim.gLimCurrentBssId,
- pMlmStartReq->bssId,
- sizeof(tSirMacAddr));
- #endif //TO SUPPORT BT-AMP
-
+ // Update SSID at CFG database
#if 0
if (cfgSetStr(pMac, WNI_CFG_SSID, (tANI_U8 *) &pMlmStartReq->ssId.ssId, pMlmStartReq->ssId.length)
!= eSIR_SUCCESS)
@@ -2416,15 +2404,6 @@ limProcessMlmAuthReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
* adress and requested authentication algorithm is
* supported.
*/
- #if 0
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, currentBssId, &cfg) !=
- eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //To SuppoRT BT-AMP
-
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
if (((((psessionEntry->limSystemRole== eLIM_STA_ROLE) || (psessionEntry->limSystemRole == eLIM_BT_AMP_STA_ROLE)) &&
@@ -2607,14 +2586,6 @@ limProcessMlmAssocReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
return;
}
- #if 0
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, currentBssId, &cfg) !=
- eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
if ( (psessionEntry->limSystemRole != eLIM_AP_ROLE && psessionEntry->limSystemRole != eLIM_BT_AMP_AP_ROLE) &&
@@ -2776,17 +2747,6 @@ limProcessMlmReassocReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
psessionEntry->limMlmState = eLIM_MLM_WT_REASSOC_RSP_STATE;
MTRACE(macTrace(pMac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId, psessionEntry->limMlmState));
-#if 0
- // Update BSSID at CFG database
- if (wlan_cfgSetStr(pMac, WNI_CFG_BSSID,
- pMac->lim.gLimReassocBssId,
- sizeof(tSirMacAddr)) != eSIR_SUCCESS)
- {
- /// Could not update BSSID at CFG. Log error.
- limLog(pMac, LOGP, FL("could not update BSSID at CFG"));
- }
-#endif //TO SUPPORT BT-AMP
-
/* Copy Global Reassoc ID*/
// sirCopyMacAddr(psessionEntry->reassocbssId,pMac->lim.gLimReAssocBssId);
@@ -2887,14 +2847,6 @@ limProcessMlmDisassocReqNtf(tpAniSirGlobal pMac, eHalStatus suspendStatus, tANI_
psessionEntry->limSystemRole, psessionEntry->limMlmState,
MAC_ADDR_ARRAY(pMlmDisassocReq->peerMacAddr));
- #if 0
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, currentBssId, &cfg) !=
- eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //BT-AMP Support
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
switch (psessionEntry->limSystemRole)
@@ -3210,14 +3162,6 @@ limProcessMlmDeauthReqNtf(tpAniSirGlobal pMac, eHalStatus suspendStatus, tANI_U3
"mlmstate %d from: "MAC_ADDRESS_STR), pMlmDeauthReq->sessionId,
psessionEntry->limSystemRole, psessionEntry->limMlmState,
MAC_ADDR_ARRAY(pMlmDeauthReq->peerMacAddr));
- #if 0
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, currentBssId, &cfg) !=
- eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //SUPPORT BT-AMP
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
switch (psessionEntry->limSystemRole)
@@ -3527,12 +3471,6 @@ tpPESession psessionEntry;
pMlmSetKeysReq->numKeys );
limPrintMacAddr( pMac, pMlmSetKeysReq->peerMacAddr, LOGW );
- #if 0
- if( eSIR_SUCCESS != wlan_cfgGetStr( pMac, WNI_CFG_BSSID, currentBssId, &cfg )) {
- limLog( pMac, LOGP, FL("Could not retrieve BSSID"));
- return;
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
switch( psessionEntry->limSystemRole ) {
@@ -3717,13 +3655,6 @@ tLimMlmRemoveKeyCnf mlmRemoveKeyCnf;
// Hold onto the RemoveKeys request parameters
pMac->lim.gpLimMlmRemoveKeyReq = (void *) pMlmRemoveKeyReq;
- #if 0
- if( eSIR_SUCCESS != wlan_cfgGetStr( pMac,
- WNI_CFG_BSSID,
- currentBssId,
- &cfg ))
- limLog( pMac, LOGP, FL("Could not retrieve BSSID"));
- #endif //TO-SUPPORT BT-AMP
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
switch( psessionEntry->limSystemRole )
@@ -4085,7 +4016,6 @@ static void
limProcessJoinFailureTimeout(tpAniSirGlobal pMac)
{
tLimMlmJoinCnf mlmJoinCnf;
- tSirMacAddr bssid;
tANI_U32 len;
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT_LIM
vos_log_rssi_pkt_type *pRssiLog = NULL;
@@ -4114,14 +4044,6 @@ limProcessJoinFailureTimeout(tpAniSirGlobal pMac)
{
len = sizeof(tSirMacAddr);
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, bssid, &len) !=
- eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- return;
- }
-
// 'Change' timer for future activations
limDeactivateAndChangeTimer(pMac, eLIM_JOIN_FAIL_TIMER);
// Change Periodic probe req timer for future activation
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
index 11029b825c80..ce6f17f9a9e9 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
@@ -682,15 +682,6 @@ limProcessMlmAuthCnf(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
return;
}
val = sizeof(tSirMacAddr);
- #if 0
- if (cfgGetStr(pMac, WNI_CFG_BSSID,
- pMlmAssocReq->peerMacAddr,
- &val) != eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //SUPPORT BT-AMP
sirCopyMacAddr(pMlmAssocReq->peerMacAddr,psessionEntry->bssId);
if (wlan_cfgGetInt(pMac, WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT,
(tANI_U32 *) &pMlmAssocReq->assocFailureTimeout)
@@ -2530,9 +2521,6 @@ limProcessApMlmAddBssRsp( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ)
}
#endif
limInitPeerIdxpool(pMac,psessionEntry);
- // Create timers used by LIM
- if (!pMac->lim.gLimTimersCreated)
- limCreateTimers(pMac);
// Start OLBC timer
if (tx_timer_activate(&pMac->lim.limTimers.gLimUpdateOlbcCacheTimer) != TX_SUCCESS)
@@ -2645,11 +2633,7 @@ limProcessIbssMlmAddBssRsp( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ ,tpPESession
//limInitPreAuthList(pMac);
if (0 == psessionEntry->freePeerIdxHead)
limInitPeerIdxpool(pMac,psessionEntry);
- // Create timers used by LIM
-#ifdef FIXME_GEN6 //following code may not be required, as limCreateTimers is now invoked from limInitialize (peStart)
- if (!pMac->lim.gLimTimersCreated)
- limCreateTimers(pMac);
-#endif
+
/* Update the lim global gLimTriggerBackgroundScanDuringQuietBss */
if( eSIR_SUCCESS != wlan_cfgGetInt( pMac, WNI_CFG_TRIG_STA_BK_SCAN, &val ))
limLog( pMac, LOGP, FL("Failed to get WNI_CFG_TRIG_STA_BK_SCAN!"));
@@ -2736,16 +2720,6 @@ limProcessStaMlmAddBssRspPreAssoc( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ, tpPES
FL("call to AllocateMemory failed for mlmAuthReq"));
return;
}
- #if 0
- val = sizeof(tSirMacAddr);
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID,
- pMlmAuthReq->peerMacAddr,
- &val) != eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(pMlmAuthReq->peerMacAddr,psessionEntry->bssId);
pMlmAuthReq->authType = authMode;
@@ -4692,9 +4666,7 @@ limProcessBtampAddBssRsp( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ ,tpPESession ps
psessionEntry->bssIdx = (tANI_U8) pAddBssParams->bssIdx;
schEdcaProfileUpdate(pMac, psessionEntry);
limInitPeerIdxpool(pMac,psessionEntry);
- // Create timers used by LIM
- if (!pMac->lim.gLimTimersCreated)
- limCreateTimers(pMac);
+
/* Update the lim global gLimTriggerBackgroundScanDuringQuietBss */
if( eSIR_SUCCESS != wlan_cfgGetInt( pMac, WNI_CFG_TRIG_STA_BK_SCAN, &val ))
limLog( pMac, LOGP, FL("Failed to get WNI_CFG_TRIG_STA_BK_SCAN!"));
diff --git a/CORE/MAC/src/pe/lim/limProcessProbeRspFrame.c b/CORE/MAC/src/pe/lim/limProcessProbeRspFrame.c
index a2b7ccebd5b6..8f981ae6ac2f 100644
--- a/CORE/MAC/src/pe/lim/limProcessProbeRspFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessProbeRspFrame.c
@@ -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.
*
@@ -244,16 +244,6 @@ limProcessProbeRspFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo,tpPESession
* our Probe Request sent upon reaching
* heart beat threshold
*/
- #if 0
- if (wlan_cfgGetStr(pMac,
- WNI_CFG_BSSID,
- currentBssId,
- &cfg) != eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(currentBssId,psessionEntry->bssId);
if ( !vos_mem_compare(currentBssId, pHdr->bssId, sizeof(tSirMacAddr)) )
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index e22c7bb478d6..2946e26261f4 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -379,9 +379,6 @@ __limProcessSmeStartReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
/// By default do not return after first scan match
pMac->lim.gLimReturnAfterFirstMatch = 0;
- /// Initialize MLM state machine
- limInitMlm(pMac);
-
/// By default return unique scan results
pMac->lim.gLimReturnUniqueResults = true;
pMac->lim.gLimSmeScanResultLength = 0;
@@ -855,16 +852,6 @@ __limHandleSmeStartBssRequest(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
// Delete pre-auth list if any
limDeletePreAuthList(pMac);
- // Delete IBSS peer BSSdescription list if any
- //limIbssDelete(pMac); sep 26 review
-
-
-
-#ifdef FIXME_GEN6 //following code may not be required. limInitMlm is now being invoked during peStart
- /// Initialize MLM state machine
- limInitMlm(pMac);
-#endif
-
psessionEntry->htCapability = IS_DOT11_MODE_HT(pSmeStartBssReq->dot11mode);
/* keep the RSN/WPA IE information in PE Session Entry
@@ -4080,15 +4067,6 @@ __limProcessSmeAddtsReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
return;
}
- #if 0
- val = sizeof(tSirMacAddr);
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, peerMac, &val) != eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- return;
- }
- #endif
sirCopyMacAddr(peerMac,psessionEntry->bssId);
// save the addts request
diff --git a/CORE/MAC/src/pe/lim/limSecurityUtils.c b/CORE/MAC/src/pe/lim/limSecurityUtils.c
index 09677d91aa7f..8195bfb7e448 100644
--- a/CORE/MAC/src/pe/lim/limSecurityUtils.c
+++ b/CORE/MAC/src/pe/lim/limSecurityUtils.c
@@ -463,13 +463,6 @@ limRestoreFromAuthState(tpAniSirGlobal pMac, tSirResultCodes resultCode, tANI_U1
// 'Change' timer for future activations
limDeactivateAndChangeTimer(pMac, eLIM_AUTH_FAIL_TIMER);
- #if 0
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, currentBssId, &cfg) != eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(currentBssId,sessionEntry->bssId);
if (sessionEntry->limSmeState == eLIM_SME_WT_PRE_AUTH_STATE)
diff --git a/CORE/MAC/src/pe/lim/limSendManagementFrames.c b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
index 664859c73d83..28cd4e28f7d0 100644
--- a/CORE/MAC/src/pe/lim/limSendManagementFrames.c
+++ b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
@@ -1361,19 +1361,6 @@ limSendAddtsReqActionFrame(tpAniSirGlobal pMac,
pMacHdr = ( tpSirMacMgmtHdr ) pFrame;
- #if 0
- cfgLen = SIR_MAC_ADDR_LENGTH;
- if ( eSIR_SUCCESS != wlan_cfgGetStr( pMac, WNI_CFG_BSSID,
- ( tANI_U8* )pMacHdr->bssId, &cfgLen ) )
- {
- limLog( pMac, LOGP, FL("Failed to retrieve WNI_CFG_BSSID whil"
- "e sending an Add TS Request.") );
- palPktFree( pMac->hHdd, HAL_TXRX_FRM_802_11_MGMT,
- ( void* ) pFrame, ( void* ) pPacket );
- return;
- }
- #endif //TO SUPPORT BT-AMP
-
sirCopyMacAddr(pMacHdr->bssId,psessionEntry->bssId);
#ifdef WLAN_FEATURE_11W
@@ -2019,17 +2006,6 @@ limSendAddtsRspActionFrame(tpAniSirGlobal pMac,
pMacHdr = ( tpSirMacMgmtHdr ) pFrame;
-
- #if 0
- if ( eSIR_SUCCESS != wlan_cfgGetStr( pMac, WNI_CFG_BSSID,
- ( tANI_U8* )pMacHdr->bssId, &cfgLen ) )
- {
- limLog( pMac, LOGP, FL("Failed to retrieve WNI_CFG_BSSID whil"
- "e sending an Add TS Response.") );
- palPktFree( pMac->hHdd, HAL_TXRX_FRM_802_11_MGMT, ( void* ) pFrame, ( void* ) pPacket );
- return; // allocated!
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(pMacHdr->bssId,psessionEntry->bssId);
#ifdef WLAN_FEATURE_11W
@@ -2211,18 +2187,6 @@ limSendDeltsReqActionFrame(tpAniSirGlobal pMac,
pMacHdr = ( tpSirMacMgmtHdr ) pFrame;
- #if 0
-
- cfgLen = SIR_MAC_ADDR_LENGTH;
- if ( eSIR_SUCCESS != wlan_cfgGetStr( pMac, WNI_CFG_BSSID,
- ( tANI_U8* )pMacHdr->bssId, &cfgLen ) )
- {
- limLog( pMac, LOGP, FL("Failed to retrieve WNI_CFG_BSSID whil"
- "e sending an Add TS Response.") );
- palPktFree( pMac->hHdd, HAL_TXRX_FRM_802_11_MGMT, ( void* ) pFrame, ( void* ) pPacket );
- return; // allocated!
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(pMacHdr->bssId, psessionEntry->bssId);
#ifdef WLAN_FEATURE_11W
@@ -4485,13 +4449,14 @@ limSendDeauthMgmtFrame(tpAniSirGlobal pMac,
tSirRetStatus
limSendMeasReportFrame(tpAniSirGlobal pMac,
tpSirMacMeasReqActionFrame pMeasReqFrame,
- tSirMacAddr peer)
+ tSirMacAddr peer,
+ tpPESession psessionEntry)
{
tDot11fMeasurementReport frm;
tANI_U8 *pFrame;
tSirRetStatus nSirStatus;
tpSirMacMgmtHdr pMacHdr;
- tANI_U32 nBytes, nPayload, nStatus, nCfg;
+ tANI_U32 nBytes, nPayload, nStatus;
void *pPacket;
eHalStatus halstatus;
@@ -4570,16 +4535,7 @@ limSendMeasReportFrame(tpAniSirGlobal pMac,
pMacHdr = ( tpSirMacMgmtHdr ) pFrame;
- nCfg = 6;
- nSirStatus = wlan_cfgGetStr( pMac, WNI_CFG_BSSID, pMacHdr->bssId, &nCfg );
- if ( eSIR_SUCCESS != nSirStatus )
- {
- limLog( pMac, LOGE, FL("Failed to retrieve WNI_CFG_BSSID from"
- " CFG (%d)."),
- nSirStatus );
- palPktFree( pMac->hHdd, HAL_TXRX_FRM_802_11_MGMT, ( void* ) pFrame, ( void* ) pPacket );
- return eSIR_FAILURE; // just allocated...
- }
+ vos_mem_copy(pMacHdr->bssId, psessionEntry->bssId, sizeof(tSirMacAddr));
#ifdef WLAN_FEATURE_11W
limSetProtectedBit(pMac, psessionEntry, peer, pMacHdr);
@@ -4639,13 +4595,14 @@ limSendMeasReportFrame(tpAniSirGlobal pMac,
void
limSendTpcRequestFrame(tpAniSirGlobal pMac,
- tSirMacAddr peer)
+ tSirMacAddr peer,
+ tpPESession psessionEntry)
{
tDot11fTPCRequest frm;
tANI_U8 *pFrame;
tSirRetStatus nSirStatus;
tpSirMacMgmtHdr pMacHdr;
- tANI_U32 nBytes, nPayload, nStatus, nCfg;
+ tANI_U32 nBytes, nPayload, nStatus;
void *pPacket;
eHalStatus halstatus;
@@ -4699,16 +4656,7 @@ limSendTpcRequestFrame(tpAniSirGlobal pMac,
pMacHdr = ( tpSirMacMgmtHdr ) pFrame;
- nCfg = 6;
- nSirStatus = wlan_cfgGetStr( pMac, WNI_CFG_BSSID, pMacHdr->bssId, &nCfg );
- if ( eSIR_SUCCESS != nSirStatus )
- {
- limLog( pMac, LOGE, FL("Failed to retrieve WNI_CFG_BSSID from"
- " CFG (%d)."),
- nSirStatus );
- palPktFree( pMac->hHdd, HAL_TXRX_FRM_802_11_MGMT, ( void* ) pFrame, ( void* ) pPacket );
- return; // just allocated...
- }
+ vos_mem_copy(pMacHdr->bssId, psessionEntry->bssId, sizeof(tSirMacAddr));
#ifdef WLAN_FEATURE_11W
limSetProtectedBit(pMac, psessionEntry, peer, pMacHdr);
@@ -4769,13 +4717,14 @@ limSendTpcRequestFrame(tpAniSirGlobal pMac,
tSirRetStatus
limSendTpcReportFrame(tpAniSirGlobal pMac,
tpSirMacTpcReqActionFrame pTpcReqFrame,
- tSirMacAddr peer)
+ tSirMacAddr peer,
+ tpPESession psessionEntry)
{
tDot11fTPCReport frm;
tANI_U8 *pFrame;
tSirRetStatus nSirStatus;
tpSirMacMgmtHdr pMacHdr;
- tANI_U32 nBytes, nPayload, nStatus, nCfg;
+ tANI_U32 nBytes, nPayload, nStatus;
void *pPacket;
eHalStatus halstatus;
@@ -4836,16 +4785,7 @@ limSendTpcReportFrame(tpAniSirGlobal pMac,
pMacHdr = ( tpSirMacMgmtHdr ) pFrame;
- nCfg = 6;
- nSirStatus = wlan_cfgGetStr( pMac, WNI_CFG_BSSID, pMacHdr->bssId, &nCfg );
- if ( eSIR_SUCCESS != nSirStatus )
- {
- limLog( pMac, LOGE, FL("Failed to retrieve WNI_CFG_BSSID from"
- " CFG (%d)."),
- nSirStatus );
- palPktFree( pMac->hHdd, HAL_TXRX_FRM_802_11_MGMT, ( void* ) pFrame, ( void* ) pPacket );
- return eSIR_FAILURE; // just allocated...
- }
+ vos_mem_copy(pMacHdr->bssId, psessionEntry->bssId, sizeof(tSirMacAddr));
#ifdef WLAN_FEATURE_11W
limSetProtectedBit(pMac, psessionEntry, peer, pMacHdr);
@@ -4992,21 +4932,6 @@ limSendChannelSwitchMgmtFrame(tpAniSirGlobal pMac,
return eSIR_FAILURE; // just allocated...
}
-#if 0
- pMacHdr = ( tpSirMacMgmtHdr ) pFrame;
-
- nCfg = 6;
- nSirStatus = wlan_cfgGetStr( pMac, WNI_CFG_BSSID, pMacHdr->bssId, &nCfg );
- if ( eSIR_SUCCESS != nSirStatus )
- {
- limLog( pMac, LOGE, FL("Failed to retrieve WNI_CFG_BSSID from"
- " CFG (%d)."),
- nSirStatus );
- palPktFree( pMac->hHdd, HAL_TXRX_FRM_802_11_MGMT, ( void* ) pFrame, ( void* ) pPacket );
- return eSIR_FAILURE; // just allocated...
- }
-#endif
-
#ifdef WLAN_FEATURE_11W
limSetProtectedBit(pMac, psessionEntry, peer, pMacHdr);
#endif
@@ -5456,22 +5381,6 @@ tSirRetStatus limSendAddBAReq( tpAniSirGlobal pMac,
// Update A3 with the BSSID
pMacHdr = ( tpSirMacMgmtHdr ) pAddBAReqBuffer;
- #if 0
- cfgLen = SIR_MAC_ADDR_LENGTH;
- if( eSIR_SUCCESS != cfgGetStr( pMac,
- WNI_CFG_BSSID,
- (tANI_U8 *) pMacHdr->bssId,
- &cfgLen ))
- {
- limLog( pMac, LOGP,
- FL( "Failed to retrieve WNI_CFG_BSSID while"
- "sending an ACTION Frame" ));
-
- // FIXME - Need to convert to tSirRetStatus
- statusCode = eSIR_FAILURE;
- goto returnAfterError;
- }
- #endif//TO SUPPORT BT-AMP
sirCopyMacAddr(pMacHdr->bssId,psessionEntry->bssId);
#ifdef WLAN_FEATURE_11W
@@ -5674,22 +5583,6 @@ tSirRetStatus limSendAddBARsp( tpAniSirGlobal pMac,
pMacHdr = ( tpSirMacMgmtHdr ) pAddBARspBuffer;
- #if 0
- cfgLen = SIR_MAC_ADDR_LENGTH;
- if( eSIR_SUCCESS != wlan_cfgGetStr( pMac,
- WNI_CFG_BSSID,
- (tANI_U8 *) pMacHdr->bssId,
- &cfgLen ))
- {
- limLog( pMac, LOGP,
- FL( "Failed to retrieve WNI_CFG_BSSID while"
- "sending an ACTION Frame" ));
-
- // FIXME - Need to convert to tSirRetStatus
- statusCode = eSIR_FAILURE;
- goto returnAfterError;
- }
- #endif // TO SUPPORT BT-AMP
sirCopyMacAddr(pMacHdr->bssId,psessionEntry->bssId);
#ifdef WLAN_FEATURE_11W
@@ -5879,22 +5772,6 @@ tSirRetStatus limSendDelBAInd( tpAniSirGlobal pMac,
// Update A3 with the BSSID
pMacHdr = ( tpSirMacMgmtHdr ) pDelBAIndBuffer;
- #if 0
- cfgLen = SIR_MAC_ADDR_LENGTH;
- if( eSIR_SUCCESS != cfgGetStr( pMac,
- WNI_CFG_BSSID,
- (tANI_U8 *) pMacHdr->bssId,
- &cfgLen ))
- {
- limLog( pMac, LOGP,
- FL( "Failed to retrieve WNI_CFG_BSSID while"
- "sending an ACTION Frame" ));
-
- // FIXME - Need to convert to tSirRetStatus
- statusCode = eSIR_FAILURE;
- goto returnAfterError;
- }
- #endif //TO SUPPORT BT-AMP
sirCopyMacAddr(pMacHdr->bssId,psessionEntry->bssId);
#ifdef WLAN_FEATURE_11W
diff --git a/CORE/MAC/src/pe/lim/limTypes.h b/CORE/MAC/src/pe/lim/limTypes.h
index 20419ece5474..4f6f6bbc1085 100644
--- a/CORE/MAC/src/pe/lim/limTypes.h
+++ b/CORE/MAC/src/pe/lim/limTypes.h
@@ -786,14 +786,16 @@ void limSetOemDataReqMode(tpAniSirGlobal pMac, eHalStatus status, tANI_U32* data
#ifdef ANI_SUPPORT_11H
/// Function that sends Measurement Report action frame
-tSirRetStatus limSendMeasReportFrame(tpAniSirGlobal, tpSirMacMeasReqActionFrame, tSirMacAddr);
+tSirRetStatus limSendMeasReportFrame(tpAniSirGlobal, tpSirMacMeasReqActionFrame,
+ tSirMacAddr, tpPESession psessionEntry);
/// Function that sends TPC Report action frame
-tSirRetStatus limSendTpcReportFrame(tpAniSirGlobal, tpSirMacTpcReqActionFrame, tSirMacAddr);
+tSirRetStatus limSendTpcReportFrame(tpAniSirGlobal, tpSirMacTpcReqActionFrame, tSirMacAddr,
+ tpPESession psessionEntry);
#endif
/// Function that sends TPC Request action frame
-void limSendTpcRequestFrame(tpAniSirGlobal, tSirMacAddr);
+void limSendTpcRequestFrame(tpAniSirGlobal, tSirMacAddr, tpPESession psessionEntry);
// Function(s) to handle responses received from HAL
void limProcessMlmAddBssRsp( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ );
diff --git a/CORE/MAC/src/pe/lim/limUtils.c b/CORE/MAC/src/pe/lim/limUtils.c
index 1cc17f68be73..20d191f422f3 100644
--- a/CORE/MAC/src/pe/lim/limUtils.c
+++ b/CORE/MAC/src/pe/lim/limUtils.c
@@ -915,11 +915,6 @@ limInitMlm(tpAniSirGlobal pMac)
/// Initialize MAC based Authentication STA list
limInitPreAuthList(pMac);
- //pMac->lim.gpLimMlmJoinReq = NULL;
-
- if (pMac->lim.gLimTimersCreated)
- return;
-
// Create timers used by LIM
retVal = limCreateTimers(pMac);
if(retVal == TX_SUCCESS)
@@ -5386,14 +5381,6 @@ limValidateDeltsReq(tpAniSirGlobal pMac, tpSirDeltsReq pDeltsReq, tSirMacAddr pe
pSta = dphGetHashEntry(pMac, DPH_STA_HASH_INDEX_PEER, &psessionEntry->dph.dphHashTable);
val = sizeof(tSirMacAddr);
- #if 0
- if (wlan_cfgGetStr(pMac, WNI_CFG_BSSID, peerMacAddr, &val) != eSIR_SUCCESS)
- {
- /// Could not get BSSID from CFG. Log error.
- limLog(pMac, LOGP, FL("could not retrieve BSSID"));
- return eSIR_FAILURE;
- }
- #endif// TO SUPPORT BT-AMP
sirCopyMacAddr(peerMacAddr,psessionEntry->bssId);
}
diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c
index 0eafd7957ccf..ac81ee56db4a 100644
--- a/CORE/SAP/src/sapModule.c
+++ b/CORE/SAP/src/sapModule.c
@@ -1794,7 +1794,7 @@ WLANSAP_DelKeySta
vos_mem_zero(&RemoveKeyInfo, sizeof(RemoveKeyInfo));
RemoveKeyInfo.encType = pRemoveKeyInfo->encType;
- vos_mem_copy(RemoveKeyInfo.peerMac, pRemoveKeyInfo->peerMac, WNI_CFG_BSSID_LEN);
+ vos_mem_copy(RemoveKeyInfo.peerMac, pRemoveKeyInfo->peerMac, VOS_MAC_ADDR_SIZE);
RemoveKeyInfo.keyId = pRemoveKeyInfo->keyId;
halStatus = sme_RoamRemoveKey(hHal, pSapCtx->sessionId, &RemoveKeyInfo, &roamId);
diff --git a/CORE/SERVICES/COMMON/dbglog_id.h b/CORE/SERVICES/COMMON/dbglog_id.h
index 6a2f5134c066..3eb5a4d0918f 100644
--- a/CORE/SERVICES/COMMON/dbglog_id.h
+++ b/CORE/SERVICES/COMMON/dbglog_id.h
@@ -880,7 +880,8 @@ extern "C" {
#define ROAM_SUITABLE_AP_EVENT 33
#define ROAM_RSN_IE_PARSE_ERROR 34
#define ROAM_WPA_IE_PARSE_ERROR 35
-#define ROAM_DBGID_DEFINITION_END 36
+#define ROAM_SCAN_CMD_FROM_HOST 36
+#define ROAM_DBGID_DEFINITION_END 37
/* DATA_TXRX module DBGIDs*/
#define DATA_TXRX_DBGID_DEFINITION_START 0
diff --git a/CORE/SERVICES/COMMON/ol_if_athvar.h b/CORE/SERVICES/COMMON/ol_if_athvar.h
index 358d23e66236..700d51fdeffb 100644
--- a/CORE/SERVICES/COMMON/ol_if_athvar.h
+++ b/CORE/SERVICES/COMMON/ol_if_athvar.h
@@ -118,6 +118,7 @@ struct ol_softc {
u_int32_t target_type; /* A_TARGET_TYPE_* */
u_int32_t target_version;
+ u_int32_t target_revision;
u_int8_t crm_version_string[64]; /* store pHalStartRsp->startRspParams.wcnssCrmVersionString */
u_int8_t wlan_version_string[64]; /* store pHalStartRsp->startRspParams.wcnssWlanVersionString */
ol_target_status target_status; /* target status */
diff --git a/CORE/SERVICES/COMMON/wlan_module_ids.h b/CORE/SERVICES/COMMON/wlan_module_ids.h
index 1d59c19abf09..13578183ee10 100644
--- a/CORE/SERVICES/COMMON/wlan_module_ids.h
+++ b/CORE/SERVICES/COMMON/wlan_module_ids.h
@@ -77,6 +77,7 @@ typedef enum {
WLAN_MODULE_THERMAL_MGR,
WLAN_MODULE_PHYERR_DFS,
WLAN_MODULE_RMC,
+ WLAN_MODULE_STATS,
WLAN_MODULE_NAN,
WLAN_MODULE_ID_MAX,
WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index ffa6b38eede9..a83c4c5946e0 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -78,27 +78,29 @@ typedef enum {
WMI_SERVICE_TX_ENCAP, /* Packet type for TX encapsulation */
WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC, /* detect out-of-sync sleeping stations */
WMI_SERVICE_EARLY_RX, /* adaptive early-rx feature */
- WMI_SERVICE_STA_SMPS, /* STA MIMO-PS */
+ WMI_SERVICE_STA_SMPS, /* STA MIMO-PS */
WMI_SERVICE_FWTEST, /* Firmware test service */
- WMI_SERVICE_STA_WMMAC, /* STA WMMAC */
- WMI_SERVICE_TDLS, /* TDLS support */
+ WMI_SERVICE_STA_WMMAC, /* STA WMMAC */
+ WMI_SERVICE_TDLS, /* TDLS support */
WMI_SERVICE_BURST, /* SIFS spaced burst support */
WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE, /* Dynamic beaocn interval change for SAP/P2p GO in MCC scenario */
- WMI_SERVICE_ADAPTIVE_OCS, /* Service to support adaptive off-channel scheduler */
- WMI_SERVICE_BA_SSN_SUPPORT, /* target will provide Sequence number for the peer/tid combo */
+ WMI_SERVICE_ADAPTIVE_OCS, /* Service to support adaptive off-channel scheduler */
+ WMI_SERVICE_BA_SSN_SUPPORT, /* target will provide Sequence number for the peer/tid combo */
WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE,
- WMI_SERVICE_WLAN_HB, /* wlan HB service */
+ WMI_SERVICE_WLAN_HB, /* wlan HB service */
WMI_SERVICE_LTE_ANT_SHARE_SUPPORT, /* support LTE/WLAN antenna sharing */
- WMI_SERVICE_BATCH_SCAN, /*Service to support batch scan*/
- WMI_SERVICE_QPOWER, /* QPower service */
+ WMI_SERVICE_BATCH_SCAN, /*Service to support batch scan*/
+ WMI_SERVICE_QPOWER, /* QPower service */
WMI_SERVICE_PLMREQ,
WMI_SERVICE_THERMAL_MGMT,
WMI_SERVICE_RMC, /* reliable multicast support */
- WMI_SERVICE_MHF_OFFLOAD, /* multi-hop forwarding offload */
- WMI_SERVICE_COEX_SAR, /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */
+ WMI_SERVICE_MHF_OFFLOAD, /* multi-hop forwarding offload */
+ WMI_SERVICE_COEX_SAR, /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */
WMI_SERVICE_BCN_TXRATE_OVERRIDE, /* Will support the bcn/prb rsp rate override */
- WMI_SERVICE_NAN, /* Neighbor Awareness Network */
- WMI_SERVICE_L1SS_STAT, /* L1SS statistics counter report */
+ WMI_SERVICE_NAN, /* Neighbor Awareness Network */
+ WMI_SERVICE_L1SS_STAT, /* L1SS statistics counter report */
+ WMI_SERVICE_ESTIMATE_LINKSPEED, /* Linkspeed Estimation per peer */
+ WMI_SERVICE_OBSS_SCAN, /* Service to support OBSS scan */
WMI_MAX_SERVICE=128 /* max service */
} WMI_SERVICE;
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index cb55b0147760..8e63fbf40bd7 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -423,8 +423,16 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param,
WMITLV_TAG_STRUC_wmi_diag_data_container_event_fixed_param,
WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param,
+ WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param,
WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param,
WMITLV_TAG_STRUC_wmi_mhf_offload_routing_table_entry,
+ WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -576,7 +584,12 @@ typedef enum {
OP(WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID) \
OP(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID) \
OP(WMI_NAN_CMDID) \
- OP(WMI_MODEM_POWER_STATE_CMDID)
+ OP(WMI_MODEM_POWER_STATE_CMDID) \
+ OP(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID) \
+ OP(WMI_ROAM_SCAN_CMD)\
+ OP(WMI_REQUEST_STATS_EXT_CMDID) \
+ OP(WMI_OBSS_SCAN_ENABLE_CMDID) \
+ OP(WMI_OBSS_SCAN_DISABLE_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
@@ -641,7 +654,10 @@ typedef enum {
OP(WMI_NAN_EVENTID) \
OP(WMI_PDEV_L1SS_TRACK_EVENTID) \
OP(WMI_DIAG_DATA_CONTAINER_EVENTID) \
- OP(WMI_AGGR_STATE_TRIG_EVENTID)
+ OP(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID) \
+ OP(WMI_AGGR_STATE_TRIG_EVENTID)\
+ OP(WMI_STATS_EXT_EVENTID) \
+ OP(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID)
/* TLV definitions of WMI commands */
@@ -777,6 +793,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD);
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CHAN_LIST);
+/* Roam scan mode Cmd */
+#define WMITLV_TABLE_WMI_ROAM_SCAN_CMD(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param, wmi_roam_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_CMD);
+
+
#define WMITLV_TABLE_WMI_VDEV_PLMREQ_START_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_plmreq_start_cmd_fixed_param, wmi_vdev_plmreq_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR)
@@ -1534,6 +1557,29 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, wmi_modem_power_state_cmd_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MODEM_POWER_STATE_CMDID);
+/* get estimated link speed cmd */
+#define WMITLV_TABLE_WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param, wmi_peer_get_estimated_linkspeed_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID);
+
+/* ext stats Request */
+#define WMITLV_TABLE_WMI_REQUEST_STATS_EXT_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param, wmi_req_stats_ext_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_STATS_EXT_CMDID);
+
+/* 2.4Ghz HT40 OBSS scan enable */
+#define WMITLV_TABLE_WMI_OBSS_SCAN_ENABLE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param, wmi_obss_scan_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, channels, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_field, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_SCAN_ENABLE_CMDID);
+
+/* 2.4Ghz HT40 OBSS scan disable */
+#define WMITLV_TABLE_WMI_OBSS_SCAN_DISABLE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param, wmi_obss_scan_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_SCAN_DISABLE_CMDID);
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
@@ -1811,9 +1857,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_ENABLED_EVENTID);
WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_batch_scan_result_network_info, network_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_RESULT_EVENTID);
-#define WMITLV_TABLE_WMI_OFFLOAD_BCN_TX_STATUS_EVENTID(id,op,buf,len) \
-WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param, wmi_offload_bcn_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
- WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_BCN_TX_STATUS_EVENTID);
+#define WMITLV_TABLE_WMI_OFFLOAD_BCN_TX_STATUS_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param, wmi_offload_bcn_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_BCN_TX_STATUS_EVENTID);
/* NOA Event */
#define WMITLV_TABLE_WMI_P2P_NOA_EVENTID(id,op,buf,len) \
@@ -1856,6 +1902,21 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_L1SS_TRACK_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_DATA_CONTAINER_EVENTID);
+/* Estimated Link Speed Indication*/
+#define WMITLV_TABLE_WMI_PEER_ESTIMATED_LINKSPEED_EVENTID(id,op,buf,len)\
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param, wmi_peer_estimated_linkspeed_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID);
+
+#define WMITLV_TABLE_WMI_STATS_EXT_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param, wmi_stats_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_STATS_EXT_EVENTID);
+
+#define WMITLV_TABLE_WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param, wmi_offload_prb_rsp_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID);
+
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 03fbc537b860..75db37e842a4 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -172,6 +172,7 @@ typedef enum {
WMI_GRP_OEM,
WMI_GRP_NAN,
WMI_GRP_COEX,
+ WMI_GRP_OBSS_OFL,
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@@ -286,6 +287,11 @@ typedef enum {
/** request peer info from FW. FW shall respond with PEER_INFO_EVENTID */
WMI_PEER_INFO_REQ_CMDID,
+ /** request the estimated link speed for the peer. FW shall respond with
+ * WMI_PEER_ESTIMATED_LINKSPEED_EVENTID.
+ */
+ WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID,
+
/* beacon/management specific commands */
/** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */
@@ -352,6 +358,8 @@ typedef enum {
WMI_ROAM_AP_PROFILE,
/** set channel list for roam scans */
WMI_ROAM_CHAN_LIST,
+ /** Stop scan command */
+ WMI_ROAM_SCAN_CMD,
/** offload scan specific commands */
/** set offload scan AP profile */
@@ -440,6 +448,8 @@ typedef enum {
WMI_REQUEST_STATS_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_STATS),
/** Push MCC Adaptive Scheduler Stats to Firmware */
WMI_MCC_SCHED_TRAFFIC_STATS_CMDID,
+ /** one time request for txrx stats */
+ WMI_REQUEST_STATS_EXT_CMDID,
/** ARP OFFLOAD REQUEST*/
WMI_SET_ARP_NS_OFFLOAD_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL),
@@ -593,6 +603,17 @@ typedef enum {
/** Modem power state command */
WMI_MODEM_POWER_STATE_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_COEX),
+ /**
+ * OBSS scan offload enable/disable commands
+ * OBSS scan enable CMD will send to FW after VDEV UP, if these conditions are true:
+ * 1. WMI_SERVICE_OBSS_SCAN is reported by FW in service ready,
+ * 2. STA connect to a 2.4Ghz ht20/ht40 AP,
+ * 3. AP enable 20/40 coexistence (OBSS_IE-74 can be found in beacon or association response)
+ * If OBSS parameters from beacon changed, also use enable CMD to update parameters.
+ * OBSS scan disable CMD will send to FW if have enabled when tearing down connection.
+ */
+ WMI_OBSS_SCAN_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OBSS_OFL),
+ WMI_OBSS_SCAN_DISABLE_CMDID,
} WMI_CMD_ID;
typedef enum {
@@ -649,6 +670,10 @@ typedef enum {
/** Event indicating that TX fail count reaching threshold */
WMI_PEER_TX_FAIL_CNT_THR_EVENTID,
+ /** Return the estimate link speed for the Peer specified in the
+ * WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID command.
+ */
+ WMI_PEER_ESTIMATED_LINKSPEED_EVENTID,
/* beacon/mgmt specific events */
/** RX management frame. the entire frame is carried along with the event. */
@@ -664,6 +689,9 @@ typedef enum {
/** event after the first beacon is transmitted following
a change in the template.*/
WMI_OFFLOAD_BCN_TX_STATUS_EVENTID,
+ /** event after the first probe response is transmitted following
+ a change in the template.*/
+ WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID,
/*ADDBA Related WMI Events*/
/** Indication the completion of the prior
@@ -702,6 +730,9 @@ typedef enum {
WMI_TSF_MEASUREMENT_REPORT_EVENTID,
/** RTT error report */
WMI_RTT_ERROR_REPORT_EVENTID,
+ /*STATS specific events*/
+ /** txrx stats event requested by host */
+ WMI_STATS_EXT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_STATS),
/*NLO specific events*/
/** NLO match event after the first match */
@@ -1481,6 +1512,9 @@ typedef struct {
A_UINT32 num_ssids;
/** number of bytes in ie data. In the TLV ie_data[] */
A_UINT32 ie_len;
+ /** Max number of probes to be sent */
+ A_UINT32 n_probes;
+
/**
* TLV (tag length value ) parameters follow the scan_cmd
@@ -2156,6 +2190,8 @@ typedef enum {
WMI_PDEV_PARAM_L1SS_TRACK,
/** set hyst at runtime, requirement from SS */
WMI_PDEV_PARAM_HYST_EN,
+ /** Enable/ Disable POWER COLLAPSE */
+ WMI_PDEV_PARAM_POWER_COLLAPSE_ENABLE,
} WMI_PDEV_PARAM;
typedef enum {
@@ -3169,11 +3205,13 @@ WMI_VDEV_PARAM_ROAM_FW_OFFLOAD WMI_VDEV_PARAM **/
} wmi_prb_tmpl_cmd_fixed_param;
typedef struct {
+ /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param */
A_UINT32 tlv_header;
+ /** unique id identifying the VDEV */
A_UINT32 vdev_id;
+ /** bcn tx status, values defined in enum WMI_FRAME_TX_STATUS */
A_UINT32 tx_status;
-}wmi_offload_bcn_tx_status_event_fixed_param;
-
+} wmi_offload_bcn_tx_status_event_fixed_param;
enum wmi_sta_ps_mode {
/** enable power save for the given STA VDEV */
@@ -4187,6 +4225,14 @@ typedef struct {
#define WMI_ROAM_SCAN_MODE_RSSI_CHANGE 0x2
#define WMI_ROAM_SCAN_MODE_BOTH 0x3
+typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param */
+ A_UINT32 vdev_id;
+ A_UINT32 command_arg;
+} wmi_roam_scan_cmd_fixed_param;
+
+#define WMI_ROAM_SCAN_STOP_CMD 0x1
+
/**
* WMI_ROAM_SCAN_RSSI_THRESHOLD : set scan rssi thresold
* scan rssi threshold is the rssi threshold below which the FW will start running Roam scans.
@@ -6488,6 +6534,127 @@ enum {
WMI_MODEM_STATE_ON
};
+#define WMI_PEER_ESTIMATED_LINKSPEED_INVALID 0xFFFFFFFF
+
+typedef struct {
+ /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_get_estimated_linkspeed_cmd_fixed_param */
+ A_UINT32 tlv_header;
+ /** MAC address of the peer for which the estimated link speed is required. */
+ wmi_mac_addr peer_macaddr;
+} wmi_peer_get_estimated_linkspeed_cmd_fixed_param;
+
+typedef struct {
+ /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_estimated_linkspeed_event_fixed_param */
+ A_UINT32 tlv_header;
+ /** MAC address of the peer for which the estimated link speed is required.
+ */
+ wmi_mac_addr peer_macaddr;
+ /* Estimated link speed in kbps.
+ * When est_linkspeed_kbps is not valid, the value is set to WMI_PEER_ESTIMATED_LINKSPEED_INVALID.
+ */
+ A_UINT32 est_linkspeed_kbps;
+} wmi_peer_estimated_linkspeed_event_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals */
+ /* vdev ID */
+ A_UINT32 vdev_id;
+ A_UINT32 data_len; /** length in byte of data[]. */
+ /* This structure is used to send REQ binary blobs
+ * from application/service to firmware where Host drv is pass through .
+ * Following this structure is the TLV:
+ * A_UINT8 data[]; // length in byte given by field data_len.
+ */
+} wmi_req_stats_ext_cmd_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats1_event_fix_param */
+ A_UINT32 vdev_id; /** vdev ID */
+ A_UINT32 data_len; /** length in byte of data[]. */
+ /* This structure is used to send REQ binary blobs
+ * from firmware to application/service where Host drv is pass through .
+ * Following this structure is the TLV:
+ * A_UINT8 data[]; // length in byte given by field data_len.
+ */
+} wmi_stats_ext_event_fixed_param;
+
+enum {
+ WMI_2G4_HT40_OBSS_SCAN_PASSIVE = 0, /** scan_type: passive */
+ WMI_2G4_HT40_OBSS_SCAN_ACTIVE, /** scan_type: active */
+};
+
+typedef struct {
+ /**
+ * TLV tag and len;
+ * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_enalbe_cmd_fixed_param
+ */
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+ /**
+ * active or passive. if active all the channels are actively scanned.
+ * if passive then all the channels are passively scanned
+ */
+ A_UINT32 scan_type;
+ /**
+ * FW can perform multiple scans with in a OBSS scan interval.
+ * For each scan,
+ * if the scan is passive then obss_scan_passive_dwell is minimum dwell to be used for each channel ,
+ * if the scan is active then obss_scan_active_dwell is minimum dwell to be used for each channel .
+ * The unit for these 2 parameters is TUs.
+ */
+ A_UINT32 obss_scan_passive_dwell;
+ A_UINT32 obss_scan_active_dwell;
+ /**
+ * OBSS scan interval . FW needs to perform one or more OBSS scans within this interval and fulfill the
+ * both min and total per channel dwell time requirement
+ */
+ A_UINT32 bss_channel_width_trigger_scan_interval;
+ /**
+ * FW can perform multiple scans with in a OBSS scan interval.
+ * For each scan,
+ * the total per channel dwell time across all scans with in OBSS scan interval should be
+ * atleast obss_scan_passive_total_per channel for passive scas and obss_scan_active_total_per channel
+ * for active scans and ,
+ * The unit for these 2 parameters is TUs.
+ */
+ A_UINT32 obss_scan_passive_total_per_channel;
+ A_UINT32 obss_scan_active_total_per_channel;
+ A_UINT32 bss_width_channel_transition_delay_factor; /** parameter to check exemption from scan */
+ A_UINT32 obss_scan_activity_threshold; /** parameter to check exemption from scan */
+ /** following two parameters used by FW to fill IEs when sending 20/40 coexistence action frame to AP */
+ A_UINT32 forty_mhz_intolerant; /** STA 40M bandwidth intolerant capability */
+ A_UINT32 current_operating_class; /** STA current operating class */
+ /** length of 2.4GHz channel list to scan at, channel list in tlv->channels[] */
+ A_UINT32 channel_len;
+ /** length of optional ie data to append to probe reqest when active scan, ie data in tlv->ie_field[] */
+ A_UINT32 ie_len;
+} wmi_obss_scan_enable_cmd_fixed_param;
+
+typedef struct {
+ /**
+ * TLV tag and len;
+ * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_disalbe_cmd_fixed_param
+ */
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+} wmi_obss_scan_disable_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param */
+ A_UINT32 tlv_header;
+ /** unique id identifying the VDEV */
+ A_UINT32 vdev_id;
+ /** prb rsp tx status, values defined in enum WMI_FRAME_TX_STATUS */
+ A_UINT32 tx_status;
+}wmi_offload_prb_rsp_tx_status_event_fixed_param;
+
+typedef enum {
+ WMI_FRAME_TX_OK, /* frame tx ok */
+ WMI_FRAME_TX_XRETRY, /* excessivley retried */
+ WMI_FRAME_TX_DROP, /* frame dropped by FW due to resources */
+ WMI_FRAME_TX_FILTERED, /* frame filtered by hardware */
+} WMI_FRAME_TX_STATUS;
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 779b85966ffe..f5cfd2725348 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/wmi_version.h
@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */
-#define __WMI_REVISION_ 40
+#define __WMI_REVISION_ 43
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/HIF/PCIe/hif_pci.c b/CORE/SERVICES/HIF/PCIe/hif_pci.c
index bfe63fdcd326..e4e739c54f3c 100644
--- a/CORE/SERVICES/HIF/PCIe/hif_pci.c
+++ b/CORE/SERVICES/HIF/PCIe/hif_pci.c
@@ -2244,6 +2244,7 @@ HIF_PCIDeviceProbed(hif_handle_t hif_hdl)
goto done;
}
if (CHIP_ID_VERSION_GET(chip_id) == 0xD) {
+ scn->target_revision = CHIP_ID_REVISION_GET(chip_id);
switch(CHIP_ID_REVISION_GET(chip_id)) {
case 0x2: /* ROME 1.3 */
/* 2 banks are switched to IRAM */
@@ -2460,14 +2461,10 @@ 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 77b263433803..1a9c8a686a3c 100644
--- a/CORE/SERVICES/HIF/PCIe/if_pci.c
+++ b/CORE/SERVICES/HIF/PCIe/if_pci.c
@@ -70,7 +70,13 @@
#define AR6320_FW_2_0 (0x20)
#define AR6320_FW_3_0 (0x30)
+#ifdef CONFIG_SLUB_DEBUG_ON
+#define MAX_NUM_OF_RECEIVES 400 /* Maximum number of Rx buf to process before*
+ break out in SLUB debug builds */
+#else
#define MAX_NUM_OF_RECEIVES 1000 /* Maximum number of Rx buf to process before break out */
+#endif
+
#define PCIE_WAKE_TIMEOUT 1000 /* Maximum ms timeout for host to wake up target */
#define RAMDUMP_EVENT_TIMEOUT 2500
@@ -539,6 +545,36 @@ CE_per_engine_handler(int irq, void *arg)
return IRQ_HANDLED;
}
+#ifdef CONFIG_SLUB_DEBUG_ON
+
+/* worker thread to schedule wlan_tasklet in SLUB debug build */
+static void reschedule_tasklet_work_handler(struct work_struct *recovery)
+{
+ void *vos_context = vos_get_global_context(VOS_MODULE_ID_HIF, NULL);
+ struct ol_softc *scn = vos_get_context(VOS_MODULE_ID_HIF, vos_context);
+ struct hif_pci_softc *sc;
+
+ if (NULL == scn){
+ printk(KERN_ERR "%s: tasklet scn is null\n", __func__);
+ return;
+ }
+
+ sc = scn->hif_sc;
+
+ if (sc->hif_init_done == FALSE) {
+ printk(KERN_ERR "%s: wlan driver is unloaded\n", __func__);
+ return;
+ }
+
+ tasklet_schedule(&sc->intr_tq);
+ return;
+}
+
+static DECLARE_WORK(reschedule_tasklet_work, reschedule_tasklet_work_handler);
+
+#endif
+
+
static void
wlan_tasklet(unsigned long data)
{
@@ -568,7 +604,11 @@ wlan_tasklet(unsigned long data)
* any of the Copy Engine pipes.
*/
adf_os_atomic_set(&sc->ce_suspend, 1);
+#ifdef CONFIG_SLUB_DEBUG_ON
+ schedule_work(&reschedule_tasklet_work);
+#else
tasklet_schedule(&sc->intr_tq);
+#endif
return;
}
irq_handled:
@@ -678,9 +718,10 @@ again:
}
#endif
- /* Disable L1SS, temporary solution for PCI reset issues */
+#ifdef DISABLE_L1SS_STATES
pci_read_config_dword(pdev, 0x188, &lcr_val);
pci_write_config_dword(pdev, 0x188, (lcr_val & ~0x0000000f));
+#endif
/* Set bus master bit in PCI_COMMAND to enable DMA */
pci_set_master(pdev);
@@ -1001,9 +1042,10 @@ again:
}
#endif
- /* Disable L1SS, temporary solution for PCI reset issues */
+#ifdef DISABLE_L1SS_STATES
pci_read_config_dword(pdev, 0x188, &lcr_val);
pci_write_config_dword(pdev, 0x188, (lcr_val & ~0x0000000f));
+#endif
/* Set bus master bit in PCI_COMMAND to enable DMA */
pci_set_master(pdev);
@@ -1541,21 +1583,6 @@ void hif_pci_shutdown(struct pci_dev *pdev)
mem = (void __iomem *)sc->mem;
-#if defined(CPU_WARM_RESET_WAR)
- /* Currently CPU warm reset sequence is tested only for AR9888_REV2
- * Need to enable for AR9888_REV1 once CPU warm reset sequence is
- * verified for AR9888_REV1.
- */
- if (scn->target_version == AR9888_REV2_VERSION) {
- hif_pci_device_warm_reset(sc);
- }
- else {
- hif_pci_device_reset(sc);
- }
-#else
- hif_pci_device_reset(sc);
-#endif
-
pci_disable_msi(pdev);
A_FREE(scn);
A_FREE(sc);
@@ -1730,6 +1757,11 @@ hif_pci_resume(struct pci_dev *pdev)
pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
}
+#ifdef DISABLE_L1SS_STATES
+ pci_read_config_dword(pdev, 0x188, &val);
+ pci_write_config_dword(pdev, 0x188, (val & ~0x0000000f));
+#endif
+
A_TARGET_ACCESS_BEGIN_RET(targid);
val = A_PCI_READ32(sc->mem + FW_INDICATOR_ADDRESS) >> 16;
A_TARGET_ACCESS_END_RET(targid);
@@ -1888,3 +1920,9 @@ void hif_pci_save_htc_htt_config_endpoint(int htc_endpoint)
scn->hif_sc->htc_endpoint = htc_endpoint;
}
+
+void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision)
+{
+ *version = ((struct ol_softc *)ol_sc)->target_version;
+ *revision = ((struct ol_softc *)ol_sc)->target_revision;
+}
diff --git a/CORE/SERVICES/HIF/PCIe/if_pci.h b/CORE/SERVICES/HIF/PCIe/if_pci.h
index c5e4b0b2ba43..8114bc8b019b 100644
--- a/CORE/SERVICES/HIF/PCIe/if_pci.h
+++ b/CORE/SERVICES/HIF/PCIe/if_pci.h
@@ -132,6 +132,8 @@ extern void pktlogmod_exit(void *context);
int hif_pci_check_soc_status(struct hif_pci_softc *sc);
void dump_CE_debug_register(struct hif_pci_softc *sc);
+void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision);
+
/*
* A firmware interrupt to the Host is indicated by the
* low bit of SCRATCH_3_ADDRESS being set.
diff --git a/CORE/SERVICES/HIF/USB/hif_usb.c b/CORE/SERVICES/HIF/USB/hif_usb.c
index e660250f7df0..4660f314dba0 100644
--- a/CORE/SERVICES/HIF/USB/hif_usb.c
+++ b/CORE/SERVICES/HIF/USB/hif_usb.c
@@ -213,9 +213,12 @@ static void usb_hif_usb_transmit_complete(struct urb *urb)
a_mem_trace(urb_context->buf);
buf = urb_context->buf;
pSendContext = urb_context->pSendContext;
- if (pSendContext->bNewAlloc)
+
+ if (pSendContext->bNewAlloc) {
adf_os_mem_free((void *)pSendContext);
- adf_nbuf_pull_head(buf, sizeof(struct HIFSendContext));
+ } else {
+ adf_nbuf_pull_head(buf, pSendContext->head_data_len);
+ }
urb_context->buf = NULL;
usb_hif_cleanup_transmit_urb(urb_context);
diff --git a/CORE/SERVICES/HIF/USB/if_usb.c b/CORE/SERVICES/HIF/USB/if_usb.c
index f1c5855998e8..51a3a1c00292 100644
--- a/CORE/SERVICES/HIF/USB/if_usb.c
+++ b/CORE/SERVICES/HIF/USB/if_usb.c
@@ -363,4 +363,11 @@ void hif_reset_soc(void *ol_sc)
{
/* TODO */
}
+
+void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision)
+{
+ *version = ((struct ol_softc *)ol_sc)->target_version;
+ /* Chip version should be supported, set to 0 for now */
+ *revision = 0;
+}
MODULE_LICENSE("Dual BSD/GPL");
diff --git a/CORE/SERVICES/HIF/USB/if_usb.h b/CORE/SERVICES/HIF/USB/if_usb.h
index 976ab790a921..05e41f9d321d 100644
--- a/CORE/SERVICES/HIF/USB/if_usb.h
+++ b/CORE/SERVICES/HIF/USB/if_usb.h
@@ -96,4 +96,6 @@ extern int pktlogmod_init(void *context);
extern void pktlogmod_exit(void *context);
#endif
+void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision);
+
#endif /* __ATH_USB_H__ */
diff --git a/CORE/SERVICES/HIF/USB/usbdrv.c b/CORE/SERVICES/HIF/USB/usbdrv.c
index 8ffcbf2269eb..0073485a731d 100644
--- a/CORE/SERVICES/HIF/USB/usbdrv.c
+++ b/CORE/SERVICES/HIF/USB/usbdrv.c
@@ -972,10 +972,7 @@ void usb_hif_io_comp_work(struct work_struct *work)
HIF_USB_PIPE *pipe = container_of(work, HIF_USB_PIPE, io_complete_work);
adf_nbuf_t buf;
HIF_DEVICE_USB *device;
- A_UINT8 *data;
- A_UINT32 len;
HTC_FRAME_HDR *HtcHdr;
- int frag_count = 0, head_data_len = 0, tmp_frag_count = 0;
AR_DEBUG_PRINTF(ATH_DEBUG_TRC, ("+%s\n", __func__));
device = pipe->device;
@@ -986,23 +983,8 @@ void usb_hif_io_comp_work(struct work_struct *work)
AR_DEBUG_PRINTF(USB_HIF_DEBUG_BULK_OUT,
("+athusb xmit callback " "buf:0x%p\n",
buf));
+ HtcHdr = (HTC_FRAME_HDR *) adf_nbuf_get_frag_vaddr(buf, 0);
- adf_nbuf_peek_header(buf, &data, &len);
- HtcHdr = (HTC_FRAME_HDR *) data;
- frag_count = adf_nbuf_get_num_frags(buf);
- if (frag_count > 1) {
- /* means have extra fragment buf in skb */
- while (tmp_frag_count < (frag_count - 1)) {
- head_data_len +=
- adf_nbuf_get_frag_len(buf,
- tmp_frag_count);
- tmp_frag_count++;
- }
- /* HIFSend will push skb buf head, pull it back
- * to make the upper layer handle correctly
- */
- adf_nbuf_pull_head(buf, head_data_len);
- }
#ifdef ATH_11AC_TXCOMPACT
#error ATH_11AC_TXCOMPACT only support for High Latency mode
#else
diff --git a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c
index 0217970efb4c..26c61a9c732a 100644
--- a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c
+++ b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c
@@ -311,3 +311,10 @@ void hif_reset_soc(void *ol_sc)
{
ENTER("- dummy function!");
}
+
+void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision)
+{
+ *version = ((struct ol_softc *)ol_sc)->target_version;
+ /* Chip revision should be supported, set to 0 for now */
+ *revision = 0;
+}
diff --git a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h
index 24823a0f8ffd..2c94354d2b0b 100644
--- a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h
+++ b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.h
@@ -87,5 +87,6 @@ void hif_reset_soc(void *ol_sc);
void hif_register_tbl_attach(u32 hif_type);
void target_register_tbl_attach(u32 target_type);
+void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision);
#endif /* __IF_ATH_SDIO_H__*/
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index f901a66b2ccb..238c6b836dc9 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -986,7 +986,7 @@ static int wmi_unified_vdev_down_send(wmi_unified_t wmi, u_int8_t vdev_id)
adf_nbuf_free(buf);
return -EIO;
}
- WMA_LOGI("%s: vdev_id %d", __func__, vdev_id);
+ WMA_LOGE("%s: vdev_id %d", __func__, vdev_id);
return 0;
}
@@ -1035,6 +1035,7 @@ static void wma_delete_all_ap_remote_peers(tp_wma_handle wma, A_UINT32 vdev_id)
if (!vdev)
return;
+ WMA_LOGE("%s: vdev_id - %d", __func__, vdev_id);
/* remove all remote peers of SAP */
adf_os_spin_lock_bh(&vdev->pdev->peer_ref_mutex);
while ((peer = TAILQ_LAST(&vdev->peer_list, peer_list_t))) {
@@ -1112,10 +1113,45 @@ static void wma_recreate_ibss_vdev_and_bss_peer(tp_wma_handle wma, u_int8_t vdev
static int wma_vdev_stop_resp_handler(void *handle, u_int8_t *cmd_param_info,
u32 len)
{
- tp_wma_handle wma = (tp_wma_handle)handle;
- struct wma_target_req *req_msg;
WMI_VDEV_STOPPED_EVENTID_param_tlvs *param_buf;
+ wmi_vdev_stopped_event_fixed_param *event;
+ u_int8_t *buf;
+ vos_msg_t vos_msg = {0};
+
+ WMA_LOGI("%s: Enter", __func__);
+ param_buf = (WMI_VDEV_STOPPED_EVENTID_param_tlvs *) cmd_param_info;
+ if (!param_buf) {
+ WMA_LOGE("Invalid event buffer");
+ return -EINVAL;
+ }
+ event = param_buf->fixed_param;
+ buf = vos_mem_malloc(sizeof(wmi_vdev_stopped_event_fixed_param));
+ if (!buf) {
+ WMA_LOGE("%s: Failed alloc memory for buf", __func__);
+ return -EINVAL;
+ }
+ vos_mem_zero(buf, sizeof(wmi_vdev_stopped_event_fixed_param));
+ vos_mem_copy(buf, (u_int8_t *)event,
+ sizeof(wmi_vdev_stopped_event_fixed_param));
+
+ vos_msg.type = WDA_VDEV_STOP_IND;
+ vos_msg.bodyptr = buf;
+ vos_msg.bodyval = 0;
+
+ if (VOS_STATUS_SUCCESS !=
+ vos_mq_post_message(VOS_MQ_ID_WDA, &vos_msg)) {
+ WMA_LOGP("%s: Failed to post WDA_VDEV_STOP_IND msg", __func__);
+ vos_mem_free(buf);
+ return -1;
+ }
+ WMA_LOGD("WDA_VDEV_STOP_IND posted");
+ return 0;
+}
+
+static int wma_vdev_stop_ind(tp_wma_handle wma, u_int8_t *buf)
+{
wmi_vdev_stopped_event_fixed_param *resp_event;
+ struct wma_target_req *req_msg;
ol_txrx_peer_handle peer;
ol_txrx_pdev_handle pdev;
u_int8_t peer_id;
@@ -1123,13 +1159,12 @@ static int wma_vdev_stop_resp_handler(void *handle, u_int8_t *cmd_param_info,
int32_t status = 0;
WMA_LOGI("%s: Enter", __func__);
- param_buf = (WMI_VDEV_STOPPED_EVENTID_param_tlvs *) cmd_param_info;
- if (!param_buf) {
+ if (!buf) {
WMA_LOGE("Invalid event buffer");
return -EINVAL;
}
- resp_event = param_buf->fixed_param;
+ resp_event = (wmi_vdev_stopped_event_fixed_param *)buf;
req_msg = wma_find_vdev_req(wma, resp_event->vdev_id,
WMA_TARGET_REQ_TYPE_VDEV_STOP);
if (!req_msg) {
@@ -3269,7 +3304,7 @@ int wma_unified_vdev_create_send(wmi_unified_t wmi_handle, u_int8_t if_id,
cmd->vdev_type = type;
cmd->vdev_subtype = subtype;
WMI_CHAR_ARRAY_TO_MAC_ADDR(macaddr, &cmd->vdev_macaddr);
- WMA_LOGA("%s: ID = %d VAP Addr = %02x:%02x:%02x:%02x:%02x:%02x",
+ WMA_LOGE("%s: ID = %d VAP Addr = %02x:%02x:%02x:%02x:%02x:%02x",
__func__, if_id,
macaddr[0], macaddr[1], macaddr[2],
macaddr[3], macaddr[4], macaddr[5]);
@@ -4373,6 +4408,9 @@ VOS_STATUS wma_get_buf_start_scan_cmd(tp_wma_handle wma_handle,
}
}
+ cmd->n_probes = (cmd->repeat_probe_time > 0) ?
+ cmd->dwell_time_active/cmd->repeat_probe_time : 0;
+
buf_ptr += sizeof(*cmd);
tmp_ptr = (u_int32_t *) (buf_ptr + WMI_TLV_HDR_SIZE);
@@ -5259,6 +5297,7 @@ v_VOID_t wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
scan_params->probe_delay = 0;
scan_params->max_scan_time = WMA_HW_DEF_SCAN_MAX_DURATION; /* 30 seconds for full scan cycle */
scan_params->idle_time = scan_params->min_rest_time;
+ scan_params->n_probes = roam_req->nProbes;
} else {
/* roam_req = NULL during initial or pre-assoc invocation */
scan_params->dwell_time_active = WMA_ROAM_DWELL_TIME_ACTIVE_DEFAULT;
@@ -5271,6 +5310,7 @@ v_VOID_t wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
scan_params->max_scan_time = WMA_HW_DEF_SCAN_MAX_DURATION;
scan_params->idle_time = scan_params->min_rest_time;
scan_params->burst_duration = WMA_ROAM_DWELL_TIME_PASSIVE_DEFAULT;
+ scan_params->n_probes = 0;
}
scan_params->scan_ctrl_flags = WMI_SCAN_ADD_CCK_RATES | WMI_SCAN_ADD_OFDM_RATES;
@@ -5283,11 +5323,12 @@ v_VOID_t wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
scan_params->dwell_time_active,
scan_params->dwell_time_passive);
WMA_LOGI("%s: min_rest_time = %d, max_rest_time = %d,"
- " repeat_probe_time = %d",
+ " repeat_probe_time = %d n_probes = %d",
__func__,
scan_params->min_rest_time,
scan_params->max_rest_time,
- scan_params->repeat_probe_time);
+ scan_params->repeat_probe_time,
+ scan_params->n_probes);
WMA_LOGI("%s: max_scan_time = %d, idle_time = %d,"
" burst_duration = %d, scan_ctrl_flags = 0x%x",
__func__,
@@ -6410,7 +6451,8 @@ void wma_vdev_resp_timer(void *data)
goto free_tgt_req;
}
- WMA_LOGA("%s: request %d is timed out", __func__, tgt_req->msg_type);
+ WMA_LOGA("%s: request %d is timed out for vdev_id - %d", __func__,
+ tgt_req->msg_type, tgt_req->vdev_id);
wma_find_vdev_req(wma, tgt_req->vdev_id, tgt_req->type);
if (tgt_req->msg_type == WDA_CHNL_SWITCH_REQ) {
tpSwitchChannelParams params =
@@ -6535,34 +6577,29 @@ void wma_vdev_resp_timer(void *data)
sizeof(tSirMacAddr));
WMA_LOGA("%s: WDA_ADD_BSS_REQ timedout", __func__);
- peer = ol_txrx_find_peer_by_addr(pdev, params->bssId,
- &peer_id);
- if (!peer) {
- WMA_LOGP("%s: Failed to find peer %pM", __func__,
- params->bssId);
- }
- msg = wma_fill_vdev_req(wma, params->sessionId,
- WDA_DELETE_BSS_REQ, WMA_TARGET_REQ_TYPE_VDEV_STOP,
- del_bss_params, 1000);
- if (!msg) {
- WMA_LOGP("%s: Failed to fill vdev request for vdev_id %d",
- __func__, params->sessionId);
- goto error0;
- }
- if (wmi_unified_vdev_stop_send(wma->wmi_handle, params->sessionId)) {
- WMA_LOGP("%s: %d Failed to send vdev stop",
- __func__, __LINE__);
- wma_remove_vdev_req(wma, params->sessionId,
- WMA_TARGET_REQ_TYPE_VDEV_STOP);
- goto error0;
- }
- WMA_LOGI("%s: bssid %pM vdev_id %d",
- __func__, params->bssId, params->sessionId);
-
+ peer = ol_txrx_find_peer_by_addr(pdev, params->bssId, &peer_id);
+ if (!peer) {
+ WMA_LOGP("%s: Failed to find peer %pM", __func__, params->bssId);
+ }
+ msg = wma_fill_vdev_req(wma, tgt_req->vdev_id, WDA_DELETE_BSS_REQ,
+ WMA_TARGET_REQ_TYPE_VDEV_STOP, del_bss_params, 1000);
+ if (!msg) {
+ WMA_LOGP("%s: Failed to fill vdev request for vdev_id %d",
+ __func__, tgt_req->vdev_id);
+ goto error0;
+ }
+ if (wmi_unified_vdev_stop_send(wma->wmi_handle, tgt_req->vdev_id)) {
+ WMA_LOGP("%s: %d Failed to send vdev stop", __func__, __LINE__);
+ wma_remove_vdev_req(wma, tgt_req->vdev_id,
+ WMA_TARGET_REQ_TYPE_VDEV_STOP);
+ goto error0;
+ }
+ WMA_LOGI("%s: bssid %pM vdev_id %d", __func__, params->bssId,
+ tgt_req->vdev_id);
error0:
if (peer)
wma_remove_peer(wma, params->bssId,
- params->sessionId, peer);
+ tgt_req->vdev_id, peer);
wma_send_msg(wma, WDA_ADD_BSS_RSP, (void *)params, 0);
}
free_tgt_req:
@@ -16400,6 +16437,10 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg)
(tSirModemPowerStateInd *)msg->bodyptr);
vos_mem_free(msg->bodyptr);
break;
+ case WDA_VDEV_STOP_IND:
+ wma_vdev_stop_ind(wma_handle, msg->bodyptr);
+ vos_mem_free(msg->bodyptr);
+ break;
default:
WMA_LOGD("unknow msg type %x", msg->type);
/* Do Nothing? MSG Body should be freed at here */
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index 83546826e967..9a8930fe685f 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -74,10 +74,11 @@ struct wmi_event_debug wmi_event_log_buffer[WMI_EVENT_DEBUG_MAX_ENTRY];
g_wmi_command_buf_idx++; \
}
-#define WMI_EVENT_RECORD(a) { \
+#define WMI_EVENT_RECORD(a, b) { \
if (WMI_EVENT_DEBUG_MAX_ENTRY <= g_wmi_event_buf_idx) \
g_wmi_event_buf_idx = 0; \
wmi_event_log_buffer[g_wmi_event_buf_idx].event = a; \
+ adf_os_mem_copy(wmi_event_log_buffer[g_wmi_event_buf_idx].data, b , 16);\
wmi_event_log_buffer[g_wmi_event_buf_idx].time = \
adf_os_ticks_to_msecs(adf_os_ticks()); \
g_wmi_event_buf_idx++; \
@@ -524,6 +525,11 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_NAN_CMDID);
/* Modem power state cmd */
CASE_RETURN_STRING(WMI_MODEM_POWER_STATE_CMDID);
+ CASE_RETURN_STRING(WMI_REQUEST_STATS_EXT_CMDID);
+ CASE_RETURN_STRING(WMI_OBSS_SCAN_ENABLE_CMDID);
+ CASE_RETURN_STRING(WMI_OBSS_SCAN_DISABLE_CMDID);
+ CASE_RETURN_STRING(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID);
+ CASE_RETURN_STRING(WMI_ROAM_SCAN_CMD);
}
return "Invalid WMI cmd";
}
@@ -782,7 +788,8 @@ void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf)
#ifdef WMI_INTERFACE_EVENT_LOGGING
adf_os_spin_lock_bh(&wmi_handle->wmi_record_lock);
- WMI_EVENT_RECORD(id);
+ /* Exclude 4 bytes of TLV header */
+ WMI_EVENT_RECORD(id, ((u_int8_t *)data + 4));
adf_os_spin_unlock_bh(&wmi_handle->wmi_record_lock);
#endif
/* Call the WMI registered event handler */
diff --git a/CORE/SERVICES/WMI/wmi_unified_priv.h b/CORE/SERVICES/WMI/wmi_unified_priv.h
index 15962c9cef69..97bab04195c1 100644
--- a/CORE/SERVICES/WMI/wmi_unified_priv.h
+++ b/CORE/SERVICES/WMI/wmi_unified_priv.h
@@ -54,6 +54,7 @@ struct wmi_command_debug{
struct wmi_event_debug{
u_int32_t event;
+ u_int32_t data[4]; /*16 bytes of WMI event data excluding TLV header*/
u_int32_t time;
};
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index 605117f4cfb8..b4e4da609e04 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -146,7 +146,7 @@ typedef enum
}eCsrPhyMode;
-typedef tANI_U8 tCsrBssid[WNI_CFG_BSSID_LEN];
+typedef tANI_U8 tCsrBssid[VOS_MAC_ADDR_SIZE];
typedef enum
{
@@ -354,7 +354,7 @@ typedef struct tagCsrEseCckmIe
typedef struct tagCsrScanResultFilter
{
- tCsrBSSIDs BSSIDs; //each bssid has a length of WNI_CFG_BSSID_LEN (6)
+ tCsrBSSIDs BSSIDs; //each bssid has a length of VOS_MAC_ADDR_SIZE (6)
tCsrSSIDs SSIDs;
tCsrChannelInfo ChannelInfo;
tCsrAuthList authType;
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index a89551ea2b30..4b6654b695a9 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -17784,7 +17784,7 @@ csrRoamChannelChangeReq( tpAniSirGlobal pMac, tCsrBssid bssid,
pMsg->messageLen = sizeof(tSirChanChangeRequest);
pMsg->targetChannel = targetChannel;
pMsg->cbMode = cbMode;
- vos_mem_copy(pMsg->bssid, bssid, WNI_CFG_BSSID_LEN);
+ vos_mem_copy(pMsg->bssid, bssid, VOS_MAC_ADDR_SIZE);
status = palSendMBMessage(pMac->hHdd, pMsg);
@@ -17813,7 +17813,7 @@ eHalStatus csrRoamStartBeaconReq( tpAniSirGlobal pMac, tCsrBssid bssid,
pMsg->messageType = pal_cpu_to_be16((tANI_U16)eWNI_SME_START_BEACON_REQ);
pMsg->messageLen = sizeof(tSirStartBeaconIndication);
pMsg->beaconStartStatus = dfsCacWaitStatus;
- vos_mem_copy(pMsg->bssid, bssid, WNI_CFG_BSSID_LEN);
+ vos_mem_copy(pMsg->bssid, bssid, VOS_MAC_ADDR_SIZE);
status = palSendMBMessage(pMac->hHdd, pMsg);
@@ -17849,7 +17849,7 @@ csrRoamSendChanSwIERequest(tpAniSirGlobal pMac, tCsrBssid bssid,
pMsg->targetChannel = targetChannel;
pMsg->csaIeRequired = csaIeReqd;
- vos_mem_copy(pMsg->bssid, bssid, WNI_CFG_BSSID_LEN);
+ vos_mem_copy(pMsg->bssid, bssid, VOS_MAC_ADDR_SIZE);
status = palSendMBMessage(pMac->hHdd, pMsg);
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index a474eb6afe45..dd07cfc82be8 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -2862,7 +2862,7 @@ eHalStatus csrAddPMKIDCandidateList( tpAniSirGlobal pMac, tANI_U32 sessionId,
// if yes, then add to PMKIDCandidateList
vos_mem_copy(pSession->PmkidCandidateInfo[pSession->NumPmkidCandidate].BSSID,
- pBssDesc->bssId, WNI_CFG_BSSID_LEN);
+ pBssDesc->bssId, VOS_MAC_ADDR_SIZE);
// Bit 0 offirst byte - PreAuthentication Capability
if ( (pIes->RSN.RSN_Cap[0] >> 0) & 0x1 )
{
@@ -2953,7 +2953,7 @@ eHalStatus csrAddBKIDCandidateList( tpAniSirGlobal pMac, tANI_U32 sessionId,
// if yes, then add to BKIDCandidateList
vos_mem_copy(pSession->BkidCandidateInfo[pSession->NumBkidCandidate].BSSID,
- pBssDesc->bssId, WNI_CFG_BSSID_LEN);
+ pBssDesc->bssId, VOS_MAC_ADDR_SIZE);
if ( pIes->WAPI.preauth )
{
pSession->BkidCandidateInfo[pSession->NumBkidCandidate].preAuthSupported
@@ -5128,7 +5128,7 @@ static tANI_BOOLEAN csrScanProcessScanResults( tpAniSirGlobal pMac, tSmeCmd *pCo
tANI_BOOLEAN csrScanIsWildCardScan( tpAniSirGlobal pMac, tSmeCmd *pCommand )
{
- tANI_U8 bssid[WNI_CFG_BSSID_LEN] = {0, 0, 0, 0, 0, 0};
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE] = {0, 0, 0, 0, 0, 0};
tANI_BOOLEAN f = vos_mem_compare(pCommand->u.scanCmd.u.scanRequest.bssid,
bssid, sizeof(tCsrBssid));
@@ -5520,12 +5520,12 @@ eHalStatus csrSendMBScanReq( tpAniSirGlobal pMac, tANI_U16 sessionId,
eHalStatus status = eHAL_STATUS_SUCCESS;
tSirSmeScanReq *pMsg;
tANI_U16 msgLen;
- tANI_U8 bssid[WNI_CFG_BSSID_LEN] = {0, 0, 0, 0, 0, 0};
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE] = {0, 0, 0, 0, 0, 0};
tSirScanType scanType = pScanReq->scanType;
tANI_U32 minChnTime; //in units of milliseconds
tANI_U32 maxChnTime; //in units of milliseconds
tANI_U32 i;
- tANI_U8 selfMacAddr[WNI_CFG_BSSID_LEN];
+ tANI_U8 selfMacAddr[VOS_MAC_ADDR_SIZE];
tANI_U8 *pSelfMac = NULL;
msgLen = (tANI_U16)(sizeof( tSirSmeScanReq ) - sizeof( pMsg->channelList.channelNumber ) +
@@ -5578,11 +5578,11 @@ eHalStatus csrSendMBScanReq( tpAniSirGlobal pMac, tANI_U16 sessionId,
}
if( CSR_ROAM_SESSION_MAX == i )
{
- tANI_U32 len = WNI_CFG_BSSID_LEN;
+ tANI_U32 len = VOS_MAC_ADDR_SIZE;
pSelfMac = selfMacAddr;
status = ccmCfgGetStr( pMac, WNI_CFG_STA_ID, pSelfMac, &len );
if( !HAL_STATUS_SUCCESS( status ) ||
- ( len < WNI_CFG_BSSID_LEN ) )
+ ( len < VOS_MAC_ADDR_SIZE ) )
{
smsLog( pMac, LOGE, FL(" Can not get self MAC address from CFG status = %d"), status );
//Force failed status
@@ -5601,7 +5601,7 @@ eHalStatus csrSendMBScanReq( tpAniSirGlobal pMac, tANI_U16 sessionId,
}
else
{
- vos_mem_copy(pMsg->bssId, pScanReq->bssid, WNI_CFG_BSSID_LEN);
+ vos_mem_copy(pMsg->bssId, pScanReq->bssid, VOS_MAC_ADDR_SIZE);
}
minChnTime = pScanReq->minChnTime;
maxChnTime = pScanReq->maxChnTime;
diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c
index 1e9a3dbc22e2..78a9d4440409 100644
--- a/CORE/SME/src/csr/csrUtil.c
+++ b/CORE/SME/src/csr/csrUtil.c
@@ -5249,17 +5249,17 @@ tANI_BOOLEAN csrIsSsidInList( tHalHandle hHal, tSirMacSSid *pSsid, tCsrSSIDs *pS
//like to use sirCompareMacAddr
tANI_BOOLEAN csrIsMacAddressZero( tpAniSirGlobal pMac, tCsrBssid *pMacAddr )
{
- tANI_U8 bssid[WNI_CFG_BSSID_LEN] = {0, 0, 0, 0, 0, 0};
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE] = {0, 0, 0, 0, 0, 0};
- return (vos_mem_compare(bssid, pMacAddr, WNI_CFG_BSSID_LEN));
+ return (vos_mem_compare(bssid, pMacAddr, VOS_MAC_ADDR_SIZE));
}
//like to use sirCompareMacAddr
tANI_BOOLEAN csrIsMacAddressBroadcast( tpAniSirGlobal pMac, tCsrBssid *pMacAddr )
{
- tANI_U8 bssid[WNI_CFG_BSSID_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+ tANI_U8 bssid[VOS_MAC_ADDR_SIZE] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
- return(vos_mem_compare(bssid, pMacAddr, WNI_CFG_BSSID_LEN));
+ return(vos_mem_compare(bssid, pMacAddr, VOS_MAC_ADDR_SIZE));
}
diff --git a/CORE/SYS/legacy/src/utils/src/macTrace.c b/CORE/SYS/legacy/src/utils/src/macTrace.c
index c3fa38866cb8..7433801b71e1 100644
--- a/CORE/SYS/legacy/src/utils/src/macTrace.c
+++ b/CORE/SYS/legacy/src/utils/src/macTrace.c
@@ -804,6 +804,7 @@ tANI_U8* macTraceGetWdaMsgString( tANI_U16 wdaMsg )
CASE_RETURN_STRING(WDA_SET_THERMAL_LEVEL);
CASE_RETURN_STRING(WDA_SET_SAP_INTRABSS_DIS);
CASE_RETURN_STRING(WDA_FW_STATS_IND);
+ CASE_RETURN_STRING(WDA_VDEV_STOP_IND);
default:
return((tANI_U8*) "UNKNOWN" );
break;
diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h
index 2a68a886a534..593f482352bb 100644
--- a/CORE/WDA/inc/wlan_qct_wda.h
+++ b/CORE/WDA/inc/wlan_qct_wda.h
@@ -1337,6 +1337,7 @@ tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
#define WDA_MODEM_POWER_STATE_IND SIR_HAL_MODEM_POWER_STATE_IND
+#define WDA_VDEV_STOP_IND SIR_HAL_VDEV_STOP_IND
tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
diff --git a/Kbuild b/Kbuild
index 20be59f134e6..d87928e07e25 100644
--- a/Kbuild
+++ b/Kbuild
@@ -974,6 +974,7 @@ CDEFINES := -DANI_LITTLE_BYTE_ENDIAN \
-DQCA_SUPPORT_TX_THROTTLE_LL \
-DWMI_INTERFACE_EVENT_LOGGING\
-DATH_SUPPORT_WAPI\
+ -DDISABLE_L1SS_STATES \
ifeq ($(CONFIG_QCA_WIFI_SDIO), 1)
CDEFINES += -DCONFIG_HL_SUPPORT \
diff --git a/firmware_bin/WCNSS_cfg.dat b/firmware_bin/WCNSS_cfg.dat
index db1a81ec8b98..024cc49500a7 100755
--- 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 09ba9f63c340..432c94727028 100755
--- a/firmware_bin/WCNSS_qcom_cfg.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.ini
@@ -537,7 +537,7 @@ gEnableHystereticMode=1
#Disable/Enable Strict FCC Regulatory
# 0 to disable, 1 to enable
-gEnableStrictRegulatoryForFCC=1
+gEnableStrictRegulatoryForFCC=0
#Disable packet log feature
gEnablePacketLog=0