summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-06-12 23:04:43 -0700
committerLinux Build Service Account <lnxbuild@localhost>2019-06-12 23:04:43 -0700
commit7fa073eeb83a11333f3904bcfa798635ba5632d5 (patch)
tree7ceba718393e116d9443fc312fa6f95dc9d331e3
parent13a4291b9c759d61d8dc71df9b36c057c0004141 (diff)
parent78aa41ba569c485b91955fc5c0eb3e075fc3ee30 (diff)
Merge 78aa41ba569c485b91955fc5c0eb3e075fc3ee30 on remote branch
Change-Id: I9e0554042db91eb6e0ae3b2935299ef1c7b62a45
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c15
-rw-r--r--CORE/MAC/src/pe/lim/limSendMessages.c13
-rw-r--r--CORE/SAP/src/sapModule.c2
-rw-r--r--CORE/SERVICES/WMA/wma.c49
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c2
-rw-r--r--CORE/VOSS/src/vos_memory_prealloc.c14
-rw-r--r--CORE/WDA/inc/legacy/halMsgApi.h2
7 files changed, 61 insertions, 36 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index ed3fcfd13ce4..f44a5f468322 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -26005,6 +26005,7 @@ static int __wlan_hdd_cfg80211_get_txpower(struct wiphy *wiphy,
hdd_adapter_t *pAdapter;
hdd_context_t *pHddCtx = (hdd_context_t*) wiphy_priv(wiphy);
int status;
+ hdd_station_ctx_t *sta_ctx;
ENTER();
@@ -26024,6 +26025,14 @@ static int __wlan_hdd_cfg80211_get_txpower(struct wiphy *wiphy,
hddLog(VOS_TRACE_LEVEL_FATAL, FL("pAdapter is NULL"));
return -ENOENT;
}
+ sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
+
+ if (sta_ctx->conn_info.connState != eConnectionState_Associated) {
+ hddLog(LOG1, FL("Not associated"));
+ /*To keep GUI happy */
+ *dbm = 0;
+ return 0;
+ }
MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_CFG80211_GET_TXPOWER,
pAdapter->sessionId, pAdapter->device_mode));
@@ -31228,10 +31237,10 @@ static int __wlan_hdd_cfg80211_channel_switch(struct wiphy *wiphy,
}
if (channel != current_channel &&
- target_sub20_chan_width == current_sub20_chan_width) {
+ target_sub20_chan_width == current_sub20_chan_width &&
+ current_sub20_chan_width == NL80211_CHAN_WIDTH_20_NOHT) {
ret = hdd_softap_set_channel_change(dev, channel);
- } else if (sap_config->sub20_switch_mode == SUB20_MANUAL &&
- target_sub20_chan_width != current_sub20_chan_width) {
+ } else if (sap_config->sub20_switch_mode == SUB20_MANUAL) {
ret = hdd_softap_set_channel_sub20_chanwidth_change(
dev, csa_params->chandef.width,
channel);
diff --git a/CORE/MAC/src/pe/lim/limSendMessages.c b/CORE/MAC/src/pe/lim/limSendMessages.c
index c1dc90b20ea8..22094d95deed 100644
--- a/CORE/MAC/src/pe/lim/limSendMessages.c
+++ b/CORE/MAC/src/pe/lim/limSendMessages.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2014, 2016, 2017, 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2014, 2016-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -231,6 +231,17 @@ tSirRetStatus limSendSwitchChnlParams(tpAniSirGlobal pMac,
limLog(pMac, LOG1, FL("Set sub20 channel width %d"),
pSessionEntry->sub20_channelwidth);
+ if (pSessionEntry->ssidHidden)
+ pChnlParams->ssidHidden = pSessionEntry->ssidHidden;
+
+ if (pSessionEntry->ssId.length) {
+ vos_mem_copy((uint8_t*)pChnlParams->ssid.ssId,
+ (uint8_t*)pSessionEntry->ssId.ssId,
+ pSessionEntry->ssId.length);
+ pChnlParams->ssid.length = pSessionEntry->ssId.length;
+ limLog(pMac, LOGE, FL("ssid name: %s length %d"),
+ pChnlParams->ssid.ssId, pChnlParams->ssid.length);
+ }
//we need to defer the message until we get the response back from WDA.
SET_LIM_PROCESS_DEFD_MESGS(pMac, false);
msgQ.type = WDA_CHNL_SWITCH_REQ;
diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c
index f45ebc4d864d..ab671afb1d6e 100644
--- a/CORE/SAP/src/sapModule.c
+++ b/CORE/SAP/src/sapModule.c
@@ -1953,7 +1953,7 @@ WLANSAP_set_sub20_channelwidth_with_csa(void *vos_ctx_ptr, uint32_t chan_width,
*/
mac_ptr->sap.SapDfsInfo.sap_radar_found_status =
VOS_TRUE;
- mac_ptr->sap.SapDfsInfo.cac_state = eSAP_DFS_SKIP_CAC;
+ mac_ptr->sap.SapDfsInfo.cac_state = eSAP_DFS_DO_NOT_SKIP_CAC;
sap_CacResetNotify(hal_ptr);
/*
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 0b7b88a20f3b..e5b3741d0f72 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -5321,6 +5321,15 @@ static int wma_unified_radio_tx_power_level_stats_event_handler(void *handle,
rs_results = (tSirWifiRadioStat *) &link_stats_results->results[0];
tx_power_level_values = (uint8 *) param_tlvs->tx_time_per_power_level;
+ if (rs_results->total_num_tx_power_levels &&
+ fixed_param->total_num_tx_power_levels >
+ rs_results->total_num_tx_power_levels) {
+ WMA_LOGE("%s: excess tx_power buffers:%d, total_num_tx_power_levels:%d",
+ __func__, fixed_param->total_num_tx_power_levels,
+ rs_results->total_num_tx_power_levels);
+ return -EINVAL;
+ }
+
rs_results->total_num_tx_power_levels =
fixed_param->total_num_tx_power_levels;
if (!rs_results->total_num_tx_power_levels)
@@ -15373,23 +15382,23 @@ VOS_STATUS wma_vdev_start(tp_wma_handle wma,
cmd->beacon_interval = req->beacon_intval;
cmd->dtim_period = req->dtim_period;
- /* Copy the SSID */
- if (req->ssid.length) {
- if (req->ssid.length < sizeof(cmd->ssid.ssid))
- cmd->ssid.ssid_len = req->ssid.length;
- else
- cmd->ssid.ssid_len = sizeof(cmd->ssid.ssid);
- vos_mem_copy(cmd->ssid.ssid, req->ssid.ssId,
- cmd->ssid.ssid_len);
- }
-
- if (req->hidden_ssid)
- cmd->flags |= WMI_UNIFIED_VDEV_START_HIDDEN_SSID;
-
if (req->pmf_enabled)
cmd->flags |= WMI_UNIFIED_VDEV_START_PMF_ENABLED;
}
+ if (req->hidden_ssid)
+ cmd->flags |= WMI_UNIFIED_VDEV_START_HIDDEN_SSID;
+
+ /* Copy the SSID */
+ if (req->ssid.length) {
+ if (req->ssid.length < sizeof(cmd->ssid.ssid))
+ cmd->ssid.ssid_len = req->ssid.length;
+ else
+ cmd->ssid.ssid_len = sizeof(cmd->ssid.ssid);
+ vos_mem_copy(cmd->ssid.ssid, req->ssid.ssId,
+ cmd->ssid.ssid_len);
+ }
+
cmd->num_noa_descriptors = 0;
buf_ptr = (u_int8_t *)(((uintptr_t) cmd) + sizeof(*cmd) +
sizeof(wmi_channel));
@@ -15398,11 +15407,14 @@ VOS_STATUS wma_vdev_start(tp_wma_handle wma,
sizeof(wmi_p2p_noa_descriptor));
WMA_LOGD("%s: vdev_id %d freq %d channel %d chanmode %d is_dfs %d "
"beacon interval %d dtim %d center_chan %d center_freq2 %d "
- "reg_info_1: 0x%x reg_info_2: 0x%x, req->max_txpow: 0x%x",
+ "reg_info_1: 0x%x reg_info_2: 0x%x, req->max_txpow: 0x%x"
+ "cmd flags 0x%x ssid len %d",
__func__, req->vdev_id, chan->mhz, req->chan, chanmode, req->is_dfs,
req->beacon_intval, cmd->dtim_period, chan->band_center_freq1,
chan->band_center_freq2, chan->reg_info_1, chan->reg_info_2,
- req->max_txpow);
+ req->max_txpow, cmd->flags, cmd->ssid.ssid_len);
+
+
/* Store vdev params in SAP mode which can be used in vdev restart */
if (intr[req->vdev_id].type == WMI_VDEV_TYPE_AP &&
@@ -16094,7 +16106,12 @@ static void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params)
#endif
req.beacon_intval = 100;
req.dtim_period = 1;
- req.is_dfs = params->isDfsChannel;
+ req.is_dfs = params->isDfsChannel;
+ req.hidden_ssid = params->ssidHidden;
+ req.ssid.length = params->ssid.length;
+ if (req.ssid.length > 0)
+ vos_mem_copy(req.ssid.ssId, params->ssid.ssId,
+ params->ssid.length);
/* In case of AP mode, once radar is detected, we need to
* issuse VDEV RESTART, so we making is_channel_switch as
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index c663cd3ea1b2..3d2e9ee5617c 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -9825,7 +9825,7 @@ void csrRoamJoinedStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf )
pRoamInfo->ampdu = pUpperLayerAssocCnf->ampdu;
pRoamInfo->sgi_enable = pUpperLayerAssocCnf->sgi_enable;
pRoamInfo->tx_stbc = pUpperLayerAssocCnf->tx_stbc;
- pRoamInfo->tx_stbc = pUpperLayerAssocCnf->rx_stbc;
+ pRoamInfo->rx_stbc = pUpperLayerAssocCnf->rx_stbc;
pRoamInfo->ch_width = pUpperLayerAssocCnf->ch_width;
pRoamInfo->mode = pUpperLayerAssocCnf->mode;
pRoamInfo->max_supp_idx = pUpperLayerAssocCnf->max_supp_idx;
diff --git a/CORE/VOSS/src/vos_memory_prealloc.c b/CORE/VOSS/src/vos_memory_prealloc.c
index 2f5a0f57b601..612291d6b99a 100644
--- a/CORE/VOSS/src/vos_memory_prealloc.c
+++ b/CORE/VOSS/src/vos_memory_prealloc.c
@@ -135,36 +135,22 @@ static v_VOID_t wcnss_prealloc_deinit(v_VOID_t)
}
}
-static v_VOID_t wcnss_trace_prealloc_occupied(v_VOID_t)
-{
- int i;
- printk("Memory allocs occupied:");
-
- for (i = 0; i < ARRAY_SIZE(wcnss_allocs); i++) {
- printk(" %d", wcnss_allocs[i].occupied);
- }
- printk("\n");
-}
-
v_VOID_t *wcnss_prealloc_get(v_UINT_t size)
{
v_UINT_t i = 0;
unsigned long flags;
spin_lock_irqsave(&alloc_lock, flags);
- wcnss_trace_prealloc_occupied();
for (i = 0; i < ARRAY_SIZE(wcnss_allocs); i++) {
if (wcnss_allocs[i].occupied)
continue;
if (wcnss_allocs[i].size >= size) {
/* we found the slot */
wcnss_allocs[i].occupied = 1;
- wcnss_trace_prealloc_occupied();
spin_unlock_irqrestore(&alloc_lock, flags);
return wcnss_allocs[i].ptr;
}
}
- wcnss_trace_prealloc_occupied();
spin_unlock_irqrestore(&alloc_lock, flags);
pr_err("wcnss_pre: %s: prealloc not available at size %d\n", __func__, size);
diff --git a/CORE/WDA/inc/legacy/halMsgApi.h b/CORE/WDA/inc/legacy/halMsgApi.h
index 2fcc6b3325da..823033fe7a61 100644
--- a/CORE/WDA/inc/legacy/halMsgApi.h
+++ b/CORE/WDA/inc/legacy/halMsgApi.h
@@ -1007,6 +1007,8 @@ typedef struct
* by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
*/
tSirMacAddr bssId;
+ uint8_t ssidHidden;
+ tSirMacSSid ssid;
eHalStatus status;