diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2019-06-12 23:04:43 -0700 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2019-06-12 23:04:43 -0700 |
commit | 7fa073eeb83a11333f3904bcfa798635ba5632d5 (patch) | |
tree | 7ceba718393e116d9443fc312fa6f95dc9d331e3 | |
parent | 13a4291b9c759d61d8dc71df9b36c057c0004141 (diff) | |
parent | 78aa41ba569c485b91955fc5c0eb3e075fc3ee30 (diff) |
Merge 78aa41ba569c485b91955fc5c0eb3e075fc3ee30 on remote branch
Change-Id: I9e0554042db91eb6e0ae3b2935299ef1c7b62a45
-rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 15 | ||||
-rw-r--r-- | CORE/MAC/src/pe/lim/limSendMessages.c | 13 | ||||
-rw-r--r-- | CORE/SAP/src/sapModule.c | 2 | ||||
-rw-r--r-- | CORE/SERVICES/WMA/wma.c | 49 | ||||
-rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 2 | ||||
-rw-r--r-- | CORE/VOSS/src/vos_memory_prealloc.c | 14 | ||||
-rw-r--r-- | CORE/WDA/inc/legacy/halMsgApi.h | 2 |
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; |