summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-08-18 01:58:42 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-08-18 01:58:42 -0700
commita66451e93bb8d079bd58e621d273d7ef43ab9bdc (patch)
tree7975ae6e7a0facbabebd8a818f6d640df2038d84
parent29c6abb9dd7c54ab6f6b4ca007f3fe1f1faa768b (diff)
parent897e47b0f36a15f515693b85ae37eac74a6840c7 (diff)
Merge "Release 1.0.0.168 QCACLD WLAN Driver"
-rw-r--r--CORE/CLD_TXRX/HTT/htt_h2t.c32
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_rx_reorder.c6
-rw-r--r--CORE/EPPING/src/epping_txrx.c2
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c6
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/MAC/src/include/sirParams.h1
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c6
-rw-r--r--CORE/MAC/src/pe/lim/limSendManagementFrames.c9
-rw-r--r--CORE/SAP/src/sapModule.c3
-rw-r--r--CORE/SERVICES/BMI/ol_fw.c3
-rw-r--r--CORE/SERVICES/HIF/USB/if_usb.c12
-rw-r--r--CORE/SERVICES/HTC/htc.c4
-rw-r--r--CORE/SERVICES/WMA/regdomain_common.h1
-rw-r--r--CORE/SERVICES/WMA/wma.c45
-rw-r--r--CORE/SME/inc/sme_Api.h13
-rw-r--r--CORE/SME/src/sme_common/sme_Api.c68
-rw-r--r--CORE/SYS/legacy/src/utils/src/macTrace.c1
-rw-r--r--CORE/SYS/legacy/src/utils/src/parserApi.c6
-rwxr-xr-xfirmware_bin/WCNSS_qcom_cfg.ini3
19 files changed, 172 insertions, 53 deletions
diff --git a/CORE/CLD_TXRX/HTT/htt_h2t.c b/CORE/CLD_TXRX/HTT/htt_h2t.c
index d9d5ee573776..70c7aedadab2 100644
--- a/CORE/CLD_TXRX/HTT/htt_h2t.c
+++ b/CORE/CLD_TXRX/HTT/htt_h2t.c
@@ -231,31 +231,13 @@ htt_h2t_rx_ring_cfg_msg_ll(struct htt_pdev_t *pdev)
#ifndef REMOVE_PKT_LOG
if (ol_cfg_is_packet_log_enabled(pdev->ctrl_pdev))
{
- if (ol_cfg_is_full_reorder_offload(pdev->ctrl_pdev)) {
- /* In fw with full reorder offload, when pktlog is enabled mgmt/ctrl/
- null frames are routed to fw remote ring which are discarded with
- the error bit set. As a result they are not sent to the BA state
- machine which causes a problem.
- Disable ctrl/mgmt/null flag since frames with status
- HTT_RX_IND_MPDU_STATUS_MGMT_CTRL are always dropped by the host.
- The ppdu start and end flags are only used in monitor mode which
- is not supported on CLD.*/
- enable_ctrl_data = 0;
- enable_mgmt_data = 0;
- enable_null_data = 0;
- enable_phy_data = 1;
- enable_hdr = 1;
- enable_ppdu_start= 0;
- enable_ppdu_end = 0;
- } else {
- enable_ctrl_data = 1;
- enable_mgmt_data = 1;
- enable_null_data = 1;
- enable_phy_data = 1;
- enable_hdr = 1;
- enable_ppdu_start= 1;
- enable_ppdu_end = 1;
- }
+ enable_ctrl_data = 1;
+ enable_mgmt_data = 1;
+ enable_null_data = 1;
+ enable_phy_data = 1;
+ enable_hdr = 1;
+ enable_ppdu_start= 1;
+ enable_ppdu_end = 1;
/* Disable ASPM when pkt log is enabled */
adf_os_print("Pkt log is enabled\n");
htt_htc_disable_aspm();
diff --git a/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c b/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c
index 21294288ab71..a9760075678c 100644
--- a/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c
+++ b/CORE/CLD_TXRX/TXRX/ol_rx_reorder.c
@@ -87,7 +87,11 @@ static char g_log2ceil[] = {
/* reorder array elements are known to be non-NULL */
#define OL_RX_REORDER_PTR_CHECK(ptr) /* no-op */
#define OL_RX_REORDER_LIST_APPEND(head_msdu, tail_msdu, rx_reorder_array_elem) \
- adf_nbuf_set_next(tail_msdu, rx_reorder_array_elem->head)
+ do { \
+ if (tail_msdu) { \
+ adf_nbuf_set_next(tail_msdu, rx_reorder_array_elem->head); \
+ } \
+ } while (0)
/* functions called by txrx components */
diff --git a/CORE/EPPING/src/epping_txrx.c b/CORE/EPPING/src/epping_txrx.c
index bd8c7154687f..678d58e0cfae 100644
--- a/CORE/EPPING/src/epping_txrx.c
+++ b/CORE/EPPING/src/epping_txrx.c
@@ -431,7 +431,7 @@ int epping_connect_service(epping_context_t *pEpping_ctx)
}
pEpping_ctx->EppingEndpoint[0] = response.Endpoint;
-#if defined(HIF_PCI)
+#if defined(HIF_PCI) || defined(HIF_USB)
connect.ServiceID = WMI_DATA_BK_SVC;
status = HTCConnectService(pEpping_ctx->HTCHandle,
&connect, &response);
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index d94a84054ff7..6b0bb8577585 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -4524,6 +4524,7 @@ VOS_STATUS hdd_update_mac_config(hdd_context_t *pHddCtx)
char *line, *buffer = NULL;
char *name, *value;
tCfgIniEntry macTable[VOS_MAX_CONCURRENCY_PERSONA];
+ tSirMacAddr customMacAddr;
VOS_STATUS vos_status = VOS_STATUS_SUCCESS;
@@ -4593,6 +4594,11 @@ VOS_STATUS hdd_update_mac_config(hdd_context_t *pHddCtx)
update_mac_from_string(pHddCtx, &macTable[0], i);
+ vos_mem_copy(&customMacAddr,
+ &pHddCtx->cfg_ini->intfMacAddr[0].bytes[0],
+ sizeof(tSirMacAddr));
+ sme_SetCustomMacAddr(customMacAddr);
+
config_exit:
release_firmware(fw);
return vos_status;
diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h
index 1a1f0d9465ad..096ead01f2a8 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 167
+#define QWLAN_VERSION_BUILD 168
-#define QWLAN_VERSIONSTR "1.0.0.167"
+#define QWLAN_VERSIONSTR "1.0.0.168"
#ifdef QCA_WIFI_2_0
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index 770e6ffec023..19f69267e10c 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -640,6 +640,7 @@ typedef struct sSirMbMsgP2p
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
#define SIR_HAL_HO_FAIL_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 282)
#endif
+#define SIR_HAL_SET_BASE_MACADDR_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 283)
#define SIR_HAL_MSG_TYPES_END (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF)
// CFG message types
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 0673a0333d1e..3868828947ad 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -773,8 +773,9 @@ __limHandleSmeStartBssRequest(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
else
psessionEntry->htSupportedChannelWidthSet =
(pSmeStartBssReq->cbMode)?1:0;
- psessionEntry->htRecommendedTxWidthSet = psessionEntry->htSupportedChannelWidthSet;
psessionEntry->htSecondaryChannelOffset = pSmeStartBssReq->cbMode;
+ psessionEntry->htRecommendedTxWidthSet =
+ (psessionEntry->htSecondaryChannelOffset)? 1:0;
VOS_TRACE(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO,
FL("cbMode %u"), pSmeStartBssReq->cbMode);
#ifdef WLAN_FEATURE_11AC
@@ -4802,12 +4803,15 @@ static void __limProcessSmeSetHT2040Mode(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
{
case PHY_SINGLE_CHANNEL_CENTERED:
psessionEntry->htSecondaryChannelOffset = PHY_SINGLE_CHANNEL_CENTERED;
+ psessionEntry->htRecommendedTxWidthSet = 0;
break;
case PHY_DOUBLE_CHANNEL_LOW_PRIMARY:
psessionEntry->htSecondaryChannelOffset = PHY_DOUBLE_CHANNEL_LOW_PRIMARY;
+ psessionEntry->htRecommendedTxWidthSet = 1;
break;
case PHY_DOUBLE_CHANNEL_HIGH_PRIMARY:
psessionEntry->htSecondaryChannelOffset = PHY_DOUBLE_CHANNEL_HIGH_PRIMARY;
+ psessionEntry->htRecommendedTxWidthSet = 1;
break;
default:
limLog(pMac, LOGE,FL("Invalid cbMode"));
diff --git a/CORE/MAC/src/pe/lim/limSendManagementFrames.c b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
index c32acd7a005c..355cf4a7ea16 100644
--- a/CORE/MAC/src/pe/lim/limSendManagementFrames.c
+++ b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
@@ -502,8 +502,13 @@ limSendProbeReqMgmtFrame(tpAniSirGlobal pMac,
/* Set channelbonding information as "disabled" when tunned to a 2.4 GHz channel */
if( nChannelNum <= SIR_11B_CHANNEL_END)
{
- pr.HTCaps.supportedChannelWidthSet = eHT_CHANNEL_WIDTH_20MHZ;
- pr.HTCaps.shortGI40MHz = 0;
+ if (pMac->roam.configParam.channelBondingMode24GHz
+ == PHY_SINGLE_CHANNEL_CENTERED) {
+ pr.HTCaps.supportedChannelWidthSet = eHT_CHANNEL_WIDTH_20MHZ;
+ pr.HTCaps.shortGI40MHz = 0;
+ } else {
+ pr.HTCaps.supportedChannelWidthSet = eHT_CHANNEL_WIDTH_40MHZ;
+ }
}
#ifdef WLAN_FEATURE_11AC
diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c
index 8d4f2996a5b6..621e71e26cda 100644
--- a/CORE/SAP/src/sapModule.c
+++ b/CORE/SAP/src/sapModule.c
@@ -2829,6 +2829,9 @@ WLANSAP_ChannelChangeRequest(v_PVOID_t pSapCtx, tANI_U8 tArgetChannel)
if (halStatus == eHAL_STATUS_SUCCESS)
{
+ sapSignalHDDevent(sapContext, NULL, eSAP_CHANNEL_CHANGE_EVENT,
+ (v_PVOID_t) eSAP_STATUS_SUCCESS);
+
return VOS_STATUS_SUCCESS;
}
return VOS_STATUS_E_FAULT;
diff --git a/CORE/SERVICES/BMI/ol_fw.c b/CORE/SERVICES/BMI/ol_fw.c
index eef562a3ca33..c3c7538b0c76 100644
--- a/CORE/SERVICES/BMI/ol_fw.c
+++ b/CORE/SERVICES/BMI/ol_fw.c
@@ -461,7 +461,8 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
#endif
break;
case ATH_SETUP_FILE:
- if (vos_get_conparam() != VOS_FTM_MODE) {
+ if (vos_get_conparam() != VOS_FTM_MODE &&
+ !WLAN_IS_EPPING_ENABLED(vos_get_conparam())) {
#ifdef CONFIG_CNSS
printk("%s: no Setup file defined\n", __func__);
return -1;
diff --git a/CORE/SERVICES/HIF/USB/if_usb.c b/CORE/SERVICES/HIF/USB/if_usb.c
index 0a8d11ff4b93..5e2c1015de4b 100644
--- a/CORE/SERVICES/HIF/USB/if_usb.c
+++ b/CORE/SERVICES/HIF/USB/if_usb.c
@@ -38,6 +38,7 @@
#include "vos_api.h"
#include "wma_api.h"
#include "wlan_hdd_main.h"
+#include "epping_main.h"
#ifdef WLAN_BTAMP_FEATURE
#include "wlan_btc_svc.h"
@@ -203,7 +204,8 @@ hif_usb_probe(struct usb_interface *interface, const struct usb_device_id *id)
sc->hdd_removed_processing = 0;
sc->hdd_removed_wait_cnt = 0;
#ifndef REMOVE_PKT_LOG
- if (vos_get_conparam() != VOS_FTM_MODE) {
+ if (vos_get_conparam() != VOS_FTM_MODE &&
+ !WLAN_IS_EPPING_ENABLED(vos_get_conparam())) {
/*
* pktlog initialization
*/
@@ -278,8 +280,9 @@ static void hif_usb_remove(struct usb_interface *interface)
if (usb_sc->hdd_removed == 0) {
usb_sc->hdd_removed_processing = 1;
#ifndef REMOVE_PKT_LOG
- if (vos_get_conparam() != VOS_FTM_MODE)
- pktlogmod_exit(scn);
+ if (vos_get_conparam() != VOS_FTM_MODE &&
+ !WLAN_IS_EPPING_ENABLED(vos_get_conparam()))
+ pktlogmod_exit(scn);
#endif
__hdd_wlan_exit();
usb_sc->hdd_removed_processing = 0;
@@ -486,7 +489,8 @@ void hif_unregister_driver(void)
if (usb_sc->hdd_removed == 0) {
usb_sc->hdd_removed_processing = 1;
#ifndef REMOVE_PKT_LOG
- if (vos_get_conparam() != VOS_FTM_MODE)
+ if (vos_get_conparam() != VOS_FTM_MODE &&
+ !WLAN_IS_EPPING_ENABLED(vos_get_conparam()))
pktlogmod_exit(usb_sc->ol_sc);
#endif
__hdd_wlan_exit();
diff --git a/CORE/SERVICES/HTC/htc.c b/CORE/SERVICES/HTC/htc.c
index a1d7024b5dd3..a161bd9abee8 100644
--- a/CORE/SERVICES/HTC/htc.c
+++ b/CORE/SERVICES/HTC/htc.c
@@ -348,7 +348,7 @@ A_STATUS HTCSetupTargetBufferAssignments(HTC_TARGET *target)
* space through the Ethernet interface.
* For credit allocation, in SDIO bus case, only BE service is
* used for tx/rx perf testing so that all credits are given
- * to BE service. In PCIe bus case, endpoint ping uses both
+ * to BE service. In PCIe and USB bus case, endpoint ping uses both
* BE and BK services to stress the bus so that the total credits
* are equally distributed to BE and BK services.
*/
@@ -357,7 +357,7 @@ A_STATUS HTCSetupTargetBufferAssignments(HTC_TARGET *target)
pEntry->ServiceID = WMI_DATA_BE_SVC;
pEntry->CreditAllocation = credits;
#endif
- #if defined(HIF_PCI)
+ #if defined(HIF_PCI) || defined(HIF_USB)
pEntry->ServiceID = WMI_DATA_BE_SVC;
pEntry->CreditAllocation = (credits >> 1);
diff --git a/CORE/SERVICES/WMA/regdomain_common.h b/CORE/SERVICES/WMA/regdomain_common.h
index 12faaecbe794..c96708eb2747 100644
--- a/CORE/SERVICES/WMA/regdomain_common.h
+++ b/CORE/SERVICES/WMA/regdomain_common.h
@@ -145,6 +145,7 @@ enum EnumRd {
APL1_ETSIC = 0x55,
APL2_ETSIC = 0x56, /* Venezuela */
APL5_WORLD = 0x58, /* Chile */
+ APL13_WORLD = 0x5A, /* Algeria */
APL6_WORLD = 0x5B, /* Singapore */
APL7_FCCA = 0x5C, /* Taiwan 5.47 Band */
APL8_WORLD = 0x5D, /* Malaysia 5GHz */
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index f258470008f2..7ec4f07acf80 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -1954,7 +1954,7 @@ static void wma_update_peer_stats(tp_wma_handle wma, wmi_peer_stats *peer_stats)
if (temp_mask & (1 << eCsrGlobalClassAStats)) {
classa_stats = (tCsrGlobalClassAStatsInfo *) stats_buf;
- WMA_LOGE("peer tx rate:%d", peer_stats->peer_tx_rate);
+ WMA_LOGD("peer tx rate:%d", peer_stats->peer_tx_rate);
/*The linkspeed returned by fw is in kbps so convert
*it in to units of 500kbps which is expected by UMAC*/
if (peer_stats->peer_tx_rate) {
@@ -1975,7 +1975,7 @@ static void wma_update_peer_stats(tp_wma_handle wma, wmi_peer_stats *peer_stats)
* rate flags */
classa_stats->rx_frag_cnt = node->nss;
classa_stats->promiscuous_rx_frag_cnt = mcsRateFlags;
- WMA_LOGE("Computed mcs_idx:%d mcs_rate_flags:%d",
+ WMA_LOGD("Computed mcs_idx:%d mcs_rate_flags:%d",
classa_stats->mcs_index,
mcsRateFlags);
}
@@ -1983,7 +1983,7 @@ static void wma_update_peer_stats(tp_wma_handle wma, wmi_peer_stats *peer_stats)
Convert it back to intervals of 1 dBm */
classa_stats->max_pwr =
roundup(classa_stats->max_pwr, 2) >> 1;
- WMA_LOGE("peer tx rate flags:%d nss:%d max_txpwr:%d",
+ WMA_LOGD("peer tx rate flags:%d nss:%d max_txpwr:%d",
node->rate_flags, node->nss,
classa_stats->max_pwr);
}
@@ -18243,6 +18243,40 @@ static int wma_process_receive_filter_clear_filter_req(tp_wma_handle wma_handle,
return 0; /* SUCCESS */
}
+static int wma_set_base_macaddr_indicate(tp_wma_handle wma_handle,
+ tSirMacAddr *customAddr)
+{
+ wmi_pdev_set_base_macaddr_cmd_fixed_param *cmd;
+ wmi_buf_t buf;
+ int err;
+
+ buf = wmi_buf_alloc(wma_handle->wmi_handle, sizeof(*cmd));
+ if (!buf) {
+ WMA_LOGE("Failed to allocate buffer to send set_base_macaddr cmd");
+ return -ENOMEM;
+ }
+
+ cmd = (wmi_pdev_set_base_macaddr_cmd_fixed_param *) wmi_buf_data(buf);
+ vos_mem_zero(cmd, sizeof(*cmd));
+
+ WMITLV_SET_HDR(&cmd->tlv_header,
+ WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param,
+ WMITLV_GET_STRUCT_TLVLEN(
+ wmi_pdev_set_base_macaddr_cmd_fixed_param));
+ WMI_CHAR_ARRAY_TO_MAC_ADDR(*customAddr, &cmd->base_macaddr);
+ err = wmi_unified_cmd_send(wma_handle->wmi_handle, buf,
+ sizeof(*cmd), WMI_PDEV_SET_BASE_MACADDR_CMDID);
+ if (err) {
+ WMA_LOGE("Failed to send set_base_macaddr cmd");
+ adf_os_mem_free(buf);
+ return -EIO;
+ }
+ WMA_LOGD("Base MAC Addr: "MAC_ADDRESS_STR,
+ MAC_ADDR_ARRAY((*customAddr)));
+
+ return 0;
+}
+
static void wma_data_tx_ack_work_handler(struct work_struct *ack_work)
{
struct wma_tx_ack_work_ctx *work;
@@ -21536,6 +21570,11 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg)
vos_mem_free(msg->bodyptr);
break;
#endif
+ case SIR_HAL_SET_BASE_MACADDR_IND:
+ wma_set_base_macaddr_indicate(wma_handle,
+ (tSirMacAddr *)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/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index 46568b4b8607..8344ca0a98b9 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -2431,6 +2431,19 @@ eHalStatus sme_SetTxPower(tHalHandle hHal, v_U8_t sessionId,
tSirMacAddr pBSSId,
tVOS_CON_MODE dev_mode, int power);
+
+/* ---------------------------------------------------------------------------
+
+ \fn sme_SetCustomMacAddr
+
+ \brief Set the customer Mac Address.
+
+ \param customMacAddr customer MAC Address
+ \- return eHalStatus
+
+ ---------------------------------------------------------------------------*/
+eHalStatus sme_SetCustomMacAddr(tSirMacAddr customMacAddr);
+
/* ---------------------------------------------------------------------------
\fn sme_HideSSID
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 44afee76178d..22bc6f6e34c6 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -8682,6 +8682,46 @@ eHalStatus sme_SetMaxTxPower(tHalHandle hHal, tSirMacAddr pBssid,
return eHAL_STATUS_SUCCESS;
}
+/* ---------------------------------------------------------------------------
+
+ \fn sme_SetCustomMacAddr
+
+ \brief Set the customer Mac Address.
+
+ \param customMacAddr customer MAC Address
+ \- return eHalStatus
+
+ ---------------------------------------------------------------------------*/
+eHalStatus sme_SetCustomMacAddr(tSirMacAddr customMacAddr)
+{
+ vos_msg_t msg;
+ tSirMacAddr *pBaseMacAddr;
+
+ pBaseMacAddr = vos_mem_malloc(sizeof(tSirMacAddr));
+ if (NULL == pBaseMacAddr)
+ {
+ VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+ FL("Not able to allocate memory for pBaseMacAddr"));
+ return eHAL_STATUS_FAILURE;
+ }
+
+ vos_mem_copy(*pBaseMacAddr, customMacAddr, sizeof(tSirMacAddr));
+
+ msg.type = SIR_HAL_SET_BASE_MACADDR_IND;
+ msg.reserved = 0;
+ msg.bodyptr = pBaseMacAddr;
+
+ if (VOS_STATUS_SUCCESS != vos_mq_post_message(VOS_MODULE_ID_WDA, &msg))
+ {
+ VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+ FL("Not able to post SIR_HAL_SET_BASE_MACADDR_IND message to WDA"));
+ vos_mem_free(pBaseMacAddr);
+ return eHAL_STATUS_FAILURE;
+ }
+
+ return eHAL_STATUS_SUCCESS;
+}
+
/* ----------------------------------------------------------------------------
\fn sme_SetTxPower
\brief Set Transmit Power dynamically.
@@ -11404,17 +11444,23 @@ VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, tANI_U8 ch
}
}
- if (pMac->roam.configParam.channelBondingMode24GHz) {
- if (channel >= 1 && channel <= 5)
- smeConfig.csrConfig.channelBondingMode24GHz =
- eCSR_INI_DOUBLE_CHANNEL_LOW_PRIMARY;
- else if (channel >= 6 && channel <= 13)
- smeConfig.csrConfig.channelBondingMode24GHz =
- eCSR_INI_DOUBLE_CHANNEL_HIGH_PRIMARY;
- else if (channel ==14)
- smeConfig.csrConfig.channelBondingMode24GHz =
- eCSR_INI_SINGLE_CHANNEL_CENTERED;
- }
+#ifdef QCA_HT_2040_COEX
+ /* if obss is enabled, the channel bonding mode is coming from hostapd,
+ so we don't need to hard code it here */
+ if (!pMac->roam.configParam.obssEnabled)
+#endif
+ if (pMac->roam.configParam.channelBondingMode24GHz)
+ {
+ if (channel >= 1 && channel <= 5)
+ smeConfig.csrConfig.channelBondingMode24GHz =
+ eCSR_INI_DOUBLE_CHANNEL_LOW_PRIMARY;
+ else if (channel >= 6 && channel <= 13)
+ smeConfig.csrConfig.channelBondingMode24GHz =
+ eCSR_INI_DOUBLE_CHANNEL_HIGH_PRIMARY;
+ else if (channel ==14)
+ smeConfig.csrConfig.channelBondingMode24GHz =
+ eCSR_INI_SINGLE_CHANNEL_CENTERED;
+ }
}
/*
diff --git a/CORE/SYS/legacy/src/utils/src/macTrace.c b/CORE/SYS/legacy/src/utils/src/macTrace.c
index b2f99b111c55..01915543e93a 100644
--- a/CORE/SYS/legacy/src/utils/src/macTrace.c
+++ b/CORE/SYS/legacy/src/utils/src/macTrace.c
@@ -813,6 +813,7 @@ tANI_U8* macTraceGetWdaMsgString( tANI_U16 wdaMsg )
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
CASE_RETURN_STRING(WDA_ROAM_OFFLOAD_SYNCH_CNF);
#endif
+ CASE_RETURN_STRING(SIR_HAL_SET_BASE_MACADDR_IND);
default:
return((tANI_U8*) "UNKNOWN" );
break;
diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c
index f733f20ed31e..d934ddbcc1e7 100644
--- a/CORE/SYS/legacy/src/utils/src/parserApi.c
+++ b/CORE/SYS/legacy/src/utils/src/parserApi.c
@@ -1084,6 +1084,12 @@ PopulateDot11fExtCap(tpAniSirGlobal pMac,
pDot11f->timingMeas = 1;
}
+#ifdef QCA_HT_2040_COEX
+ if (pMac->roam.configParam.obssEnabled)
+ {
+ pDot11f->bssCoexistMgmtSupport = 1;
+ }
+#endif
return eSIR_SUCCESS;
}
diff --git a/firmware_bin/WCNSS_qcom_cfg.ini b/firmware_bin/WCNSS_qcom_cfg.ini
index bd5e48cdd47b..ad365bd5f921 100755
--- a/firmware_bin/WCNSS_qcom_cfg.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.ini
@@ -415,6 +415,9 @@ gEnableTXSTBC=1
# 1=enable rx LDPC; 0=disable
gEnableRXLDPC=1
+#Enable/Disable Tx beamforming
+gTxBFEnable=1
+
# Enable Active mode offload
gEnableActiveModeOffload=1