summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-08-09 20:16:05 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-08-09 20:16:05 -0700
commit2da583b38170addaede55de83a9092b9044c1cf6 (patch)
treecfb435ff86f9fbdc8bf1c5274f1c415cbc452eb8
parente387fa8686acd0fbbd7be2f1e2a58e2875eb1a56 (diff)
parent9457fec0d3e90c599faa7b3e6dbb494fcb500b3e (diff)
Merge "Release 1.0.0.165 QCACLD WLAN Driver"
-rw-r--r--CORE/CLD_TXRX/HTT/htt.c2
-rw-r--r--CORE/CLD_TXRX/HTT/htt_h2t.c19
-rw-r--r--CORE/CLD_TXRX/HTT/htt_t2h.c30
-rw-r--r--CORE/CLD_TXRX/HTT/htt_types.h1
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_cfg.c3
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_tx.c21
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_tx_send.c20
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_txrx.c1
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_txrx_types.h1
-rw-r--r--CORE/EPPING/src/epping_helper.c1
-rw-r--r--CORE/EPPING/src/epping_main.c1
-rw-r--r--CORE/EPPING/src/epping_rx.c1
-rw-r--r--CORE/EPPING/src/epping_tx.c1
-rw-r--r--CORE/EPPING/src/epping_txrx.c1
-rw-r--r--CORE/HDD/src/wlan_hdd_assoc.c8
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c19
-rwxr-xr-xCORE/HDD/src/wlan_hdd_main.c1
-rw-r--r--CORE/HDD/src/wlan_hdd_tdls.c5
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/inc/sirApi.h3
-rw-r--r--CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c15
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c4
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c4
-rw-r--r--CORE/SERVICES/COMMON/dbglog.h77
-rw-r--r--CORE/SERVICES/COMMON/ol_htt_tx_api.h3
-rw-r--r--CORE/SERVICES/COMMON/ol_txrx_htt_api.h3
-rw-r--r--CORE/SERVICES/COMMON/targaddrs.h3
-rw-r--r--CORE/SERVICES/COMMON/wlan_tgt_def_config_hl.h12
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h93
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMA/wma.c135
-rw-r--r--CORE/SERVICES/WMA/wma.h6
-rw-r--r--CORE/SME/inc/csrInternal.h3
-rw-r--r--CORE/SME/inc/oemDataInternal.h1
-rw-r--r--CORE/SME/inc/p2p_Api.h2
-rw-r--r--CORE/SME/inc/pmc.h1
-rw-r--r--CORE/SME/inc/smeInternal.h2
-rw-r--r--CORE/SME/inc/smeRrmInternal.h1
-rw-r--r--CORE/SME/inc/sme_Api.h2
-rw-r--r--CORE/SME/inc/sme_FTApi.h3
-rw-r--r--CORE/SME/src/QoS/sme_Qos.c2
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c25
-rw-r--r--CORE/SME/src/csr/csrApiScan.c18
-rw-r--r--CORE/SME/src/csr/csrInsideApi.h18
-rw-r--r--CORE/SME/src/csr/csrNeighborRoam.c6
-rw-r--r--CORE/SME/src/pmc/pmcApi.c1
-rw-r--r--CORE/SME/src/sme_common/sme_Api.c4
-rw-r--r--CORE/SYS/legacy/src/pal/inc/palTimer.h85
-rw-r--r--CORE/SYS/legacy/src/pal/src/palTimer.c236
-rw-r--r--CORE/VOSS/inc/vos_timer.h2
-rw-r--r--Kbuild1
-rw-r--r--firmware_bin/WCNSS_qcom_cfg.usb.ini2
-rw-r--r--tools/fwdebuglog/nan-parser.c27
53 files changed, 353 insertions, 589 deletions
diff --git a/CORE/CLD_TXRX/HTT/htt.c b/CORE/CLD_TXRX/HTT/htt.c
index c16e6c8d31b6..7ce284a19bae 100644
--- a/CORE/CLD_TXRX/HTT/htt.c
+++ b/CORE/CLD_TXRX/HTT/htt.c
@@ -184,8 +184,6 @@ htt_attach(
/* for efficiency, store a local copy of the is_high_latency flag */
pdev->cfg.is_high_latency = ol_cfg_is_high_latency(pdev->ctrl_pdev);
- pdev->cfg.default_tx_comp_req =
- !ol_cfg_tx_free_at_download(pdev->ctrl_pdev);
pdev->cfg.is_full_reorder_offload =
ol_cfg_is_full_reorder_offload(pdev->ctrl_pdev);
diff --git a/CORE/CLD_TXRX/HTT/htt_h2t.c b/CORE/CLD_TXRX/HTT/htt_h2t.c
index d9d5ee573776..3ac693fd6f13 100644
--- a/CORE/CLD_TXRX/HTT/htt_h2t.c
+++ b/CORE/CLD_TXRX/HTT/htt_h2t.c
@@ -158,10 +158,6 @@ htt_h2t_ver_req_msg(struct htt_pdev_t *pdev)
#else
HTCSendPkt(pdev->htc_pdev, &pkt->htc_pkt);
#endif
- if ((pdev->cfg.is_high_latency) &&
- (!pdev->cfg.default_tx_comp_req)) {
- ol_tx_target_credit_update(pdev->txrx_pdev, -1);
- }
return A_OK;
}
@@ -490,9 +486,6 @@ htt_h2t_rx_ring_cfg_msg_hl(struct htt_pdev_t *pdev)
#else
HTCSendPkt(pdev->htc_pdev, &pkt->htc_pkt);
#endif
- if (!pdev->cfg.default_tx_comp_req) {
- ol_tx_target_credit_update(pdev->txrx_pdev, -1);
- }
return A_OK;
}
@@ -583,10 +576,6 @@ htt_h2t_dbg_stats_get(
#else
HTCSendPkt(pdev->htc_pdev, &pkt->htc_pkt);
#endif
- if ((pdev->cfg.is_high_latency) &&
- (!pdev->cfg.default_tx_comp_req)) {
- ol_tx_target_credit_update(pdev->txrx_pdev, -1);
- }
return 0;
}
@@ -645,10 +634,6 @@ htt_h2t_sync_msg(struct htt_pdev_t *pdev, u_int8_t sync_cnt)
#else
HTCSendPkt(pdev->htc_pdev, &pkt->htc_pkt);
#endif
- if ((pdev->cfg.is_high_latency) &&
- (!pdev->cfg.default_tx_comp_req)) {
- ol_tx_target_credit_update(pdev->txrx_pdev, -1);
- }
return A_OK;
}
@@ -716,10 +701,6 @@ htt_h2t_aggr_cfg_msg(struct htt_pdev_t *pdev,
#else
HTCSendPkt(pdev->htc_pdev, &pkt->htc_pkt);
#endif
- if ((pdev->cfg.is_high_latency) &&
- (!pdev->cfg.default_tx_comp_req)) {
- ol_tx_target_credit_update(pdev->txrx_pdev, -1);
- }
return 0;
}
diff --git a/CORE/CLD_TXRX/HTT/htt_t2h.c b/CORE/CLD_TXRX/HTT/htt_t2h.c
index 2593ff29377e..bd0ec60c0632 100644
--- a/CORE/CLD_TXRX/HTT/htt_t2h.c
+++ b/CORE/CLD_TXRX/HTT/htt_t2h.c
@@ -334,14 +334,28 @@ htt_t2h_lp_msg_handler(void *context, adf_nbuf_t htt_t2h_msg )
#endif
case HTT_T2H_MSG_TYPE_TX_CREDIT_UPDATE_IND:
{
- u_int32_t htt_credit_delta_abs;
- int32_t htt_credit_delta;
- int sign;
-
- htt_credit_delta_abs = HTT_TX_CREDIT_DELTA_ABS_GET(*msg_word);
- sign = HTT_TX_CREDIT_SIGN_BIT_GET(*msg_word) ? -1 : 1;
- htt_credit_delta = sign * htt_credit_delta_abs;
- ol_tx_credit_completion_handler(pdev->txrx_pdev, htt_credit_delta);
+ A_INT16 htt_credit_delta_abs = HTT_TX_CREDIT_DELTA_ABS_GET(*msg_word);
+ struct ol_txrx_pdev_t* ptxrx_pdev = pdev->txrx_pdev;
+ if ( HTT_TX_CREDIT_SIGN_BIT_GET(*msg_word) ) {
+ /* negative delta */
+#if DEBUG_CREDIT
+ adf_os_print(" <HTT> Decrease Credit %d - %d = %d(Msg).\n",
+ adf_os_atomic_read(&ptxrx_pdev->target_tx_credit),
+ htt_credit_delta_abs,
+ adf_os_atomic_read(&ptxrx_pdev->target_tx_credit) - htt_credit_delta_abs);
+#endif
+ adf_os_atomic_add((A_INT32)(-htt_credit_delta_abs), &ptxrx_pdev->target_tx_credit);
+ } else {
+ /* positive delta */
+#if DEBUG_CREDIT
+ adf_os_print(" <HTT> Increase Credit %d + %d = %d(Msg).\n",
+ adf_os_atomic_read(&ptxrx_pdev->target_tx_credit),
+ htt_credit_delta_abs,
+ adf_os_atomic_read(&ptxrx_pdev->target_tx_credit) + htt_credit_delta_abs);
+#endif
+ adf_os_atomic_add((A_INT32)htt_credit_delta_abs, &ptxrx_pdev->target_tx_credit);
+ }
+
break;
}
diff --git a/CORE/CLD_TXRX/HTT/htt_types.h b/CORE/CLD_TXRX/HTT/htt_types.h
index 56369a42c303..51fddfc3552a 100644
--- a/CORE/CLD_TXRX/HTT/htt_types.h
+++ b/CORE/CLD_TXRX/HTT/htt_types.h
@@ -213,7 +213,6 @@ struct htt_pdev_t {
struct {
int is_high_latency;
int is_full_reorder_offload;
- int default_tx_comp_req;
} cfg;
struct {
u_int8_t major;
diff --git a/CORE/CLD_TXRX/TXRX/ol_cfg.c b/CORE/CLD_TXRX/TXRX/ol_cfg.c
index 98954f0af8b1..ba111262162c 100644
--- a/CORE/CLD_TXRX/TXRX/ol_cfg.c
+++ b/CORE/CLD_TXRX/TXRX/ol_cfg.c
@@ -53,9 +53,6 @@ ol_pdev_handle ol_pdev_cfg_attach(adf_os_device_t osdev,
cfg_ctx->is_high_latency = 1;
/* 802.1Q and SNAP / LLC headers are accounted for elsewhere */
cfg_ctx->tx_download_size = 1500;
-#ifdef HIF_SDIO
- cfg_ctx->tx_free_at_download = 0;
-#endif
#else
/*
* Need to change HTT_LL_TX_HDR_SIZE_IP accordingly.
diff --git a/CORE/CLD_TXRX/TXRX/ol_tx.c b/CORE/CLD_TXRX/TXRX/ol_tx.c
index 5bf89dc46fe3..1d9233bb8a60 100644
--- a/CORE/CLD_TXRX/TXRX/ol_tx.c
+++ b/CORE/CLD_TXRX/TXRX/ol_tx.c
@@ -480,8 +480,7 @@ static inline adf_nbuf_t
ol_tx_hl_base(
ol_txrx_vdev_handle vdev,
enum ol_tx_spec tx_spec,
- adf_nbuf_t msdu_list,
- int tx_comp_req)
+ adf_nbuf_t msdu_list)
{
struct ol_txrx_pdev_t *pdev = vdev->pdev;
adf_nbuf_t msdu = msdu_list;
@@ -563,7 +562,6 @@ ol_tx_hl_base(
tx_msdu_info.htt.info.vdev_id = vdev->vdev_id;
tx_msdu_info.htt.info.frame_type = htt_frm_type_data;
tx_msdu_info.htt.info.l2_hdr_type = pdev->htt_pkt_type;
- tx_msdu_info.htt.action.tx_comp_req = tx_comp_req;
txq = ol_tx_classify(vdev, tx_desc, msdu, &tx_msdu_info);
@@ -646,10 +644,7 @@ MSDU_LOOP_BOTTOM:
adf_nbuf_t
ol_tx_hl(ol_txrx_vdev_handle vdev, adf_nbuf_t msdu_list)
{
- struct ol_txrx_pdev_t *pdev = vdev->pdev;
- int tx_comp_req = pdev->cfg.default_tx_comp_req;
-
- return ol_tx_hl_base(vdev, ol_tx_spec_std, msdu_list, tx_comp_req);
+ return ol_tx_hl_base(vdev, ol_tx_spec_std, msdu_list);
}
adf_nbuf_t
@@ -658,16 +653,7 @@ ol_tx_non_std_hl(
enum ol_tx_spec tx_spec,
adf_nbuf_t msdu_list)
{
- struct ol_txrx_pdev_t *pdev = vdev->pdev;
- int tx_comp_req = pdev->cfg.default_tx_comp_req;
-
- if (!tx_comp_req) {
- if ((tx_spec == ol_tx_spec_no_free) &&
- (pdev->tx_data_callback.func)) {
- tx_comp_req = 1;
- }
- }
- return ol_tx_hl_base(vdev, tx_spec, msdu_list, tx_comp_req);
+ return ol_tx_hl_base(vdev, tx_spec, msdu_list);
}
adf_nbuf_t
@@ -768,7 +754,6 @@ ol_txrx_mgmt_send(
adf_nbuf_map_single(pdev->osdev, tx_mgmt_frm, ADF_OS_DMA_TO_DEVICE);
if (pdev->cfg.is_high_latency) {
- tx_msdu_info.htt.action.tx_comp_req = 1;
tx_desc = ol_tx_desc_hl(pdev, vdev, tx_mgmt_frm, &tx_msdu_info);
} else {
tx_desc = ol_tx_desc_ll(pdev, vdev, tx_mgmt_frm, &tx_msdu_info);
diff --git a/CORE/CLD_TXRX/TXRX/ol_tx_send.c b/CORE/CLD_TXRX/TXRX/ol_tx_send.c
index 86c86adaeae7..faf499ddf2a4 100644
--- a/CORE/CLD_TXRX/TXRX/ol_tx_send.c
+++ b/CORE/CLD_TXRX/TXRX/ol_tx_send.c
@@ -326,14 +326,7 @@ ol_tx_download_done_hl_free(
tx_desc = ol_tx_desc_find(pdev, msdu_id);
adf_os_assert(tx_desc);
-
- ol_tx_download_done_base(pdev, status, msdu, msdu_id);
-
- if ((tx_desc->pkt_type != ol_tx_frm_no_free) &&
- (tx_desc->pkt_type < OL_TXRX_MGMT_TYPE_BASE)) {
- adf_os_atomic_add(1, &pdev->tx_queue.rsrc_cnt);
- ol_tx_desc_frame_free_nonstd(pdev, tx_desc, status != A_OK);
- }
+ ol_tx_desc_frame_free_nonstd(pdev, tx_desc, status != A_OK);
#if 0 /* TODO: Advanced feature */
//ol_tx_dwl_sched(pdev, OL_TX_HL_SCHED_DOWNLOAD_DONE);
adf_os_assert(0);
@@ -475,17 +468,6 @@ ol_tx_discard_target_frms(ol_txrx_pdev_handle pdev)
}
}
-void
-ol_tx_credit_completion_handler(ol_txrx_pdev_handle pdev, int credits)
-{
- ol_tx_target_credit_update(pdev, credits);
- if (pdev->cfg.is_high_latency) {
- ol_tx_sched(pdev);
- }
- /* UNPAUSE OS Q */
- OL_TX_FLOW_CT_UNPAUSE_OS_Q(pdev);
-}
-
/* WARNING: ol_tx_inspect_handler()'s bahavior is similar to that of ol_tx_completion_handler().
* any change in ol_tx_completion_handler() must be mirrored in ol_tx_inspect_handler().
*/
diff --git a/CORE/CLD_TXRX/TXRX/ol_txrx.c b/CORE/CLD_TXRX/TXRX/ol_txrx.c
index ea8382edf4d2..9b7c1a903d9b 100644
--- a/CORE/CLD_TXRX/TXRX/ol_txrx.c
+++ b/CORE/CLD_TXRX/TXRX/ol_txrx.c
@@ -255,7 +255,6 @@ ol_txrx_pdev_attach(
/* init LL/HL cfg here */
pdev->cfg.is_high_latency = ol_cfg_is_high_latency(ctrl_pdev);
- pdev->cfg.default_tx_comp_req = !ol_cfg_tx_free_at_download(ctrl_pdev);
/* store provided params */
pdev->ctrl_pdev = ctrl_pdev;
diff --git a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h
index a60c1acb8286..42d7e69adb38 100644
--- a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h
+++ b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h
@@ -391,7 +391,6 @@ struct ol_txrx_pdev_t {
int is_high_latency;
int host_addba;
int ll_pause_txq_limit;
- int default_tx_comp_req;
} cfg;
/* WDI subscriber's event list */
diff --git a/CORE/EPPING/src/epping_helper.c b/CORE/EPPING/src/epping_helper.c
index 353b4bdef823..fb720de2ba04 100644
--- a/CORE/EPPING/src/epping_helper.c
+++ b/CORE/EPPING/src/epping_helper.c
@@ -46,7 +46,6 @@
#include <linux/delay.h>
#include <wcnss_api.h>
#include <wlan_hdd_tx_rx.h>
-#include <palTimer.h>
#include <wniApi.h>
#include <wlan_nlink_srv.h>
#include <wlan_btc_svc.h>
diff --git a/CORE/EPPING/src/epping_main.c b/CORE/EPPING/src/epping_main.c
index 3bb63e857f01..cfd8338b5ed1 100644
--- a/CORE/EPPING/src/epping_main.c
+++ b/CORE/EPPING/src/epping_main.c
@@ -45,7 +45,6 @@
#include <linux/firmware.h>
#include <wcnss_api.h>
#include <wlan_hdd_tx_rx.h>
-#include <palTimer.h>
#include <wniApi.h>
#include <wlan_nlink_srv.h>
#include <wlan_btc_svc.h>
diff --git a/CORE/EPPING/src/epping_rx.c b/CORE/EPPING/src/epping_rx.c
index cb9e6c795083..909729956894 100644
--- a/CORE/EPPING/src/epping_rx.c
+++ b/CORE/EPPING/src/epping_rx.c
@@ -45,7 +45,6 @@
#include <linux/firmware.h>
#include <wcnss_api.h>
#include <wlan_hdd_tx_rx.h>
-#include <palTimer.h>
#include <wniApi.h>
#include <wlan_nlink_srv.h>
#include <wlan_btc_svc.h>
diff --git a/CORE/EPPING/src/epping_tx.c b/CORE/EPPING/src/epping_tx.c
index 2499e15f1c21..75f6a0cc6fad 100644
--- a/CORE/EPPING/src/epping_tx.c
+++ b/CORE/EPPING/src/epping_tx.c
@@ -45,7 +45,6 @@
#include <linux/firmware.h>
#include <wcnss_api.h>
#include <wlan_hdd_tx_rx.h>
-#include <palTimer.h>
#include <wniApi.h>
#include <wlan_nlink_srv.h>
#include <wlan_btc_svc.h>
diff --git a/CORE/EPPING/src/epping_txrx.c b/CORE/EPPING/src/epping_txrx.c
index cf2a7d4074d3..bd8c7154687f 100644
--- a/CORE/EPPING/src/epping_txrx.c
+++ b/CORE/EPPING/src/epping_txrx.c
@@ -45,7 +45,6 @@
#include <linux/firmware.h>
#include <wcnss_api.h>
#include <wlan_hdd_tx_rx.h>
-#include <palTimer.h>
#include <wniApi.h>
#include <wlan_nlink_srv.h>
#include <wlan_btc_svc.h>
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index a16e5a560245..7e9c869c280d 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -1579,6 +1579,14 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs
{
if ( !hddDisconInProgress )
{
+ /* After roaming is completed, active session count is
+ * incremented as a part of connect indication but
+ * effectively the active session count should still
+ * be the same and hence upon successful reassoc
+ * decrement the active session count here */
+ wlan_hdd_decr_active_session(pHddCtx,
+ pAdapter->device_mode);
+
hddLog(LOG1, "%s ft_carrier_on is %d, sending roamed "
"indication", __FUNCTION__, ft_carrier_on);
chan = ieee80211_get_channel(pAdapter->wdev.wiphy,
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 3b5b01eb558a..c724d236eb87 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -12953,26 +12953,29 @@ static int wlan_hdd_cfg80211_set_mac_acl(struct wiphy *wiphy,
#ifdef FEATURE_WLAN_LPHB
void wlan_hdd_cfg80211_lphb_ind_handler
(
- void *pAdapter,
- void *indCont
+ void *pHddCtx,
+ tSirLPHBInd *lphbInd
)
{
- tSirLPHBInd *lphbInd;
struct sk_buff *skb;
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
"LPHB indication arrived");
- if (NULL == indCont)
- {
+ if (0 != wlan_hdd_validate_context((hdd_context_t *)pHddCtx)) {
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: invalid argument pHddCtx", __func__);
+ return;
+ }
+
+ if (NULL == lphbInd) {
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
- "LPHB IND, invalid argument");
+ "%s: invalid argument lphbInd", __func__);
return;
}
- lphbInd = (tSirLPHBInd *)indCont;
skb = cfg80211_testmode_alloc_event_skb(
- ((hdd_adapter_t *)pAdapter)->wdev.wiphy,
+ ((hdd_context_t *)pHddCtx)->wiphy,
sizeof(tSirLPHBInd),
GFP_ATOMIC);
if (!skb)
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 5a9493e34914..ec16099fd152 100755
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -67,7 +67,6 @@
#include <linux/firmware.h>
#include <wcnss_api.h>
#include <wlan_hdd_tx_rx.h>
-#include <palTimer.h>
#include <wniApi.h>
#include <wlan_nlink_srv.h>
#include <wlan_btc_svc.h>
diff --git a/CORE/HDD/src/wlan_hdd_tdls.c b/CORE/HDD/src/wlan_hdd_tdls.c
index 4c9f73e81221..6b10f8d915e8 100644
--- a/CORE/HDD/src/wlan_hdd_tdls.c
+++ b/CORE/HDD/src/wlan_hdd_tdls.c
@@ -2122,6 +2122,8 @@ static void __wlan_hdd_tdls_pre_setup(struct work_struct *work)
vos_mem_copy(&peer_mac, curr_peer->peerMac, sizeof(peer_mac));
+ mutex_unlock(&pHddCtx->tdls_lock);
+
/*
* If Powersave Offload is enabled
* Fw will take care incase of concurrency
@@ -2137,6 +2139,9 @@ static void __wlan_hdd_tdls_pre_setup(struct work_struct *work)
}
temp_peer = wlan_hdd_tdls_is_progress(pHddCtx, NULL, 0);
+
+ mutex_lock(&pHddCtx->tdls_lock);
+
if (NULL != temp_peer)
{
VOS_TRACE( VOS_MODULE_ID_HDD, TDLS_LOG_LEVEL, "%s: " MAC_ADDRESS_STR " ongoing. pre_setup ignored",
diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h
index dd66c6ef7415..2870030a8316 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 164
+#define QWLAN_VERSION_BUILD 165
-#define QWLAN_VERSIONSTR "1.0.0.164"
+#define QWLAN_VERSIONSTR "1.0.0.165"
#ifdef QCA_WIFI_2_0
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index 1f734bcee41d..e7972f973fe6 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -3406,6 +3406,7 @@ typedef struct sSirUpdateAPWPARSNIEsReq
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
#define SIR_ROAM_SCAN_PSK_SIZE 32
+#define SIR_ROAM_R0KH_ID_MAX_LEN 48
#endif
// SME -> HAL - This is the host offload request.
#define SIR_IPV4_ARP_REPLY_OFFLOAD 0
@@ -3764,7 +3765,7 @@ typedef struct sSirRoamOffloadScanReq
tANI_U8 BTK[SIR_BTK_KEY_LEN];
tANI_U32 ReassocFailureTimeout;
tSirAcUapsd AcUapsd;
- tANI_U32 R0KH_ID;
+ tANI_U8 R0KH_ID[SIR_ROAM_R0KH_ID_MAX_LEN];
tANI_U32 R0KH_ID_Length;
#endif
} tSirRoamOffloadScanReq, *tpSirRoamOffloadScanReq;
diff --git a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
index f83aebc95dc9..8dcd0e641e00 100644
--- a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c
@@ -320,7 +320,6 @@ limProcessAssocRspFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tANI_U8 sub
tSchBeaconStruct *pBeaconStruct;
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
tANI_U8 smeSessionId = 0;
- tANI_U32 r0kh_id_len;
#endif
//Initialize status code to success.
@@ -535,19 +534,19 @@ limProcessAssocRspFrame(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tANI_U8 sub
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
- if(pAssocRsp->FTInfo.R0KH_ID.present)
+ if (pAssocRsp->FTInfo.R0KH_ID.present)
{
- r0kh_id_len = pAssocRsp->FTInfo.R0KH_ID.num_PMK_R0_ID;
pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id_len =
- (r0kh_id_len >= sizeof(tANI_U32))? sizeof(tANI_U32):r0kh_id_len;
- vos_mem_copy(&pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id,
- &pAssocRsp->FTInfo.R0KH_ID.PMK_R0_ID[0],
- pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id_len);
+ pAssocRsp->FTInfo.R0KH_ID.num_PMK_R0_ID;
+ vos_mem_copy(pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id,
+ pAssocRsp->FTInfo.R0KH_ID.PMK_R0_ID,
+ pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id_len);
}
else
{
pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id_len = 0;
- pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id = 0;
+ vos_mem_zero(pMac->roam.roamSession[smeSessionId].ftSmeContext.r0kh_id,
+ SIR_ROAM_R0KH_ID_MAX_LEN);
}
#endif
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
index e0ac873cce73..ac227b7e32b2 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
@@ -435,6 +435,10 @@ limProcessMlmStartCnf(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
(vos_nv_getChannelEnabledState(channelId) != NV_CHANNEL_DFS)) )
{
//Configure beacon and send beacons to HAL
+ VOS_TRACE(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO,
+ FL("Start Beacon with ssid %s Ch %d"),
+ psessionEntry->ssId.ssId,
+ psessionEntry->currentOperChannel);
limSendBeaconInd(pMac, psessionEntry);
}
}
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index b696c2b5d9bb..0673a0333d1e 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -5871,6 +5871,10 @@ limProcessSmeStartBeaconReq(tpAniSirGlobal pMac, tANI_U32 * pMsg)
* Tx right after the WDA_ADD_BSS_RSP.
*/
limApplyConfiguration(pMac,psessionEntry);
+ VOS_TRACE(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO,
+ FL("Start Beacon with ssid %s Ch %d"),
+ psessionEntry->ssId.ssId,
+ psessionEntry->currentOperChannel);
limSendBeaconInd(pMac, psessionEntry);
}
else
diff --git a/CORE/SERVICES/COMMON/dbglog.h b/CORE/SERVICES/COMMON/dbglog.h
index 1eae88b9ef89..afc3bb0e02eb 100644
--- a/CORE/SERVICES/COMMON/dbglog.h
+++ b/CORE/SERVICES/COMMON/dbglog.h
@@ -129,83 +129,6 @@ PREPACK struct dbglog_hdr_host {
#define DBGLOG_MAX_VDEVID 15 /* 0-15 */
-/** value representing all modules */
-#define WMI_DEBUG_LOG_MODULE_ALL 0xffff
-
-/* param definitions */
-
-/**
- * Log level for a given module. Value contains both module id and log level.
- * here is the bitmap definition for value.
- * module Id : 16
- * Flags : reserved
- * Level : 8
- * if odule Id is WMI_DEBUG_LOG_MODULE_ALL then log level is applied to all modules (global).
- * WMI_DEBUG_LOG_MIDULE_ALL will overwrites per module level setting.
- */
-#define WMI_DEBUG_LOG_PARAM_LOG_LEVEL 0x1
-
-#define WMI_DBGLOG_SET_LOG_LEVEL(val,lvl) do { \
- (val) |= (lvl & 0xff); \
- } while(0)
-
-#define WMI_DBGLOG_GET_LOG_LEVEL(val) ((val) & 0xff)
-
-#define WMI_DBGLOG_SET_MODULE_ID(val,mid) do { \
- (val) |= ((mid & 0xffff) << 16); \
- } while(0)
-
-#define WMI_DBGLOG_GET_MODULE_ID(val) (( (val) >> 16) & 0xffff)
-
-/**
- * Enable the debug log for a given vdev. Value is vdev id
- */
-#define WMI_DEBUG_LOG_PARAM_VDEV_ENABLE 0x2
-
-/**
- * Disable the debug log for a given vdev. Value is vdev id
- * All the log level for a given VDEV is disabled except the ERROR log messages
- */
-#define WMI_DEBUG_LOG_PARAM_VDEV_DISABLE 0x3
-
-/**
- * set vdev enable bitmap. value is the vden enable bitmap
- */
-#define WMI_DEBUG_LOG_PARAM_VDEV_ENABLE_BITMAP 0x4
-
-/**
- * set a given log level to all the modules specified in the module bitmap.
- * and set the log levle for all other modules to DBGLOG_ERR.
- * value: log levelt to be set.
- * module_id_bitmap : identifies the modules for which the log level should be set and
- * modules for which the log level should be reset to DBGLOG_ERR.
- */
-#define WMI_DEBUG_LOG_PARAM_MOD_ENABLE_BITMAP 0x5
-
-#define NUM_MODULES_PER_ENTRY ((sizeof(A_UINT32)) << 3)
-
-#define WMI_MODULE_ENABLE(pmid_bitmap,mod_id) \
- ( (pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] |= \
- (1 << ((mod_id)%NUM_MODULES_PER_ENTRY)) )
-
-#define WMI_MODULE_DISABLE(pmid_bitmap,mod_id) \
- ( (pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] &= \
- ( ~(1 << ((mod_id)%NUM_MODULES_PER_ENTRY)) ) )
-
-#define WMI_MODULE_IS_ENABLED(pmid_bitmap,mod_id) \
- ( ((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY ] & \
- (1 << ((mod_id)%NUM_MODULES_PER_ENTRY)) ) != 0)
-
-#define MAX_MODULE_ID_BITMAP_WORDS 16 /* 16*32=512 module ids. should be more than sufficient */
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param */
- A_UINT32 dbg_log_param; /** param types are defined above */
- A_UINT32 value;
- /* The below array will follow this tlv ->fixed length module_id_bitmap[]
- A_UINT32 module_id_bitmap[MAX_MODULE_ID_BITMAP_WORDS];
- */
-} wmi_debug_log_config_cmd_fixed_param;
-
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/ol_htt_tx_api.h b/CORE/SERVICES/COMMON/ol_htt_tx_api.h
index f4eeafbf9aac..323c71d0b2fa 100644
--- a/CORE/SERVICES/COMMON/ol_htt_tx_api.h
+++ b/CORE/SERVICES/COMMON/ol_htt_tx_api.h
@@ -154,8 +154,6 @@ struct htt_msdu_info_t {
u_int8_t use_6mbps; /* mgmt frames: option to force 6 Mbps rate */
u_int8_t do_encrypt;
u_int8_t do_tx_complete;
- u_int8_t tx_comp_req;
-
/*
* cksum_offload - Specify whether checksum offload is enabled or not
* Target FW uses this flag to turn on HW checksumming
@@ -411,7 +409,6 @@ htt_tx_desc_init(
HTT_TX_DESC_VDEV_ID_SET(local_word0, msdu_info->info.vdev_id);
HTT_TX_DESC_EXT_TID_SET(local_word0, msdu_info->info.ext_tid);
HTT_TX_DESC_CKSUM_OFFLOAD_SET(local_word0, msdu_info->action.cksum_offload);
- HTT_TX_DESC_TX_COMP_SET(local_word0, msdu_info->action.tx_comp_req);
HTT_TX_DESC_NO_ENCRYPT_SET(local_word0, msdu_info->action.do_encrypt ? 0 : 1);
*word0 = local_word0;
diff --git a/CORE/SERVICES/COMMON/ol_txrx_htt_api.h b/CORE/SERVICES/COMMON/ol_txrx_htt_api.h
index 9a1f164f9b3c..e0e07e6ccf69 100644
--- a/CORE/SERVICES/COMMON/ol_txrx_htt_api.h
+++ b/CORE/SERVICES/COMMON/ol_txrx_htt_api.h
@@ -164,9 +164,6 @@ ol_tx_completion_handler(
enum htt_tx_status status,
void *tx_msdu_id_iterator);
-void
-ol_tx_credit_completion_handler(ol_txrx_pdev_handle pdev, int credits);
-
/**
* @brief Init the total amount of target credit.
* @details
diff --git a/CORE/SERVICES/COMMON/targaddrs.h b/CORE/SERVICES/COMMON/targaddrs.h
index 48b628a6c67e..4f916980567f 100644
--- a/CORE/SERVICES/COMMON/targaddrs.h
+++ b/CORE/SERVICES/COMMON/targaddrs.h
@@ -283,6 +283,9 @@ PREPACK64 struct host_interest_s {
/* minidump buffer */
A_UINT32 hi_minidump; /* 0x118 */
+ /* bdata's sig and key addr */
+ A_UINT32 hi_bd_sig_key; /* 0x11c */
+
} POSTPACK64;
/* bitmap for hi_test_apps_related */
diff --git a/CORE/SERVICES/COMMON/wlan_tgt_def_config_hl.h b/CORE/SERVICES/COMMON/wlan_tgt_def_config_hl.h
index 513d03259148..1016a25dec2a 100644
--- a/CORE/SERVICES/COMMON/wlan_tgt_def_config_hl.h
+++ b/CORE/SERVICES/COMMON/wlan_tgt_def_config_hl.h
@@ -210,7 +210,17 @@
#ifndef HIF_SDIO
#define CFG_TGT_NUM_MSDU_DESC (32)
#else
-#define CFG_TGT_NUM_MSDU_DESC (0)
+/*
+ * For SDIO Only 16 tx-buffers are hooked onto SDIO MBOX DMA engine
+ * in Firmware. So set the targe number of descriptors to map the
+ * same.
+ * This is only temporary solution.
+ * The better solution is defining CFG_TGT_NUM_MSDU_DESC to be 0
+ * and waiting for an initial TX_TARGET_CREDIT_UPDATE_IND message
+ * from the FW to know how many tx buffers the FW has provided
+ * for the host's downloads.
+ */
+#define CFG_TGT_NUM_MSDU_DESC (16)
#endif
/*
* Maximum number of frag table entries
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index cffcb13d4dfa..f756ab3f4e92 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -230,7 +230,7 @@ typedef enum {
WMI_PDEV_GET_TPC_CONFIG_CMDID,
/** set the base MAC address for the physical device before a VDEV is created.
- * For firmware that doesnt support this feature and this command, the pdev
+ * For firmware that doesn't support this feature and this command, the pdev
* MAC address will not be changed. */
WMI_PDEV_SET_BASE_MACADDR_CMDID,
@@ -4178,8 +4178,6 @@ typedef struct {
* is assigned up to 127 */
/* Reserved from 128 - 255 for
* target internal use.*/
- WMI_PEER_TYPE_ROAMOFFLOAD_TEMP = 128, /* Temporarily created
- * during offload roam */
};
typedef struct {
@@ -4637,6 +4635,7 @@ typedef struct _wlan_dcs_im_tgt_stats {
* and target chip is not in sleep.
*
*/
+
/** listen time from ANI */
A_INT32 listen_time;
@@ -5044,7 +5043,7 @@ typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_11r_offload_fixed_param */
A_UINT32 mdie_present;
A_UINT32 mdid;
- A_UINT32 r0kh_id;
+ A_UINT32 r0kh_id[ROAM_OFFLOAD_R0KH_ID_MAX_LEN>>2];
A_UINT32 r0kh_id_len;
A_UINT32 psk_msk[ROAM_OFFLOAD_PSK_MSK_BYTES>>2]; /* psk/msk offload. As this 4 byte aligned, we don't declare it as tlv array */
} wmi_roam_11r_offload_tlv_param;
@@ -5358,6 +5357,7 @@ typedef enum event_type_e {
WOW_ACER_IOAC_EXTEND_EVENT,
WOW_ACER_IOAC_TIMER_EVENT,
WOW_DFS_PHYERR_RADAR_EVENT,
+ WOW_BEACON_EVENT,
}WOW_WAKE_EVENT_TYPE;
typedef enum wake_reason_e {
@@ -5388,6 +5388,7 @@ typedef enum wake_reason_e {
WOW_REASON_ACER_IOAC_TIMER_EVENT,
WOW_REASON_ROAM_HO,
WOW_REASON_DFS_PHYERR_RADADR_EVENT,
+ WOW_REASON_BEACON_RECV,
WOW_REASON_DEBUG_TEST = 0xFF,
}WOW_WAKE_REASON_TYPE;
@@ -7170,7 +7171,7 @@ typedef enum {
WMI_LPI_STATUS_REQ_TIME_OUT = 5,
/** Medium Bussy, already there
* is a scan is going on */
- WMI_LPI_STATUS_MEDIUM_BUSSY = 6,
+ WMI_LPI_STATUS_MEDIUM_BUSY = 6,
}wmi_lpi_staus;
typedef struct
@@ -7187,8 +7188,9 @@ typedef struct
A_UINT32 tlv_header;
wmi_mac_addr bssid;
wmi_ssid ssid;
- A_UINT16 freq;
+ A_UINT32 freq;
A_UINT32 rssi;
+ A_UINT32 vdev_id;
} wmi_lpi_handoff_event_fixed_param;
typedef struct
@@ -8435,6 +8437,85 @@ typedef struct{
A_UINT32 reserved0; /* for future need */
} wmi_d0_wow_disable_ack_event_fixed_param;
+/** value representing all modules */
+#define WMI_DEBUG_LOG_MODULE_ALL 0xffff
+
+/* param definitions */
+
+/**
+ * Log level for a given module. Value contains both module id and log level.
+ * here is the bitmap definition for value.
+ * module Id : 16
+ * Flags : reserved
+ * Level : 8
+ * if odule Id is WMI_DEBUG_LOG_MODULE_ALL then log level is applied to all modules (global).
+ * WMI_DEBUG_LOG_MIDULE_ALL will overwrites per module level setting.
+ */
+#define WMI_DEBUG_LOG_PARAM_LOG_LEVEL 0x1
+
+#define WMI_DBGLOG_SET_LOG_LEVEL(val,lvl) do { \
+ (val) |= (lvl & 0xff); \
+ } while(0)
+
+#define WMI_DBGLOG_GET_LOG_LEVEL(val) ((val) & 0xff)
+
+#define WMI_DBGLOG_SET_MODULE_ID(val,mid) do { \
+ (val) |= ((mid & 0xffff) << 16); \
+ } while(0)
+
+#define WMI_DBGLOG_GET_MODULE_ID(val) (( (val) >> 16) & 0xffff)
+
+/**
+ * Enable the debug log for a given vdev. Value is vdev id
+ */
+#define WMI_DEBUG_LOG_PARAM_VDEV_ENABLE 0x2
+
+
+/**
+ * Disable the debug log for a given vdev. Value is vdev id
+ * All the log level for a given VDEV is disabled except the ERROR log messages
+ */
+
+#define WMI_DEBUG_LOG_PARAM_VDEV_DISABLE 0x3
+
+/**
+ * set vdev enable bitmap. value is the vden enable bitmap
+ */
+#define WMI_DEBUG_LOG_PARAM_VDEV_ENABLE_BITMAP 0x4
+
+/**
+ * set a given log level to all the modules specified in the module bitmap.
+ * and set the log levle for all other modules to DBGLOG_ERR.
+ * value: log levelt to be set.
+ * module_id_bitmap : identifies the modules for which the log level should be set and
+ * modules for which the log level should be reset to DBGLOG_ERR.
+ */
+#define WMI_DEBUG_LOG_PARAM_MOD_ENABLE_BITMAP 0x5
+
+#define NUM_MODULES_PER_ENTRY ((sizeof(A_UINT32)) << 3)
+
+#define WMI_MODULE_ENABLE(pmid_bitmap,mod_id) \
+ ( (pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] |= \
+ (1 << ((mod_id)%NUM_MODULES_PER_ENTRY)) )
+
+#define WMI_MODULE_DISABLE(pmid_bitmap,mod_id) \
+ ( (pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] &= \
+ ( ~(1 << ((mod_id)%NUM_MODULES_PER_ENTRY)) ) )
+
+#define WMI_MODULE_IS_ENABLED(pmid_bitmap,mod_id) \
+ ( ((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY ] & \
+ (1 << ((mod_id)%NUM_MODULES_PER_ENTRY)) ) != 0)
+
+#define MAX_MODULE_ID_BITMAP_WORDS 16 /* 16*32=512 module ids. should be more than sufficient */
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param */
+ A_UINT32 dbg_log_param; /** param types are defined above */
+ A_UINT32 value;
+ /* The below array will follow this tlv ->fixed length module_id_bitmap[]
+ A_UINT32 module_id_bitmap[MAX_MODULE_ID_BITMAP_WORDS];
+ */
+} wmi_debug_log_config_cmd_fixed_param;
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 45b7470e5def..5fe292d8e3f2 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/wmi_version.h
@@ -37,7 +37,7 @@
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */
-#define __WMI_REVISION_ 57
+#define __WMI_REVISION_ 58
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index e7ed64cd0280..7086de41231d 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -7316,8 +7316,9 @@ VOS_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
buf_ptr += WMI_TLV_HDR_SIZE;
roam_offload_11r =
(wmi_roam_11r_offload_tlv_param *) buf_ptr;
- roam_offload_11r->r0kh_id = roam_req->R0KH_ID;
roam_offload_11r->r0kh_id_len = roam_req->R0KH_ID_Length;
+ vos_mem_copy (roam_offload_11r->r0kh_id, roam_req->R0KH_ID,
+ roam_offload_11r->r0kh_id_len);
vos_mem_copy (roam_offload_11r->psk_msk, roam_req->PSK_PMK,
sizeof(roam_req->PSK_PMK));
roam_offload_11r->mdie_present = roam_req->MDID.mdiePresent;
@@ -8403,11 +8404,15 @@ VOS_STATUS wma_process_roam_scan_req(tp_wma_handle wma_handle,
#ifdef FEATURE_WLAN_LPHB
/* function : wma_lphb_conf_hbenable
* Description : handles the enable command of LPHB configuration requests
- * Args :
+ * Args : wma_handle - WMA handle
+ * lphb_conf_req - configuration info
+ * by_user - whether this call is from user or cached resent
* Returns :
*/
VOS_STATUS wma_lphb_conf_hbenable(tp_wma_handle wma_handle,
- tSirLPHBReq *lphb_conf_req)
+ tSirLPHBReq *lphb_conf_req,
+ v_BOOL_t by_user)
+
{
VOS_STATUS vos_status = VOS_STATUS_SUCCESS;
int status = 0;
@@ -8416,6 +8421,7 @@ VOS_STATUS wma_lphb_conf_hbenable(tp_wma_handle wma_handle,
u_int8_t *buf_ptr;
wmi_hb_set_enable_cmd_fixed_param *hb_enable_fp;
int len = sizeof(wmi_hb_set_enable_cmd_fixed_param);
+ int i;
if (lphb_conf_req == NULL)
{
@@ -8430,6 +8436,13 @@ VOS_STATUS wma_lphb_conf_hbenable(tp_wma_handle wma_handle,
ts_lphb_enable->item,
ts_lphb_enable->session);
+ if ((ts_lphb_enable->item != 1) && (ts_lphb_enable->item != 2)) {
+ WMA_LOGE("%s : LPHB configuration wrong item %d",
+ __func__,
+ ts_lphb_enable->item);
+ return VOS_STATUS_E_FAILURE;
+ }
+
buf = wmi_buf_alloc(wma_handle->wmi_handle, len);
if (!buf) {
WMA_LOGE("%s : wmi_buf_alloc failed", __func__);
@@ -8458,6 +8471,29 @@ VOS_STATUS wma_lphb_conf_hbenable(tp_wma_handle wma_handle,
goto error;
}
+ if (by_user) {
+ /* target already configured, now cache command status */
+ if (ts_lphb_enable->enable) {
+ i = ts_lphb_enable->item-1;
+ wma_handle->wow.lphb_cache[i].cmd
+ = LPHB_SET_EN_PARAMS_INDID;
+ wma_handle->wow.lphb_cache[i].params.lphbEnableReq.enable
+ = ts_lphb_enable->enable;
+ wma_handle->wow.lphb_cache[i].params.lphbEnableReq.item
+ = ts_lphb_enable->item;
+ wma_handle->wow.lphb_cache[i].params.lphbEnableReq.session
+ = ts_lphb_enable->session;
+
+ WMA_LOGI("%s: cached LPHB status in WMA context for item %d",
+ __func__, i);
+ } else {
+ vos_mem_zero((void *)&wma_handle->wow.lphb_cache,
+ sizeof(wma_handle->wow.lphb_cache));
+ WMA_LOGI("%s: cleared all cached LPHB status in WMA context",
+ __func__);
+ }
+ }
+
return VOS_STATUS_SUCCESS;
error:
return vos_status;
@@ -8778,7 +8814,7 @@ VOS_STATUS wma_process_lphb_conf_req(tp_wma_handle wma_handle,
switch (lphb_conf_req->cmd) {
case LPHB_SET_EN_PARAMS_INDID:
vos_status = wma_lphb_conf_hbenable(wma_handle,
- lphb_conf_req);
+ lphb_conf_req, TRUE);
break;
case LPHB_SET_TCP_PARAMS_INDID:
@@ -13117,8 +13153,12 @@ static void wma_add_sta(tp_wma_handle wma, tpAddStaParams add_sta)
oper_mode = BSS_OPERATIONAL_MODE_AP;
}
#ifdef QCA_IBSS_SUPPORT
- else if (wma_is_vdev_in_ibss_mode(wma, add_sta->smesessionId))
+ else if (wma_is_vdev_in_ibss_mode(wma, add_sta->smesessionId)) {
oper_mode = BSS_OPERATIONAL_MODE_IBSS;
+#ifdef FEATURE_WLAN_D0WOW
+ wma_add_pm_vote(wma);
+#endif
+ }
#endif
switch (oper_mode) {
@@ -13774,8 +13814,11 @@ static void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta)
#ifdef QCA_IBSS_SUPPORT
if (wma_is_vdev_in_ibss_mode(wma, del_sta->smesessionId)) {
oper_mode = BSS_OPERATIONAL_MODE_IBSS;
+#ifdef FEATURE_WLAN_D0WOW
+ wma_del_pm_vote(wma);
+#endif
WMA_LOGD("%s: to delete sta for IBSS mode", __func__);
- }
+ }
#endif
switch (oper_mode) {
@@ -15930,6 +15973,8 @@ static const u8 *wma_wow_wake_reason_str(A_INT32 wake_reason)
case WOW_REASON_RA_MATCH:
return "WOW_REASON_RA_MATCH";
#endif
+ case WOW_REASON_BEACON_RECV:
+ return "WOW_REASON_IBSS_BEACON_RECV";
#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
case WOW_REASON_HOST_AUTO_SHUTDOWN:
return "WOW_REASON_HOST_AUTO_SHUTDOWN";
@@ -16926,6 +16971,9 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
u_int8_t vdev_id;
u_int8_t enable_ptrn_match = 0;
v_BOOL_t ap_vdev_available = FALSE;
+#ifdef QCA_IBSS_SUPPORT
+ v_BOOL_t ibss_vdev_available = FALSE;
+#endif
/* Gather list of free ptrn id. This is needed while configuring
* default wow patterns.
@@ -16951,6 +16999,11 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
)
ap_vdev_available = TRUE;
+#ifdef QCA_IBSS_SUPPORT
+ if (wma_is_vdev_in_ibss_mode(wma, vdev_id))
+ ibss_vdev_available = TRUE;
+#endif
+
if (wma_is_wow_prtn_cached(wma, vdev_id)) {
/* Configure wow patterns provided by the user */
ret = wma_wow_usr(wma, vdev_id, &enable_ptrn_match);
@@ -17139,6 +17192,20 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
} else
WMA_LOGE("Configure auto shutdown WOW event to FW: success");
#endif
+
+#ifdef QCA_IBSS_SUPPORT
+ /* Configure beacon based wakeup */
+ ret = wma_add_wow_wakeup_event(wma,
+ WOW_BEACON_EVENT,ibss_vdev_available);
+ if (ret != VOS_STATUS_SUCCESS) {
+ WMA_LOGE("Failed to configure IBSS Beacon based wakeup");
+ goto end;
+ } else {
+ WMA_LOGD("IBSS Beacon based wakeup is %s in fw",
+ ibss_vdev_available ? "enabled" : "disabled");
+ }
+#endif
+
/* WOW is enabled in pcie suspend callback */
wma->wow.wow_enable = TRUE;
wma->wow.wow_enable_cmd_sent = FALSE;
@@ -17373,6 +17440,23 @@ enable_wow:
* At this point, suspend indication is received on
* last vdev. It's the time to enable wow in fw.
*/
+#ifdef FEATURE_WLAN_LPHB
+ /* LPHB cache, if any item was enabled, should be
+ * applied.
+ */
+ WMA_LOGD("%s: checking LPHB cache", __func__);
+ for (i = 0; i < 2; i++) {
+ if (wma->wow.lphb_cache[i].params.lphbEnableReq.enable) {
+ WMA_LOGD("%s: LPHB cache for item %d is marked as enable",
+ __func__, i + 1);
+ wma_lphb_conf_hbenable(
+ wma,
+ &(wma->wow.lphb_cache[i]),
+ FALSE);
+ }
+ }
+#endif
+
ret = wma_feed_wow_config_to_fw(wma, pno_in_progress);
if (ret != VOS_STATUS_SUCCESS) {
vos_mem_free(info);
@@ -19483,7 +19567,6 @@ VOS_STATUS wma_process_init_thermal_info(tp_wma_handle wma,
VOS_STATUS wma_process_set_thermal_level(tp_wma_handle wma,
u_int8_t *pThermalLevel)
{
- t_thermal_cmd_params thermal_params;
u_int8_t thermal_level;
ol_txrx_pdev_handle curr_pdev;
@@ -19501,7 +19584,7 @@ VOS_STATUS wma_process_set_thermal_level(tp_wma_handle wma,
return VOS_STATUS_E_FAILURE;
}
- WMA_LOGD("TM set level %d", thermal_level);
+ WMA_LOGE("TM set level %d", thermal_level);
/* Check if thermal mitigation is enabled */
if (!wma->thermal_mgmt_info.thermalMgmtEnabled) {
@@ -19524,20 +19607,6 @@ VOS_STATUS wma_process_set_thermal_level(tp_wma_handle wma,
ol_tx_throttle_set_level(curr_pdev, thermal_level);
- /*set the thermal level in the firmware*/
- /* Get the temperature thresholds to set in firmware */
- thermal_params.minTemp =
- wma->thermal_mgmt_info.thermalLevels[thermal_level].minTempThreshold;
- thermal_params.maxTemp =
- wma->thermal_mgmt_info.thermalLevels[thermal_level].maxTempThreshold;
- thermal_params.thermalEnable =
- wma->thermal_mgmt_info.thermalMgmtEnabled;
-
- if (VOS_STATUS_SUCCESS != wma_set_thermal_mgmt(wma, thermal_params)) {
- WMA_LOGE("Could not send thermal mgmt command to the firmware!");
- return VOS_STATUS_E_FAILURE;
- }
-
return VOS_STATUS_SUCCESS;
}
@@ -22037,14 +22106,18 @@ static int wma_mcc_vdev_tx_pause_evt_handler(void *handle, u_int8_t *event,
/* UNPAUSE action, clean bitmap */
else if (ACTION_UNPAUSE == wmi_event->action)
{
- wma->interfaces[vdev_id].pause_bitmap &= ~(1 << wmi_event->pause_type);
-
- if (!wma->interfaces[vdev_id].pause_bitmap)
+ /* Handle unpause only if already paused*/
+ if(wma->interfaces[vdev_id].pause_bitmap)
{
- /* PAUSE BIT MAP is cleared
- * UNPAUSE VDEV */
- wdi_in_vdev_unpause(wma->interfaces[vdev_id].handle,
- OL_TXQ_PAUSE_REASON_FW);
+ wma->interfaces[vdev_id].pause_bitmap &= ~(1 << wmi_event->pause_type);
+
+ if (!wma->interfaces[vdev_id].pause_bitmap)
+ {
+ /* PAUSE BIT MAP is cleared
+ * UNPAUSE VDEV */
+ wdi_in_vdev_unpause(wma->interfaces[vdev_id].handle,
+ OL_TXQ_PAUSE_REASON_FW);
+ }
}
}
else
@@ -24199,7 +24272,9 @@ VOS_STATUS WDA_TxPacket(void *wma_context, void *tx_frame, u_int16_t frmLen,
if (wma_handle->roam_preauth_scan_state == WMA_ROAM_PREAUTH_ON_CHAN) {
chanfreq = wma_handle->roam_preauth_chanfreq;
WMA_LOGI("%s: Preauth frame on channel %d", __func__, chanfreq);
- } else {
+ } else if(pFc->subType == SIR_MAC_MGMT_PROBE_RSP){
+ chanfreq = wma_handle->interfaces[vdev_id].mhz;
+ } else {
chanfreq = 0;
}
if (pMac->fEnableDebugLog & 0x1) {
diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h
index 2846e03f99f0..9b82dc6d21c5 100644
--- a/CORE/SERVICES/WMA/wma.h
+++ b/CORE/SERVICES/WMA/wma.h
@@ -431,6 +431,12 @@ struct wma_wow {
v_BOOL_t bmiss_enable;
v_BOOL_t gtk_pdev_enable;
v_BOOL_t gtk_err_enable[WMA_MAX_SUPPORTED_BSS];
+#ifdef FEATURE_WLAN_LPHB
+ /* currently supports only vdev 0.
+ * cache has two entries: one for TCP and one for UDP.
+ */
+ tSirLPHBReq lphb_cache[2];
+#endif
};
#ifdef WLAN_FEATURE_11W
#define CMAC_IPN_LEN (6)
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index eac4e1f3b818..01efc56769ba 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -39,7 +39,7 @@
#include "vos_status.h"
#include "vos_lock.h"
-#include "palTimer.h"
+#include "vos_timer.h"
#include "csrSupport.h"
#include "vos_nvitem.h"
#include "wlan_qct_tl.h"
@@ -716,7 +716,6 @@ typedef struct tagCsrScanStruct
vos_timer_t hTimerIdleScan;
vos_timer_t hTimerResultAging;
vos_timer_t hTimerResultCfgAging;
- tPalTimerHandle hTimerBgScan;
//changes on every scan, it is used as a flag for whether 11d info is found on every scan
tANI_U8 channelOf11dInfo;
tANI_U8 scanResultCfgAgingTime;
diff --git a/CORE/SME/inc/oemDataInternal.h b/CORE/SME/inc/oemDataInternal.h
index e914562fb1b1..99742f127ee0 100644
--- a/CORE/SME/inc/oemDataInternal.h
+++ b/CORE/SME/inc/oemDataInternal.h
@@ -40,7 +40,6 @@
#ifndef __OEM_DATA_INTERNAL_H__
#define __OEM_DATA_INTERNAL_H__
-#include "palTimer.h"
#include "csrSupport.h"
#include "vos_nvitem.h"
#include "wlan_qct_tl.h"
diff --git a/CORE/SME/inc/p2p_Api.h b/CORE/SME/inc/p2p_Api.h
index 37cfbc0e4f26..4a04c84997fa 100644
--- a/CORE/SME/inc/p2p_Api.h
+++ b/CORE/SME/inc/p2p_Api.h
@@ -40,7 +40,7 @@
#include "vos_types.h"
#include "halTypes.h"
-#include "palTimer.h"
+#include "vos_timer.h"
#include "vos_lock.h"
typedef struct sP2pPsConfig{
diff --git a/CORE/SME/inc/pmc.h b/CORE/SME/inc/pmc.h
index 2d9b151fdf73..ff618b4c33f9 100644
--- a/CORE/SME/inc/pmc.h
+++ b/CORE/SME/inc/pmc.h
@@ -39,7 +39,6 @@
#define __PMC_H__
-#include "palTimer.h"
#include "csrLinkList.h"
#include "pmcApi.h"
#include "smeInternal.h"
diff --git a/CORE/SME/inc/smeInternal.h b/CORE/SME/inc/smeInternal.h
index ce9772d8755d..2cb7a14d9d3b 100644
--- a/CORE/SME/inc/smeInternal.h
+++ b/CORE/SME/inc/smeInternal.h
@@ -143,7 +143,7 @@ typedef struct tagSmeStruct
void *pTxPerHitCbContext;
tVOS_CON_MODE currDeviceMode;
#ifdef FEATURE_WLAN_LPHB
- void (*pLphbIndCb) (void *pAdapter, void *indParam);
+ void (*pLphbIndCb) (void *pHddCtx, tSirLPHBInd *indParam);
#endif /* FEATURE_WLAN_LPHB */
//pending scan command list
tDblLinkList smeScanCmdPendingList;
diff --git a/CORE/SME/inc/smeRrmInternal.h b/CORE/SME/inc/smeRrmInternal.h
index e0a1e0fa00f0..20a90e40e38b 100644
--- a/CORE/SME/inc/smeRrmInternal.h
+++ b/CORE/SME/inc/smeRrmInternal.h
@@ -46,7 +46,6 @@
#include "vos_trace.h"
#include "vos_memory.h"
#include "vos_types.h"
-#include "palTimer.h"
#include "rrmGlobal.h"
/*--------------------------------------------------------------------------
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index 44bafb79eed6..46568b4b8607 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -3436,7 +3436,7 @@ VOS_STATUS sme_isSta_p2p_clientConnected(tHalHandle hHal);
eHalStatus sme_LPHBConfigReq(
tHalHandle hHal,
tSirLPHBReq *lphdReq,
- void (*pCallbackfn)(void *pAdapter, void *indParam));
+ void (*pCallbackfn)(void *pHddCtx, tSirLPHBInd *indParam));
#endif /* FEATURE_WLAN_LPHB */
/* ---------------------------------------------------------------------------
diff --git a/CORE/SME/inc/sme_FTApi.h b/CORE/SME/inc/sme_FTApi.h
index 759a629143cd..b963843db6a3 100644
--- a/CORE/SME/inc/sme_FTApi.h
+++ b/CORE/SME/inc/sme_FTApi.h
@@ -30,7 +30,6 @@
#define __SME_FTAPI_H
#include <limFTDefs.h>
-#include <palTimer.h>
/**=========================================================================
@@ -83,7 +82,7 @@ typedef struct sFTSMEContext
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
tANI_U32 r0kh_id_len;
- tANI_U32 r0kh_id;
+ tANI_U8 r0kh_id[SIR_ROAM_R0KH_ID_MAX_LEN];
#endif
/* User context for the timer callback */
diff --git a/CORE/SME/src/QoS/sme_Qos.c b/CORE/SME/src/QoS/sme_Qos.c
index d629876f3b72..4cefb9cd061d 100644
--- a/CORE/SME/src/QoS/sme_Qos.c
+++ b/CORE/SME/src/QoS/sme_Qos.c
@@ -3221,7 +3221,7 @@ eHalStatus sme_QosESEProcessReassocTspecRsp(tpAniSirGlobal pMac, v_U8_t sessionI
tspecIeLen = pCsrConnectedInfo->nTspecIeLength;
if (tspecIeLen < sizeof(tDot11fIEWMMTSPEC)) {
VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("ESE Tspec IE len %d less than min %d"),
+ FL("ESE Tspec IE len %d less than min %zu"),
tspecIeLen, sizeof(tDot11fIEWMMTSPEC));
return eHAL_STATUS_FAILURE;
}
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 0ba5537dae84..e4fb1dde1643 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -69,8 +69,8 @@
#endif /* FEATURE_WLAN_ESE && !FEATURE_WLAN_ESE_UPLOAD */
#define CSR_NUM_IBSS_START_CHANNELS_50 4
#define CSR_NUM_IBSS_START_CHANNELS_24 3
-#define CSR_WAIT_FOR_KEY_TIMEOUT_PERIOD ( 5 * PAL_TIMER_TO_SEC_UNIT ) // 5 seconds, for WPA, WPA2, CCKM
-#define CSR_WAIT_FOR_WPS_KEY_TIMEOUT_PERIOD ( 120 * PAL_TIMER_TO_SEC_UNIT ) // 120 seconds, for WPS
+#define CSR_WAIT_FOR_KEY_TIMEOUT_PERIOD ( 5 * VOS_TIMER_TO_SEC_UNIT ) // 5 seconds, for WPA, WPA2, CCKM
+#define CSR_WAIT_FOR_WPS_KEY_TIMEOUT_PERIOD ( 120 * VOS_TIMER_TO_SEC_UNIT ) // 120 seconds, for WPS
/*---------------------------------------------------------------------------
OBIWAN recommends [8 10]% : pick 9%
---------------------------------------------------------------------------*/
@@ -1708,7 +1708,9 @@ eHalStatus csrChangeDefaultConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pPa
if (pParam->impsSleepTime)
{
//Change the unit from second to microsecond
- tANI_U32 impsSleepTime = pParam->impsSleepTime * PAL_TIMER_TO_SEC_UNIT;
+ tANI_U32 impsSleepTime =
+ pParam->impsSleepTime * VOS_TIMER_TO_SEC_UNIT;
+
if(CSR_IDLE_SCAN_NO_PS_INTERVAL_MIN <= impsSleepTime)
{
pMac->roam.configParam.impsSleepTime = impsSleepTime;
@@ -1925,7 +1927,8 @@ eHalStatus csrGetConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
pParam->nNumP2PChanCombinedConc = pMac->roam.configParam.nNumP2PChanCombinedConc;
#endif
//Change the unit from microsecond to second
- pParam->impsSleepTime = pMac->roam.configParam.impsSleepTime / PAL_TIMER_TO_SEC_UNIT;
+ pParam->impsSleepTime =
+ pMac->roam.configParam.impsSleepTime / VOS_TIMER_TO_SEC_UNIT;
pParam->eBand = pMac->roam.configParam.eBand;
pParam->nScanResultAgeCount = pMac->roam.configParam.agingCount;
pParam->scanAgeTimeNCNPS = pMac->roam.configParam.scanAgeTimeNCNPS;
@@ -10667,7 +10670,8 @@ tANI_BOOLEAN csrRoamCompleteRoaming(tpAniSirGlobal pMac, tANI_U32 sessionId,
else
{
pSession->roamResult = roamResult;
- if(!HAL_STATUS_SUCCESS(csrRoamStartRoamingTimer(pMac, sessionId, PAL_TIMER_TO_SEC_UNIT)))
+ if(!HAL_STATUS_SUCCESS(csrRoamStartRoamingTimer(pMac, sessionId,
+ VOS_TIMER_TO_SEC_UNIT)))
{
csrCallRoamingCompletionCallback(pMac, pSession, NULL, 0, roamResult);
pSession->roamingReason = eCsrNotRoaming;
@@ -10747,7 +10751,8 @@ eHalStatus csrRoamStartRoamingTimer(tpAniSirGlobal pMac, tANI_U32 sessionId, tAN
smsLog(pMac, LOG1, " csrScanStartRoamingTimer");
pSession->roamingTimerInfo.sessionId = (tANI_U8)sessionId;
- status = vos_timer_start(&pSession->hTimerRoaming, interval/PAL_TIMER_TO_MS_UNIT);
+ status = vos_timer_start(&pSession->hTimerRoaming,
+ interval/VOS_TIMER_TO_MS_UNIT);
return (status);
}
@@ -10844,7 +10849,8 @@ eHalStatus csrRoamStartWaitForKeyTimer(tpAniSirGlobal pMac, tANI_U32 interval)
}
#endif
smsLog(pMac, LOG1, " csrScanStartWaitForKeyTimer");
- status = vos_timer_start(&pMac->roam.hTimerWaitForKey, interval/PAL_TIMER_TO_MS_UNIT);
+ status = vos_timer_start(&pMac->roam.hTimerWaitForKey,
+ interval/VOS_TIMER_TO_MS_UNIT);
return (status);
}
@@ -16298,7 +16304,8 @@ void csrRoamOffload(tpAniSirGlobal pMac, tSirRoamOffloadScanReq *pRequestBuf,
{
vos_mem_copy(pRequestBuf->PSK_PMK, pSession->psk_pmk, sizeof(pRequestBuf->PSK_PMK));
pRequestBuf->R0KH_ID_Length = pSession->ftSmeContext.r0kh_id_len;
- pRequestBuf->R0KH_ID = pSession->ftSmeContext.r0kh_id;
+ vos_mem_copy(pRequestBuf->R0KH_ID, pSession->ftSmeContext.r0kh_id,
+ pRequestBuf->R0KH_ID_Length);
pRequestBuf->Prefer5GHz = pMac->roam.configParam.nRoamPrefer5GHz;
pRequestBuf->RoamRssiCatGap = pMac->roam.configParam.bCatRssiOffset;
pRequestBuf->Select5GHzMargin = pMac->roam.configParam.nSelect5GHzMargin;
@@ -17780,7 +17787,7 @@ eHalStatus csrRoamStartJoinRetryTimer(tpAniSirGlobal pMac, tANI_U32 sessionId,
pSession->joinRetryTimerInfo.sessionId = (tANI_U8)sessionId;
status =
vos_timer_start(&pSession->hTimerJoinRetry,
- interval/PAL_TIMER_TO_MS_UNIT);
+ interval/VOS_TIMER_TO_MS_UNIT);
if (!HAL_STATUS_SUCCESS(status))
{
smsLog(pMac, LOGE, FL(" fail to start timer status %s"), status);
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 0627330f3151..ad3782b91acc 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -6492,7 +6492,7 @@ eHalStatus csrScanStartGetResultTimer(tpAniSirGlobal pMac)
if(pMac->scan.fScanEnable)
{
- status = vos_timer_start(&pMac->scan.hTimerGetResult, CSR_SCAN_GET_RESULT_INTERVAL/PAL_TIMER_TO_MS_UNIT);
+ status = vos_timer_start(&pMac->scan.hTimerGetResult, CSR_SCAN_GET_RESULT_INTERVAL/VOS_TIMER_TO_MS_UNIT);
}
else
{
@@ -6515,7 +6515,7 @@ void csrScanGetResultTimerHandler(void *pv)
csrScanRequestResult(pMac);
- vos_timer_start(&pMac->scan.hTimerGetResult, CSR_SCAN_GET_RESULT_INTERVAL/PAL_TIMER_TO_MS_UNIT);
+ vos_timer_start(&pMac->scan.hTimerGetResult, CSR_SCAN_GET_RESULT_INTERVAL/VOS_TIMER_TO_MS_UNIT);
}
#ifdef WLAN_AP_STA_CONCURRENCY
@@ -6665,7 +6665,7 @@ eHalStatus csrScanStartResultAgingTimer(tpAniSirGlobal pMac)
if(pMac->scan.fScanEnable)
{
- status = vos_timer_start(&pMac->scan.hTimerResultAging, CSR_SCAN_RESULT_AGING_INTERVAL/PAL_TIMER_TO_MS_UNIT);
+ status = vos_timer_start(&pMac->scan.hTimerResultAging, CSR_SCAN_RESULT_AGING_INTERVAL/VOS_TIMER_TO_MS_UNIT);
}
return (status);
}
@@ -6676,7 +6676,7 @@ eHalStatus csrScanStartResultCfgAgingTimer(tpAniSirGlobal pMac)
if(pMac->scan.fScanEnable)
{
- status = vos_timer_start(&pMac->scan.hTimerResultCfgAging, CSR_SCAN_RESULT_CFG_AGING_INTERVAL/PAL_TIMER_TO_MS_UNIT);
+ status = vos_timer_start(&pMac->scan.hTimerResultCfgAging, CSR_SCAN_RESULT_CFG_AGING_INTERVAL/VOS_TIMER_TO_MS_UNIT);
}
return (status);
}
@@ -6787,7 +6787,7 @@ void csrScanResultAgingTimerHandler(void *pv)
}
csrLLUnlock(&pMac->scan.scanResultList);
}
- vos_timer_start(&pMac->scan.hTimerResultAging, CSR_SCAN_RESULT_AGING_INTERVAL/PAL_TIMER_TO_MS_UNIT);
+ vos_timer_start(&pMac->scan.hTimerResultAging, CSR_SCAN_RESULT_AGING_INTERVAL/VOS_TIMER_TO_MS_UNIT);
}
static void csrScanResultCfgAgingTimerHandler(void *pv)
@@ -6812,7 +6812,7 @@ static void csrScanResultCfgAgingTimerHandler(void *pv)
pEntry = tmpEntry;
}
csrLLUnlock(&pMac->scan.scanResultList);
- vos_timer_start(&pMac->scan.hTimerResultCfgAging, CSR_SCAN_RESULT_CFG_AGING_INTERVAL/PAL_TIMER_TO_MS_UNIT);
+ vos_timer_start(&pMac->scan.hTimerResultCfgAging, CSR_SCAN_RESULT_CFG_AGING_INTERVAL/VOS_TIMER_TO_MS_UNIT);
}
eHalStatus csrScanStartIdleScanTimer(tpAniSirGlobal pMac, tANI_U32 interval)
@@ -6824,7 +6824,7 @@ eHalStatus csrScanStartIdleScanTimer(tpAniSirGlobal pMac, tANI_U32 interval)
{
pMac->scan.nIdleScanTimeGap += interval;
vos_timer_stop(&pMac->scan.hTimerIdleScan);
- status = vos_timer_start(&pMac->scan.hTimerIdleScan, interval/PAL_TIMER_TO_MS_UNIT);
+ status = vos_timer_start(&pMac->scan.hTimerIdleScan, interval/VOS_TIMER_TO_MS_UNIT);
if( !HAL_STATUS_SUCCESS(status) )
{
smsLog(pMac, LOGE, " Fail to start Idle scan timer. status = %d interval = %d", status, interval);
@@ -6963,7 +6963,9 @@ eHalStatus csrScanTriggerIdleScan(tpAniSirGlobal pMac, tANI_U32 *pTimeInterval)
*pTimeInterval = pMac->roam.configParam.impsSleepTime;
}
//pmcRequestImps take a period in millisecond unit.
- status = pmcRequestImps(pMac, pMac->roam.configParam.impsSleepTime / PAL_TIMER_TO_MS_UNIT, csrScanIMPSCallback, pMac);
+ status = pmcRequestImps(pMac,
+ pMac->roam.configParam.impsSleepTime / VOS_TIMER_TO_MS_UNIT,
+ csrScanIMPSCallback, pMac);
if(!HAL_STATUS_SUCCESS(status))
{
if(eHAL_STATUS_PMC_ALREADY_IN_IMPS != status)
diff --git a/CORE/SME/src/csr/csrInsideApi.h b/CORE/SME/src/csr/csrInsideApi.h
index 585f9da694be..ef3c2557f9ae 100644
--- a/CORE/SME/src/csr/csrInsideApi.h
+++ b/CORE/SME/src/csr/csrInsideApi.h
@@ -75,16 +75,16 @@
#define CSR_AGING_COUNT 3
//The following defines are used by palTimer
//This is used for palTimer when request to imps fails
-#define CSR_IDLE_SCAN_WAIT_TIME (1 * PAL_TIMER_TO_SEC_UNIT) //1 second
+#define CSR_IDLE_SCAN_WAIT_TIME (1 * VOS_TIMER_TO_SEC_UNIT) //1 second
//This is used for palTimer when imps ps is disabled
//This number shall not be smaller than 5-6 seconds in general because a full scan may take 3-4 seconds
-#define CSR_IDLE_SCAN_NO_PS_INTERVAL (10 * PAL_TIMER_TO_SEC_UNIT) //10 second
-#define CSR_IDLE_SCAN_NO_PS_INTERVAL_MIN (5 * PAL_TIMER_TO_SEC_UNIT)
-#define CSR_SCAN_GET_RESULT_INTERVAL (5 * PAL_TIMER_TO_SEC_UNIT) //5 seconds
-#define CSR_MIC_ERROR_TIMEOUT (60 * PAL_TIMER_TO_SEC_UNIT) //60 seconds
-#define CSR_TKIP_COUNTER_MEASURE_TIMEOUT (60 * PAL_TIMER_TO_SEC_UNIT) //60 seconds
-#define CSR_SCAN_RESULT_AGING_INTERVAL (5 * PAL_TIMER_TO_SEC_UNIT) //5 seconds
-#define CSR_SCAN_RESULT_CFG_AGING_INTERVAL (PAL_TIMER_TO_SEC_UNIT) // 1 second
+#define CSR_IDLE_SCAN_NO_PS_INTERVAL (10 * VOS_TIMER_TO_SEC_UNIT) //10 second
+#define CSR_IDLE_SCAN_NO_PS_INTERVAL_MIN (5 * VOS_TIMER_TO_SEC_UNIT)
+#define CSR_SCAN_GET_RESULT_INTERVAL (5 * VOS_TIMER_TO_SEC_UNIT) //5 seconds
+#define CSR_MIC_ERROR_TIMEOUT (60 * VOS_TIMER_TO_SEC_UNIT) //60 seconds
+#define CSR_TKIP_COUNTER_MEASURE_TIMEOUT (60 * VOS_TIMER_TO_SEC_UNIT) //60 seconds
+#define CSR_SCAN_RESULT_AGING_INTERVAL (5 * VOS_TIMER_TO_SEC_UNIT) //5 seconds
+#define CSR_SCAN_RESULT_CFG_AGING_INTERVAL (VOS_TIMER_TO_SEC_UNIT) // 1 second
//the following defines are NOT used by palTimer
#define CSR_SCAN_AGING_TIME_NOT_CONNECT_NO_PS 50 //50 seconds
#define CSR_SCAN_AGING_TIME_NOT_CONNECT_W_PS 300 //300 seconds
@@ -108,7 +108,7 @@
#ifdef FEATURE_WLAN_BTAMP_UT_RF
#define CSR_JOIN_MAX_RETRY_COUNT 10
-#define CSR_JOIN_RETRY_TIMEOUT_PERIOD ( 1 * PAL_TIMER_TO_SEC_UNIT ) // 1 second
+#define CSR_JOIN_RETRY_TIMEOUT_PERIOD ( 1 * VOS_TIMER_TO_SEC_UNIT ) // 1 second
#endif
#define CSR_ROAMING_DFS_CHANNEL_DISABLED (0)
diff --git a/CORE/SME/src/csr/csrNeighborRoam.c b/CORE/SME/src/csr/csrNeighborRoam.c
index f750529a551b..2af386a039bb 100644
--- a/CORE/SME/src/csr/csrNeighborRoam.c
+++ b/CORE/SME/src/csr/csrNeighborRoam.c
@@ -2406,7 +2406,7 @@ static VOS_STATUS csrNeighborRoamHandleEmptyScanResult(tpAniSirGlobal pMac,
else
{
smsLog(pMac, LOG2, FL("Neighbor results refresh timer started (%d ms)"),
- (pNeighborRoamInfo->cfgParams.neighborResultsRefreshPeriod * PAL_TIMER_TO_MS_UNIT));
+ (pNeighborRoamInfo->cfgParams.neighborResultsRefreshPeriod * VOS_TIMER_TO_MS_UNIT));
}
}
}
@@ -3767,8 +3767,6 @@ void csrNeighborRoamRRMNeighborReportResult(void *context, VOS_STATUS vosStatus)
pNeighborRoamInfo->scanRequestTimeStamp = (tANI_TIMESTAMP)palGetTickCount(pMac->hHdd);
/* Now ready for neighbor scan based on the channel list created */
- /* Start Neighbor scan timer now. Multiplication by PAL_TIMER_TO_MS_UNIT is to convert ms to us which is
- what palTimerStart expects */
status = vos_timer_start(&pNeighborRoamInfo->neighborScanTimer,
pNeighborRoamInfo->cfgParams.neighborScanPeriod);
if (eHAL_STATUS_SUCCESS != status)
@@ -4316,8 +4314,6 @@ VOS_STATUS csrNeighborRoamTransitToCFGChanScan(tpAniSirGlobal pMac,
pNeighborRoamInfo->scanRequestTimeStamp = (tANI_TIMESTAMP)palGetTickCount(pMac->hHdd);
vos_timer_stop(&pNeighborRoamInfo->neighborScanTimer);
- /* Start Neighbor scan timer now. Multiplication by PAL_TIMER_TO_MS_UNIT is to convert ms to us which is
- what palTimerStart expects */
status = vos_timer_start(&pNeighborRoamInfo->neighborScanTimer,
pNeighborRoamInfo->cfgParams.neighborScanPeriod);
diff --git a/CORE/SME/src/pmc/pmcApi.c b/CORE/SME/src/pmc/pmcApi.c
index 50bc4c9e45aa..3633b543e402 100644
--- a/CORE/SME/src/pmc/pmcApi.c
+++ b/CORE/SME/src/pmc/pmcApi.c
@@ -37,7 +37,6 @@
#include "palTypes.h"
#include "aniGlobal.h"
-#include "palTimer.h"
#include "csrLinkList.h"
#include "smsDebug.h"
#include "pmcApi.h"
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 1c6904ef0f48..44afee76178d 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -3602,7 +3602,7 @@ eHalStatus sme_RoamDeauthSta(tHalHandle hHal, tANI_U8 sessionId,
if( CSR_IS_SESSION_VALID( pMac, sessionId ) )
{
status = csrRoamIssueDeauthStaCmd( pMac, sessionId, pPeerMacAddr,
- eSIR_MAC_PREV_AUTH_NOT_VALID_REASON);
+ eSIR_MAC_DEAUTH_LEAVING_BSS_REASON);
}
else
{
@@ -11526,7 +11526,7 @@ eHalStatus sme_LPHBConfigReq
(
tHalHandle hHal,
tSirLPHBReq *lphdReq,
- void (*pCallbackfn)(void *pAdapter, void *indParam)
+ void (*pCallbackfn)(void *pHddCtx, tSirLPHBInd *indParam)
)
{
eHalStatus status = eHAL_STATUS_SUCCESS;
diff --git a/CORE/SYS/legacy/src/pal/inc/palTimer.h b/CORE/SYS/legacy/src/pal/inc/palTimer.h
deleted file mode 100644
index eee07a894a0b..000000000000
--- a/CORE/SYS/legacy/src/pal/inc/palTimer.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2011-2012 The Linux Foundation. All rights reserved.
- *
- * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
- *
- *
- * Permission to use, copy, modify, and/or distribute this software for
- * any purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * This file was originally distributed by Qualcomm Atheros, Inc.
- * under proprietary terms before Copyright ownership was assigned
- * to the Linux Foundation.
- */
-
-
-/** ------------------------------------------------------------------------- *
- ------------------------------------------------------------------------- *
-
-
- \file palTimer.h
-
- \brief Define data structure and ptototype for PAL timer.
-
- $Id$... description...
-
- ========================================================================== */
-
-#if !defined( PALTIMER_H__ )
-#define PALTIMER_H__
-
-
-/*
-PAL TIMER
- This timer can be used for every module in Windows side.
- On Linus side, this can only be used by timer for HDD. Not for timers used in rtlib, hence it doesn't replace TX_TIMER
-*/
-
-typedef void * tPalTimerHandle;
-
-#define PAL_INVALID_TIMER_HANDLE (NULL)
-
-typedef void (*palTimerCallback)(void *);
-
-#define PAL_TIMER_TO_MS_UNIT 1000
-#define PAL_TIMER_TO_SEC_UNIT 1000000
-
-#ifndef FEATURE_WLAN_PAL_TIMER_DISABLE
-//PAL timer functions
-//pPalTimer is a pointer to a caller allocated tPalTimer object
-//pContext is a pointer to an object that will be passed in when callback is called
-//fRestart to set whether the timer is restart after callback returns
-#ifdef TIMER_MANAGER
-#define palTimerAlloc(hHdd, phPalTimer, pCallback, pContext) \
- palTimerAlloc_debug(hHdd, phPalTimer, pCallback, pContext, __FILE__, __LINE__)
-eHalStatus palTimerAlloc_debug( tHddHandle hHdd, tPalTimerHandle *phPalTimer,
- palTimerCallback pCallback, void *pContext, char* fileName, v_U32_t lineNum );
-#else
-eHalStatus palTimerAlloc(tHddHandle hHdd, tPalTimerHandle *phPalTimer, palTimerCallback pCallback, void *pContext);
-#endif
-//This function will free the timer
-//On Windows platform, it can only be called when device is unloading.
-eHalStatus palTimerFree(tHddHandle, tPalTimerHandle);
-//To start a timer
-//uExpireTime is the timer lapse before timer fires. If the timer is in running state and the fRestart is true,
-//uExpireTime is set so that it is the new interval, in units of microseconds
-eHalStatus palTimerStart(tHddHandle, tPalTimerHandle, tANI_U32 uExpireTime, tANI_BOOLEAN fRestart);
-//palTimerStop will cancel the timer but doesn't guarrantee the callback will not called afterwards
-//For Windows, if the driver is halting, the callback is not called after this function returns.
-eHalStatus palTimerStop(tHddHandle, tPalTimerHandle);
-#endif
-
-#endif
diff --git a/CORE/SYS/legacy/src/pal/src/palTimer.c b/CORE/SYS/legacy/src/pal/src/palTimer.c
deleted file mode 100644
index 41ab2d862a0f..000000000000
--- a/CORE/SYS/legacy/src/pal/src/palTimer.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (c) 2011-2013 The Linux Foundation. All rights reserved.
- *
- * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
- *
- *
- * Permission to use, copy, modify, and/or distribute this software for
- * any purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * This file was originally distributed by Qualcomm Atheros, Inc.
- * under proprietary terms before Copyright ownership was assigned
- * to the Linux Foundation.
- */
-
-/**
-
- \file palTimer.c
-
- \brief Implemenation of the Platform Abstracion Layer timer functions
-
- $Id$This file contains function implementations for the Platform
- Abstration Layer.
-
- */
-
-#include <halTypes.h>
-#include <palTimer.h>
-#include <vos_timer.h>
-#include <vos_memory.h>
-
-#ifndef FEATURE_WLAN_PAL_TIMER_DISABLE
-typedef struct sPalTimer
-{
- palTimerCallback timerCallback;
- void *pContext;
- tHddHandle hHdd; // not really needed when mapping to vos timers
- tANI_U32 uTimerInterval; //meaningful only is fRestart is true
- tANI_BOOLEAN fRestart;
-
- vos_timer_t vosTimer;
-
-} tPalTimer, *tpPalTimer;
-
-v_VOID_t internalTimerCallback( v_PVOID_t userData )
-{
- tPalTimer *pPalTimer = (tPalTimer *)userData;
-
- if ( pPalTimer )
- {
- if ( pPalTimer->timerCallback )
- {
- pPalTimer->timerCallback( pPalTimer->pContext );
- }
-
- if ( pPalTimer->fRestart )
- {
- palTimerStart( pPalTimer->hHdd, pPalTimer, pPalTimer->uTimerInterval, eANI_BOOLEAN_TRUE );
- }
- }
-}
-
-#ifdef TIMER_MANAGER
-eHalStatus palTimerAlloc_debug( tHddHandle hHdd, tPalTimerHandle *phPalTimer,
- palTimerCallback pCallback, void *pContext, char* fileName, v_U32_t lineNum )
-{
- eHalStatus halStatus = eHAL_STATUS_FAILURE;
- tPalTimer *pPalTimer = NULL;
- VOS_STATUS vosStatus;
-
- do
- {
- // allocate the internal timer structure.
- pPalTimer = vos_mem_malloc( sizeof( tPalTimer ) );
- if ( NULL == pPalTimer ) break;
-
- // initialize the vos Timer that underlies the pal Timer.
- vosStatus = vos_timer_init_debug( &pPalTimer->vosTimer, VOS_TIMER_TYPE_SW,
- internalTimerCallback, pPalTimer, fileName, lineNum );
- if ( !VOS_IS_STATUS_SUCCESS( vosStatus ) )
- {
- // if fail to init the vos timer, free the memory and bail out.
- vos_mem_free( pPalTimer );
- break;
- }
-
- // initialize the info in the internal palTimer struct so we can
- pPalTimer->timerCallback = pCallback;
- pPalTimer->pContext = pContext;
- pPalTimer->hHdd = hHdd;
-
- // return a 'handle' to the caller.
- *phPalTimer = pPalTimer;
-
- halStatus = eHAL_STATUS_SUCCESS;
-
- } while( 0 );
-
- return( halStatus );
-}
-#else
-eHalStatus palTimerAlloc( tHddHandle hHdd, tPalTimerHandle *phPalTimer,
- palTimerCallback pCallback, void *pContext )
-{
- eHalStatus halStatus = eHAL_STATUS_FAILURE;
- tPalTimer *pPalTimer = NULL;
- VOS_STATUS vosStatus;
-
- do
- {
- // allocate the internal timer structure.
- pPalTimer = vos_mem_malloc( sizeof( tPalTimer ) );
- if ( NULL == pPalTimer ) break;
-
- // initialize the vos Timer that underlies the pal Timer.
- vosStatus = vos_timer_init( &pPalTimer->vosTimer, VOS_TIMER_TYPE_SW,
- internalTimerCallback, pPalTimer );
- if ( !VOS_IS_STATUS_SUCCESS( vosStatus ) )
- {
- // if fail to init the vos timer, free the memory and bail out.
- vos_mem_free( pPalTimer );
- break;
- }
-
- // initialize the info in the internal palTimer struct so we can
- pPalTimer->timerCallback = pCallback;
- pPalTimer->pContext = pContext;
- pPalTimer->hHdd = hHdd;
-
- // return a 'handle' to the caller.
- *phPalTimer = pPalTimer;
-
- halStatus = eHAL_STATUS_SUCCESS;
-
- } while( 0 );
-
- return( halStatus );
-}
-#endif
-
-
-eHalStatus palTimerFree( tHddHandle hHdd, tPalTimerHandle hPalTimer )
-{
- eHalStatus status = eHAL_STATUS_INVALID_PARAMETER;
- VOS_STATUS vosStatus;
- tPalTimer *pPalTimer = (tPalTimer *)hPalTimer;
-
- do
- {
- if ( NULL == pPalTimer ) break;
-
- // Destroy the vos timer...
- vosStatus = vos_timer_destroy( &pPalTimer->vosTimer );
- if ( !VOS_IS_STATUS_SUCCESS( vosStatus ) ) break;
-
- // Free the memory for the intrnal timer struct...
- vos_mem_free( pPalTimer );
-
- status = eHAL_STATUS_SUCCESS;
-
- } while( 0 );
-
- return( status );
-}
-
-
-eHalStatus palTimerStart(tHddHandle hHdd, tPalTimerHandle hPalTimer, tANI_U32 uExpireTime, tANI_BOOLEAN fRestart)
-{
- eHalStatus status = eHAL_STATUS_INVALID_PARAMETER;
- VOS_STATUS vosStatus;
- tANI_U32 expireTimeInMS = 0;
-
- tPalTimer *pPalTimer = (tPalTimer *)hPalTimer;
-
- do
- {
- if ( NULL == pPalTimer ) break;
-
- pPalTimer->fRestart = fRestart;
- pPalTimer->uTimerInterval = uExpireTime;
-
- // vos Timer takes expiration time in milliseconds. palTimerStart and
- // the uTimerIntervl in tPalTimer struct have expiration tiem in
- // microseconds. Make and adjustment from microseconds to milliseconds
- // before calling the vos_timer_start().
- expireTimeInMS = uExpireTime / 1000;
- vosStatus = vos_timer_start( &pPalTimer->vosTimer, expireTimeInMS );
- if ( !VOS_IS_STATUS_SUCCESS( vosStatus ) )
- {
- status = eHAL_STATUS_FAILURE;
- break;
- }
-
- status = eHAL_STATUS_SUCCESS;
-
- } while( 0 );
-
- return( status );
-}
-
-
-eHalStatus palTimerStop(tHddHandle hHdd, tPalTimerHandle hPalTimer)
-{
- eHalStatus status = eHAL_STATUS_INVALID_PARAMETER;
-
- tPalTimer *pPalTimer = (tPalTimer *)hPalTimer;
-
- do
- {
- if ( NULL == pPalTimer ) break;
-
- vos_timer_stop( &pPalTimer->vosTimer );
-
- // make sure the timer is not re-started.
- pPalTimer->fRestart = eANI_BOOLEAN_FALSE;
-
- status = eHAL_STATUS_SUCCESS;
-
- } while( 0 );
-
- return( status );
-}
-
-#endif
diff --git a/CORE/VOSS/inc/vos_timer.h b/CORE/VOSS/inc/vos_timer.h
index 98ee433f998b..96ecfd1934f9 100644
--- a/CORE/VOSS/inc/vos_timer.h
+++ b/CORE/VOSS/inc/vos_timer.h
@@ -56,6 +56,8 @@
Preprocessor definitions and constants
------------------------------------------------------------------------*/
#define VOS_TIMER_STATE_COOKIE 0x12
+#define VOS_TIMER_TO_MS_UNIT 1000
+#define VOS_TIMER_TO_SEC_UNIT 1000000
/*--------------------------------------------------------------------------
Type declarations
diff --git a/Kbuild b/Kbuild
index 1ac71a79b6bd..f7c2c0d74716 100644
--- a/Kbuild
+++ b/Kbuild
@@ -639,7 +639,6 @@ SYS_COMMON_SRC_DIR := $(SYS_DIR)/common/src
SYS_LEGACY_SRC_DIR := $(SYS_DIR)/legacy/src
SYS_OBJS := $(SYS_COMMON_SRC_DIR)/wlan_qct_sys.o \
$(SYS_LEGACY_SRC_DIR)/pal/src/palApiComm.o \
- $(SYS_LEGACY_SRC_DIR)/pal/src/palTimer.o \
$(SYS_LEGACY_SRC_DIR)/platform/src/VossWrapper.o \
$(SYS_LEGACY_SRC_DIR)/system/src/macInitApi.o \
$(SYS_LEGACY_SRC_DIR)/system/src/sysEntryFunc.o \
diff --git a/firmware_bin/WCNSS_qcom_cfg.usb.ini b/firmware_bin/WCNSS_qcom_cfg.usb.ini
index 70aa00215a57..ae9ae4886728 100644
--- a/firmware_bin/WCNSS_qcom_cfg.usb.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.usb.ini
@@ -122,7 +122,7 @@ gEnableApOBSSProt=0
#Enable/Disable UAPSD for SoftAP
-gEnableApUapsd=0
+gEnableApUapsd=1
# Fixed Rate
diff --git a/tools/fwdebuglog/nan-parser.c b/tools/fwdebuglog/nan-parser.c
index 7a4d297380b3..7def50bebec7 100644
--- a/tools/fwdebuglog/nan-parser.c
+++ b/tools/fwdebuglog/nan-parser.c
@@ -1,7 +1,28 @@
/*
- * Copyright (c) 2014 Qualcomm Atheros, Inc.
- * All Rights Reserved.
- * Qualcomm Atheros Confidential and Proprietary.
+ * Copyright (c) 2013-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.
*/
#include <stdlib.h>