Merge "qcacld-3.0: Add support to configure candidate min roam score delta" into wlan-cld3.driver.lnx.2.0.c2
diff --git a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
index af37295..50851d6 100644
--- a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
+++ b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
@@ -3302,4 +3302,17 @@
bool policy_mgr_get_5g_scc_prefer(
struct wlan_objmgr_psoc *psoc, enum policy_mgr_con_mode mode);
+/**
+ * policy_mgr_dump_channel_list() - Print channel list
+ * @len: Length of pcl list
+ * @pcl_channels: pcl channels list
+ * @pcl_weight: pcl weight list
+ *
+ *
+ * Return: True or false
+ */
+bool policy_mgr_dump_channel_list(uint32_t len,
+ uint32_t *pcl_channels,
+ uint8_t *pcl_weight);
+
#endif /* __WLAN_POLICY_MGR_API_H */
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c
index b44bb32..e03bb3f 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c
@@ -1304,10 +1304,8 @@
}
- if (pm_ctx->unsafe_channel_count == 0) {
- policy_mgr_debug("There are no unsafe channels");
+ if (pm_ctx->unsafe_channel_count == 0)
return is_safe;
- }
for (j = 0; j < pm_ctx->unsafe_channel_count; j++) {
if (ch_freq == pm_ctx->unsafe_channel_list[j]) {
@@ -2426,10 +2424,8 @@
if (!policy_mgr_is_hw_dbs_capable(psoc) ||
(!policy_mgr_is_hw_dbs_2x2_capable(psoc) &&
!policy_mgr_is_hw_dbs_required_for_band(
- psoc, HW_MODE_MAC_BAND_2G))) {
- policy_mgr_debug("2x2 DBS is not enabled");
+ psoc, HW_MODE_MAC_BAND_2G)))
return QDF_STATUS_E_NOSUPPORT;
- }
/*
* Stop opportunistic timer as current connection info will change once
@@ -2443,10 +2439,8 @@
return QDF_STATUS_E_ALREADY;
}
- if (wlan_reg_freq_to_band(ch_freq) != REG_BAND_2G) {
- policy_mgr_debug("DBS is not required for 5Ghz chan");
+ if (wlan_reg_freq_to_band(ch_freq) != REG_BAND_2G)
return QDF_STATUS_E_NOSUPPORT;
- }
qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
/*
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c
index 4149abd..cfc3165 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c
@@ -2010,11 +2010,11 @@
(channel_state == CHANNEL_STATE_INVALID))
/* Set weight of inactive channels to 0 */
weight_list[i] = 0;
-
- policy_mgr_debug("ch freq: [%d] - %d, weight[%d] - %d",
- i, pcl_channels[i], i, weight_list[i]);
}
+ policy_mgr_dump_channel_list(orig_channel_count,
+ pcl_channels, weight_list);
+
return;
}
@@ -2172,7 +2172,6 @@
*/
sta_sap_scc_on_dfs_chan =
policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(psoc);
- policy_mgr_debug("sta_sap_scc_on_dfs_chan %u", sta_sap_scc_on_dfs_chan);
if ((mode == PM_SAP_MODE) || (mode == PM_P2P_GO_MODE)) {
if ((policy_mgr_mode_specific_connection_count(psoc,
PM_STA_MODE,
@@ -2813,7 +2812,7 @@
WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq) &&
(ch_freq != pm_conc_connection_list[list[index]].freq)) {
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
- policy_mgr_err("don't allow MCC if SAP/GO on DFS channel");
+ policy_mgr_rl_debug("don't allow MCC if SAP/GO on DFS channel");
return false;
}
index++;
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
index de8fefb..ca8d0df 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
@@ -874,8 +874,6 @@
dbs_support =
wmi_service_enabled(wmi_handle,
wmi_service_dual_band_simultaneous_support);
- policy_mgr_debug("is DBS supported by FW/HW: %s",
- dbs_support ? "yes" : "no");
/* The agreement with FW is that: To know if the target is DBS
* capable, DBS needs to be supported both in the HW mode list
@@ -900,9 +898,7 @@
}
for (i = 0; i < pm_ctx->num_dbs_hw_modes; i++) {
param = pm_ctx->hw_mode.hw_mode_list[i];
- policy_mgr_debug("HW param: %x", param);
if (POLICY_MGR_HW_MODE_DBS_MODE_GET(param)) {
- policy_mgr_debug("HW (%d) is DBS capable", i);
found = 1;
break;
}
@@ -926,9 +922,7 @@
}
for (i = 0; i < pm_ctx->num_dbs_hw_modes; i++) {
param = pm_ctx->hw_mode.hw_mode_list[i];
- policy_mgr_debug("HW param: %x", param);
if (POLICY_MGR_HW_MODE_SBS_MODE_GET(param)) {
- policy_mgr_debug("HW (%d) is SBS capable", i);
found = 1;
break;
}
@@ -972,27 +966,32 @@
bool policy_mgr_is_hw_dbs_capable(struct wlan_objmgr_psoc *psoc)
{
- if (!policy_mgr_is_dbs_enable(psoc)) {
- policy_mgr_debug("DBS is disabled");
+ if (!policy_mgr_is_dbs_enable(psoc))
+ return false;
+
+ if (!policy_mgr_find_if_fw_supports_dbs(psoc))
+ return false;
+
+ if (!policy_mgr_find_if_hwlist_has_dbs(psoc)) {
+ policymgr_nofl_debug("HW mode list has no DBS");
return false;
}
- if (!policy_mgr_find_if_fw_supports_dbs(psoc)) {
- policy_mgr_debug("HW mode list has no DBS");
- return false;
- }
-
- return policy_mgr_find_if_hwlist_has_dbs(psoc);
+ return true;
}
bool policy_mgr_is_hw_sbs_capable(struct wlan_objmgr_psoc *psoc)
{
if (!policy_mgr_find_if_fw_supports_dbs(psoc)) {
- policy_mgr_debug("HW mode list has no DBS");
return false;
}
- return policy_mgr_find_if_hwlist_has_sbs(psoc);
+ if (!policy_mgr_find_if_hwlist_has_sbs(psoc)) {
+ policymgr_nofl_debug("HW mode list has no SBS");
+ return false;
+ }
+
+ return true;
}
QDF_STATUS policy_mgr_get_dbs_hw_modes(struct wlan_objmgr_psoc *psoc,
@@ -1086,8 +1085,6 @@
QDF_STATUS status;
uint32_t old_hw_index = 0, new_hw_index = 0;
- policy_mgr_debug("Get the current hw mode");
-
status = policy_mgr_get_old_and_new_hw_index(psoc, &old_hw_index,
&new_hw_index);
if (QDF_STATUS_SUCCESS != status) {
@@ -1127,7 +1124,7 @@
struct policy_mgr_psoc_priv_obj *pm_ctx;
if (policy_mgr_is_dual_mac_disabled_in_ini(psoc)) {
- policy_mgr_debug("DBS is disabled from ini");
+ policy_mgr_rl_debug("DBS is disabled from ini");
return false;
}
@@ -1137,10 +1134,6 @@
return false;
}
- policy_mgr_debug("DBS=%d",
- WMI_DBS_FW_MODE_CFG_DBS_GET(
- pm_ctx->dual_mac_cfg.cur_fw_mode_config));
-
if (WMI_DBS_FW_MODE_CFG_DBS_GET(
pm_ctx->dual_mac_cfg.cur_fw_mode_config))
return true;
@@ -2041,9 +2034,7 @@
count = policy_mgr_mode_specific_connection_count(
psoc, mode, list);
qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
- if (count == 0) {
- policy_mgr_debug("No mode:[%d] connection", mode);
- } else if (count == 1) {
+ if (count == 1) {
*ch_freq_list = pm_conc_connection_list[list[index]].freq;
*vdev_id =
pm_conc_connection_list[list[index]].vdev_id;
@@ -2055,7 +2046,6 @@
vdev_id[index] =
pm_conc_connection_list[list[index]].vdev_id;
}
- policy_mgr_debug("Multiple mode:[%d] connections", mode);
}
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
@@ -2331,8 +2321,6 @@
sta_sap_scc_on_dfs_chan =
policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(psoc);
- policy_mgr_debug("sta_sap_scc_on_dfs_chan %u",
- sta_sap_scc_on_dfs_chan);
if (!sta_sap_scc_on_dfs_chan && ((mode == PM_P2P_GO_MODE) ||
(mode == PM_SAP_MODE))) {
@@ -2348,7 +2336,7 @@
num_connections) {
if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
if (policy_mgr_is_sap_p2pgo_on_dfs(psoc)) {
- policy_mgr_err("MCC not allowed: SAP/P2PGO on DFS");
+ policy_mgr_rl_debug("MCC not allowed: SAP/P2PGO on DFS");
goto done;
}
}
@@ -3498,8 +3486,8 @@
roffchan = wlan_vdev_mlme_cap_get(vdev, WLAN_VDEV_C_RESTRICT_OFFCHAN);
- policy_mgr_debug("Restrict offchannel:%s",
- roffchan ? "set" : "clear");
+ if (roffchan)
+ policy_mgr_debug("Restrict offchannel is set");
return roffchan;
}
@@ -3520,15 +3508,13 @@
cc_count = policy_mgr_get_mode_specific_conn_info(
psoc, &op_ch_freq_list[cc_count],
&vdev_id[cc_count], PM_SAP_MODE);
- policy_mgr_debug("Number of SAP modes: %d", cc_count);
if (cc_count < MAX_NUMBER_OF_CONC_CONNECTIONS)
cc_count = cc_count +
policy_mgr_get_mode_specific_conn_info(
psoc, &op_ch_freq_list[cc_count],
&vdev_id[cc_count], PM_P2P_GO_MODE);
- policy_mgr_debug("Number of beaconing entities (SAP + GO):%d",
- cc_count);
+
if (!cc_count) {
*ok = true;
return QDF_STATUS_SUCCESS;
@@ -3596,7 +3582,6 @@
wlan_objmgr_vdev_release_ref(vdev, WLAN_POLICY_MGR_ID);
}
}
- policy_mgr_debug("freq: %d ok %d", ch_freq, *ok);
return QDF_STATUS_SUCCESS;
}
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h
index b616676..3ccb32f 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -181,6 +181,9 @@
#define policymgr_nofl_debug(params...) \
QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_POLICY_MGR, params)
+#define policy_mgr_rl_debug(params...) \
+ QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_POLICY_MGR, params)
+
#define PM_CONC_CONNECTION_LIST_VALID_INDEX(index) \
((MAX_NUMBER_OF_CONC_CONNECTIONS > index) && \
(pm_conc_connection_list[index].in_use))
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c
index fa3cef1..98cfb14 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -30,6 +30,7 @@
#include "wlan_policy_mgr_i.h"
#include "qdf_types.h"
#include "qdf_trace.h"
+#include "qdf_str.h"
#include "wlan_objmgr_global_obj.h"
#include "wlan_utility.h"
#include "wlan_mlme_ucfg_api.h"
@@ -559,7 +560,10 @@
uint32_t *len)
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
- uint32_t i;
+ bool mandatory_modified_pcl = false;
+ bool nol_modified_pcl = false;
+ bool dfs_modified_pcl = false;
+ bool modified_final_pcl = false;
if (policy_mgr_is_sap_mandatory_channel_set(psoc)) {
status = policy_mgr_modify_sap_pcl_based_on_mandatory_channel(
@@ -569,10 +573,7 @@
"failed to get mandatory modified pcl for SAP");
return status;
}
- policy_mgr_debug("mandatory modified pcl len:%d", *len);
- for (i = 0; i < *len; i++)
- policy_mgr_debug("chan:%d weight:%d",
- pcl_channels[i], pcl_weight[i]);
+ mandatory_modified_pcl = true;
}
status = policy_mgr_modify_sap_pcl_based_on_nol(
@@ -581,10 +582,7 @@
policy_mgr_err("failed to get nol modified pcl for SAP");
return status;
}
- policy_mgr_debug("nol modified pcl len:%d", *len);
- for (i = 0; i < *len; i++)
- policy_mgr_debug("chan:%d weight:%d",
- pcl_channels[i], pcl_weight[i]);
+ nol_modified_pcl = true;
status = policy_mgr_modify_sap_pcl_based_on_dfs(
psoc, pcl_channels, pcl_weight, len);
@@ -592,10 +590,7 @@
policy_mgr_err("failed to get dfs modified pcl for SAP");
return status;
}
- policy_mgr_debug("dfs modified pcl len:%d", *len);
- for (i = 0; i < *len; i++)
- policy_mgr_debug("chan:%d weight:%d",
- pcl_channels[i], pcl_weight[i]);
+ dfs_modified_pcl = true;
status = policy_mgr_modify_pcl_based_on_srd
(psoc, pcl_channels, pcl_weight, len);
@@ -603,10 +598,12 @@
policy_mgr_err("failed to get srd modified pcl for SAP");
return status;
}
- policy_mgr_debug("modified final pcl len:%d", *len);
- for (i = 0; i < *len; i++)
- policy_mgr_debug("chan:%d weight:%d",
- pcl_channels[i], pcl_weight[i]);
+ modified_final_pcl = true;
+ policy_mgr_debug(" %d %d %d %d",
+ mandatory_modified_pcl,
+ nol_modified_pcl,
+ dfs_modified_pcl,
+ modified_final_pcl);
return QDF_STATUS_SUCCESS;
}
@@ -618,7 +615,6 @@
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
struct policy_mgr_psoc_priv_obj *pm_ctx;
- uint32_t i;
pm_ctx = policy_mgr_get_context(psoc);
if (!pm_ctx) {
@@ -639,10 +635,7 @@
policy_mgr_err("failed to get srd modified pcl for P2P-GO");
return status;
}
- policy_mgr_debug("modified pcl len:%d", *len);
- for (i = 0; i < *len; i++)
- policy_mgr_debug("ch freq:%d weight:%d",
- pcl_channels[i], pcl_weight[i]);
+ policy_mgr_dump_channel_list(*len, pcl_channels, pcl_weight);
return QDF_STATUS_SUCCESS;
}
@@ -726,7 +719,7 @@
uint8_t *pcl_weight, uint32_t weight_len)
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
- uint32_t num_connections = 0, i;
+ uint32_t num_connections = 0;
enum policy_mgr_conc_priority_mode first_index = 0;
enum policy_mgr_one_connection_mode second_index = 0;
enum policy_mgr_two_connection_mode third_index = 0;
@@ -819,10 +812,6 @@
break;
}
- policy_mgr_debug("index1:%d index2:%d index3:%d pcl:%d dbs:%d",
- first_index, second_index, third_index,
- pcl, policy_mgr_is_hw_dbs_capable(psoc));
-
/* once the PCL enum is obtained find out the exact channel list with
* help from sme_get_cfg_valid_channels
*/
@@ -833,11 +822,7 @@
return status;
}
- policy_mgr_debug("pcl len:%d", *len);
- for (i = 0; i < *len; i++) {
- policy_mgr_debug("chan:%d weight:%d",
- pcl_channels[i], pcl_weight[i]);
- }
+ policy_mgr_dump_channel_list(*len, pcl_channels, pcl_weight);
policy_mgr_mode_specific_modification_on_pcl(
psoc, pcl_channels, pcl_weight, len, mode);
@@ -2418,3 +2403,72 @@
return ch_freq;
}
+/*
+ * Buffer len size to consider the 4 char freq, 3 char weight, 2 char
+ * for open close brackets and space and a space, Total 10
+ */
+#define CHAN_WEIGHT_CHAR_LEN 10
+#define MAX_CHAN_TO_PRINT 39
+
+bool policy_mgr_dump_channel_list(uint32_t len, uint32_t *pcl_channels,
+ uint8_t *pcl_weight)
+{
+ uint32_t idx, buff_len, num = 0, count = 0, count_6G = 0;
+ char *chan_buff = NULL;
+
+ buff_len = (QDF_MIN(len, MAX_CHAN_TO_PRINT) * CHAN_WEIGHT_CHAR_LEN) + 1;
+ chan_buff = qdf_mem_malloc(buff_len);
+ if (!chan_buff)
+ return false;
+
+ policymgr_nofl_debug("Total PCL Chan Freq %d", len);
+ for (idx = 0; idx < len; idx++) {
+ if (!WLAN_REG_IS_6GHZ_CHAN_FREQ(pcl_channels[idx])) {
+ num += qdf_scnprintf(chan_buff + num, buff_len - num,
+ " %d[%d]", pcl_channels[idx],
+ pcl_weight[idx]);
+ count++;
+ if (count >= MAX_CHAN_TO_PRINT) {
+ /* Print the MAX_CHAN_TO_PRINT channels */
+ policymgr_nofl_debug("2G+5G Freq[weight]:%s",
+ chan_buff);
+ count = 0;
+ num = 0;
+ }
+ } else {
+ count_6G++;
+ }
+ }
+ /* Print any pending channels */
+ if (num)
+ policymgr_nofl_debug("2G+5G Freq[weight]:%s", chan_buff);
+
+ if (!count_6G)
+ goto free;
+
+ count = 0;
+ num = 0;
+ for (idx = 0; idx < len; idx++) {
+ if (WLAN_REG_IS_6GHZ_CHAN_FREQ(pcl_channels[idx])) {
+ num += qdf_scnprintf(chan_buff + num, buff_len - num,
+ " %d[%d]", pcl_channels[idx],
+ pcl_weight[idx]);
+ count++;
+ if (count >= MAX_CHAN_TO_PRINT) {
+ /* Print the MAX_CHAN_TO_PRINT channels */
+ policymgr_nofl_debug("6G Freq[weight]:%s",
+ chan_buff);
+ count = 0;
+ num = 0;
+ }
+ }
+ }
+ /* Print any pending channels */
+ if (num)
+ policymgr_nofl_debug("6G Freq[weight]:%s", chan_buff);
+
+free:
+ qdf_mem_free(chan_buff);
+
+ return true;
+}
diff --git a/components/p2p/core/src/wlan_p2p_main.c b/components/p2p/core/src/wlan_p2p_main.c
index 968e07e..ce5f9ba 100644
--- a/components/p2p/core/src/wlan_p2p_main.c
+++ b/components/p2p/core/src/wlan_p2p_main.c
@@ -1397,10 +1397,8 @@
}
mode = wlan_vdev_mlme_get_opmode(vdev);
- if (mode != QDF_P2P_CLIENT_MODE) {
- p2p_debug("this is not P2P CLIENT, mode:%d", mode);
+ if (mode != QDF_P2P_CLIENT_MODE)
return QDF_STATUS_SUCCESS;
- }
p2p_debug("connection status:%d", p2p_soc_obj->connection_status);
switch (p2p_soc_obj->connection_status) {
@@ -1439,10 +1437,8 @@
}
mode = wlan_vdev_mlme_get_opmode(vdev);
- if (mode != QDF_P2P_CLIENT_MODE) {
- p2p_debug("this is not P2P CLIENT, mode:%d", mode);
+ if (mode != QDF_P2P_CLIENT_MODE)
return QDF_STATUS_SUCCESS;
- }
p2p_debug("connection status:%d", p2p_soc_obj->connection_status);
switch (p2p_soc_obj->connection_status) {
diff --git a/components/p2p/core/src/wlan_p2p_off_chan_tx.c b/components/p2p/core/src/wlan_p2p_off_chan_tx.c
index 4edea17..4a8e8b0 100644
--- a/components/p2p/core/src/wlan_p2p_off_chan_tx.c
+++ b/components/p2p/core/src/wlan_p2p_off_chan_tx.c
@@ -1200,8 +1200,6 @@
struct tx_action_context *cur_tx_ctx;
QDF_STATUS status;
- p2p_debug("move tx context to wait for roc queue, %pK", tx_ctx);
-
cur_tx_ctx = p2p_find_tx_ctx(p2p_soc_obj, (uintptr_t)tx_ctx,
&is_roc_q, &is_ack_q);
if (cur_tx_ctx) {
@@ -1225,8 +1223,6 @@
&tx_ctx->node);
if (status != QDF_STATUS_SUCCESS)
p2p_err("Failed to insert off chan tx context to wait ack req queue");
- p2p_debug("insert tx context to wait for ack queue, status:%d",
- status);
return status;
}
@@ -1419,20 +1415,18 @@
{
QDF_STATUS status;
- p2p_debug("tx context:%pK", tx_ctx);
-
status = qdf_mc_timer_init(&tx_ctx->tx_timer,
QDF_TIMER_TYPE_SW, p2p_tx_timeout,
tx_ctx->p2p_soc_obj);
if (status != QDF_STATUS_SUCCESS) {
- p2p_err("failed to init tx timer");
+ p2p_err("failed to init tx timer tx_ctx:%pK", tx_ctx);
return status;
}
status = qdf_mc_timer_start(&tx_ctx->tx_timer,
P2P_ACTION_FRAME_TX_TIMEOUT);
if (status != QDF_STATUS_SUCCESS)
- p2p_err("tx timer start failed");
+ p2p_err("tx timer start failed tx_ctx:%pK", tx_ctx);
return status;
}
@@ -2920,8 +2914,6 @@
return QDF_STATUS_SUCCESS;
}
- p2p_debug("cookie:0x%llx", cancel_tx->cookie);
-
cur_tx_ctx = p2p_find_tx_ctx(cancel_tx->p2p_soc_obj,
cancel_tx->cookie, &is_roc_q, &is_ack_q);
if (cur_tx_ctx) {
diff --git a/components/p2p/core/src/wlan_p2p_roc.c b/components/p2p/core/src/wlan_p2p_roc.c
index 3d3b4a2..3435780 100644
--- a/components/p2p/core/src/wlan_p2p_roc.c
+++ b/components/p2p/core/src/wlan_p2p_roc.c
@@ -295,11 +295,7 @@
QDF_STATUS status;
struct p2p_soc_priv_obj *p2p_soc_obj = roc_ctx->p2p_soc_obj;
- p2p_debug("p2p soc obj:%pK, roc ctx:%pK, vdev_id:%d, scan_id:%d, tx ctx:%pK, chan:%d, phy_mode:%d, duration:%d, roc_type:%d, roc_state:%d",
- p2p_soc_obj, roc_ctx, roc_ctx->vdev_id,
- roc_ctx->scan_id, roc_ctx->tx_ctx, roc_ctx->chan,
- roc_ctx->phy_mode, roc_ctx->duration,
- roc_ctx->roc_type, roc_ctx->roc_state);
+ p2p_debug("p2p execute cancel roc req");
roc_ctx->roc_state = ROC_STATE_CANCEL_IN_PROG;
qdf_event_reset(&p2p_soc_obj->cancel_roc_done);
@@ -523,11 +519,7 @@
uint32_t size;
struct p2p_soc_priv_obj *p2p_soc_obj = roc_ctx->p2p_soc_obj;
- p2p_debug("p2p soc obj:%pK, roc ctx:%pK, vdev_id:%d, scan_id:%d, tx ctx:%pK, chan:%d, phy_mode:%d, duration:%d, roc_type:%d, roc_state:%d",
- p2p_soc_obj, roc_ctx, roc_ctx->vdev_id,
- roc_ctx->scan_id, roc_ctx->tx_ctx, roc_ctx->chan,
- roc_ctx->phy_mode, roc_ctx->duration,
- roc_ctx->roc_type, roc_ctx->roc_state);
+ p2p_debug("vdev_id:%d scan_id:%d", roc_ctx->vdev_id, roc_ctx->scan_id);
/* allow runtime suspend */
qdf_runtime_pm_allow_suspend(&p2p_soc_obj->roc_runtime_lock);
@@ -554,7 +546,7 @@
qdf_event_set(&p2p_soc_obj->cancel_roc_done);
size = qdf_list_size(&p2p_soc_obj->roc_q);
- p2p_debug("P2P roc queue size is %d", status);
+
if (size > 0) {
status = qdf_list_peek_front(&p2p_soc_obj->roc_q,
&next_node);
@@ -870,15 +862,16 @@
curr_roc_ctx = p2p_find_roc_ctx(p2p_soc_obj,
cancel_roc_ctx->cookie);
- p2p_debug("p2p soc obj:%pK, cookie:%llx, roc ctx:%pK",
- p2p_soc_obj, cancel_roc_ctx->cookie, curr_roc_ctx);
-
if (!curr_roc_ctx) {
p2p_debug("Failed to find roc req by cookie, cookie %llx",
cancel_roc_ctx->cookie);
return QDF_STATUS_E_INVAL;
}
+ p2p_debug("roc ctx:%pK vdev_id:%d, scan_id:%d, roc_type:%d, roc_state:%d",
+ curr_roc_ctx, curr_roc_ctx->vdev_id, curr_roc_ctx->scan_id,
+ curr_roc_ctx->roc_type, curr_roc_ctx->roc_state);
+
if (curr_roc_ctx->roc_state == ROC_STATE_IDLE) {
status = p2p_destroy_roc_ctx(curr_roc_ctx, true, true);
} else if (curr_roc_ctx->roc_state ==
diff --git a/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c b/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c
index 059327c..29d1dd3 100644
--- a/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c
+++ b/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c
@@ -46,7 +46,6 @@
qdf_spin_unlock_bh(&temp_ctx->pmo_vdev_lock);
for (i = 0; i < ip->count; i++) {
- pmo_debug("%pM", ip->mc_addr[i].bytes);
/*
* Skip following addresses:
* 1)IPv6 router solicitation address
@@ -71,8 +70,7 @@
qdf_mem_copy(&op_list->mc_addr[j].bytes,
ip->mc_addr[i].bytes, QDF_MAC_ADDR_SIZE);
qdf_spin_unlock_bh(&temp_ctx->pmo_vdev_lock);
- pmo_debug("Index = %d, mlist[%pM]",
- j, op_list->mc_addr[i].bytes);
+ pmo_debug("Index = %d, mac[%pM]", j, op_list->mc_addr[i].bytes);
j++;
}
}
@@ -108,8 +106,6 @@
{
QDF_STATUS status;
- pmo_enter();
-
status = pmo_vdev_get_ref(vdev);
if (QDF_IS_STATUS_ERROR(status))
goto exit_with_status;
@@ -119,7 +115,6 @@
pmo_vdev_put_ref(vdev);
exit_with_status:
- pmo_exit();
return status;
}
@@ -400,7 +395,6 @@
struct wlan_objmgr_vdev *vdev;
QDF_STATUS status = QDF_STATUS_SUCCESS;
- pmo_enter();
if (!psoc) {
pmo_err("psoc is NULL");
status = QDF_STATUS_E_NULL_VALUE;
@@ -433,7 +427,6 @@
dec_ref:
pmo_vdev_put_ref(vdev);
out:
- pmo_exit();
return status;
}
diff --git a/components/pmo/core/src/wlan_pmo_wow.c b/components/pmo/core/src/wlan_pmo_wow.c
index 988b166..2c32c9a 100644
--- a/components/pmo/core/src/wlan_pmo_wow.c
+++ b/components/pmo/core/src/wlan_pmo_wow.c
@@ -51,7 +51,6 @@
uint8_t pattern_count;
struct pmo_vdev_priv_obj *vdev_ctx;
- pmo_enter();
status = pmo_vdev_get_ref(vdev);
if (QDF_IS_STATUS_ERROR(status))
goto out;
@@ -69,7 +68,6 @@
pmo_vdev_put_ref(vdev);
out:
- pmo_exit();
return status;
}
diff --git a/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c b/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c
index bdc8488..8250f7f 100644
--- a/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c
+++ b/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -301,8 +301,6 @@
struct pmo_vdev_priv_obj *vdev_ctx = NULL;
QDF_STATUS status = QDF_STATUS_SUCCESS;
- pmo_enter();
-
vdev_ctx = pmo_vdev_get_priv(vdev);
status = wlan_objmgr_vdev_component_obj_detach(vdev,
@@ -314,8 +312,6 @@
qdf_spinlock_destroy(&vdev_ctx->pmo_vdev_lock);
qdf_mem_free(vdev_ctx);
- pmo_exit();
-
return status;
}
diff --git a/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c b/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c
index 99d1b97..04e6377 100644
--- a/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c
+++ b/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2018, 2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -33,7 +33,6 @@
struct wlan_objmgr_psoc *psoc;
struct wlan_pmo_tx_ops pmo_tx_ops;
- pmo_enter();
psoc = pmo_vdev_get_psoc(vdev);
pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
@@ -47,7 +46,6 @@
if (status != QDF_STATUS_SUCCESS)
pmo_err("Failed to config enhance multicast offload");
out:
- pmo_exit();
return status;
}
diff --git a/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c b/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c
index d527be0..312cfd8 100644
--- a/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c
+++ b/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2018, 2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -34,8 +34,6 @@
struct wlan_pmo_tx_ops pmo_tx_ops;
int vdev_id;
- pmo_enter();
-
psoc = pmo_vdev_get_psoc(vdev);
vdev_id = pmo_vdev_get_id(vdev);
@@ -53,7 +51,6 @@
if (status != QDF_STATUS_SUCCESS)
pmo_err("Failed to enable wow wakeup event");
out:
- pmo_exit();
return status;
}
@@ -102,7 +99,6 @@
struct wlan_objmgr_psoc *psoc;
struct wlan_pmo_tx_ops pmo_tx_ops;
- pmo_enter();
psoc = pmo_vdev_get_psoc(vdev);
vdev_ctx = pmo_vdev_get_priv(vdev);
@@ -127,7 +123,6 @@
if (user)
pmo_increment_wow_user_ptrn(vdev_ctx);
out:
- pmo_exit();
return status;
}
@@ -141,7 +136,6 @@
struct wlan_objmgr_psoc *psoc;
struct wlan_pmo_tx_ops pmo_tx_ops;
- pmo_enter();
psoc = pmo_vdev_get_psoc(vdev);
vdev_ctx = pmo_vdev_get_priv(vdev);
@@ -160,7 +154,6 @@
if (user)
pmo_decrement_wow_user_ptrn(vdev_ctx);
out:
- pmo_exit();
return status;
}
diff --git a/configs/default_defconfig b/configs/default_defconfig
index ed96444..e8d5080 100644
--- a/configs/default_defconfig
+++ b/configs/default_defconfig
@@ -620,6 +620,9 @@
CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
CONFIG_WLAN_SEND_DSCP_UP_MAP_TO_FW := y
endif
+ifeq ($(CONFIG_LITHIUM), y)
+CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
+endif
ifeq ($(CONFIG_ROME_IF), sdio)
CONFIG_PKTLOG_LEGACY := y
diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c
index bf5c2cf..33245a5 100644
--- a/core/cds/src/cds_api.c
+++ b/core/cds/src/cds_api.c
@@ -2301,7 +2301,7 @@
is_fatal, indicator, reason_code);
if (dump_mac_trace)
- qdf_trace_dump_all(p_cds_context->mac_context, 0, 0, 500, 0);
+ qdf_trace_dump_all(p_cds_context->mac_context, 0, 0, 100, 0);
if (WLAN_LOG_INDICATOR_HOST_ONLY == indicator) {
cds_wlan_flush_host_logs_for_fatal();
diff --git a/core/dp/txrx3.0/dp_fisa_rx.c b/core/dp/txrx3.0/dp_fisa_rx.c
index fcad79d3..c271ae2 100644
--- a/core/dp/txrx3.0/dp_fisa_rx.c
+++ b/core/dp/txrx3.0/dp_fisa_rx.c
@@ -502,9 +502,12 @@
flow_idx_valid = is_flow_idx_valid(flow_invalid, flow_timeout);
if (flow_idx_valid) {
- qdf_assert_always(flow_idx < fisa_hdl->max_entries);
dp_fisa_debug("flow_idx is valid 0x%x", flow_idx);
- return &sw_ft_base[flow_idx];
+ qdf_assert_always(flow_idx < fisa_hdl->max_entries);
+ sw_ft_entry = &sw_ft_base[flow_idx];
+ sw_ft_entry->vdev = vdev;
+
+ return sw_ft_entry;
}
/* else new flow, add entry to FT */
@@ -1019,6 +1022,9 @@
next_nbuf = head_nbuf->next;
qdf_nbuf_set_next(head_nbuf, NULL);
+ qdf_nbuf_push_head(head_nbuf, RX_PKT_TLVS_LEN +
+ QDF_NBUF_CB_RX_PACKET_L3_HDR_PAD(head_nbuf));
+
/* Add new flow if the there is no ongoing flow */
fisa_flow = dp_rx_get_fisa_flow(dp_fisa_rx_hdl, vdev,
head_nbuf);
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 32f1aae..cdfb7d8 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -244,7 +244,7 @@
bool enable_sar_safety;
bool config_sar_safety_sleep_index;
#endif
-
+ bool get_roam_chan_from_fw;
uint32_t fisa_enable;
};
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index 750cd4e..a4c5513 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -1901,6 +1901,7 @@
/* value for packet capturte mode */
uint8_t val_pkt_capture_mode;
#endif
+ bool roam_ch_from_fw_supported;
};
/**
diff --git a/core/hdd/src/wlan_hdd_apf.c b/core/hdd/src/wlan_hdd_apf.c
index 456fff9..15302a1 100644
--- a/core/hdd/src/wlan_hdd_apf.c
+++ b/core/hdd/src/wlan_hdd_apf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -227,8 +227,6 @@
int prog_len;
int ret = 0;
- hdd_enter();
-
if (!hdd_conn_is_connected(
WLAN_HDD_GET_STATION_CTX_PTR(adapter))) {
hdd_err("Not in Connected state!");
@@ -246,7 +244,7 @@
apf_set_offload.total_length = nla_get_u32(tb[APF_PACKET_SIZE]);
if (!apf_set_offload.total_length) {
- hdd_debug("APF reset packet filter received");
+ hdd_debug("APF reset packet");
goto post_sme;
}
@@ -268,10 +266,6 @@
apf_set_offload.current_length = prog_len;
nla_memcpy(apf_set_offload.program, tb[APF_PROGRAM], prog_len);
- hdd_debug("APF set instructions");
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_DEBUG,
- apf_set_offload.program, prog_len);
-
/* Parse and fetch filter Id */
if (!tb[APF_FILTER_ID]) {
hdd_err("attr filter id failed");
@@ -289,7 +283,7 @@
apf_set_offload.current_offset = nla_get_u32(tb[APF_CURRENT_OFFSET]);
post_sme:
- hdd_debug("Posting APF SET/RESET to SME, session_id: %d APF Version: %d filter ID: %d total_length: %d current_length: %d current offset: %d",
+ hdd_debug("Posting, session_id: %d APF Version: %d filter ID: %d total_len: %d current_len: %d offset: %d",
apf_set_offload.session_id, apf_set_offload.version,
apf_set_offload.filter_id, apf_set_offload.total_length,
apf_set_offload.current_length,
@@ -326,8 +320,6 @@
{
QDF_STATUS status;
- hdd_enter();
-
status = sme_set_apf_enable_disable(hdd_adapter_get_mac_handle(adapter),
adapter->vdev_id, apf_enable);
if (!QDF_IS_STATUS_SUCCESS(status)) {
@@ -338,7 +330,6 @@
adapter->apf_context.apf_enabled = apf_enable;
- hdd_exit();
return 0;
}
@@ -360,9 +351,6 @@
QDF_STATUS status;
int ret = 0;
- hdd_enter();
-
-
write_mem_params.vdev_id = adapter->vdev_id;
if (adapter->apf_context.apf_enabled) {
hdd_err("Cannot get/set when APF interpreter is enabled");
@@ -419,7 +407,6 @@
if (write_mem_params.buf)
qdf_mem_free(write_mem_params.buf);
- hdd_exit();
return ret;
}
@@ -509,8 +496,6 @@
struct sk_buff *skb = NULL;
uint8_t *bufptr;
- hdd_enter();
-
if (context->apf_enabled) {
hdd_err("Cannot get/set while interpreter is enabled");
return -EINVAL;
@@ -596,7 +581,6 @@
context->buf = NULL;
}
- hdd_exit();
return ret;
}
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index 003159c..68c976c 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -1643,41 +1643,28 @@
*/
static void hdd_print_bss_info(struct hdd_station_ctx *hdd_sta_ctx)
{
- uint32_t *cap_info;
+ uint32_t *ht_cap_info;
+ uint32_t *vht_cap_info;
+ struct hdd_connection_info *conn_info;
- hdd_debug("WIFI DATA LOGGER");
- hdd_debug("chan_freq: %d",
- hdd_sta_ctx->conn_info.chan_freq);
- hdd_debug("dot11mode: %d",
- hdd_sta_ctx->conn_info.dot11mode);
- hdd_debug("AKM: %d",
- hdd_sta_ctx->conn_info.last_auth_type);
- hdd_debug("ssid: %.*s",
- hdd_sta_ctx->conn_info.last_ssid.SSID.length,
- hdd_sta_ctx->conn_info.last_ssid.SSID.ssId);
- hdd_debug("roam count: %d",
- hdd_sta_ctx->conn_info.roam_count);
- hdd_debug("ant_info: %d",
- hdd_sta_ctx->conn_info.txrate.nss);
- hdd_debug("datarate legacy %d",
- hdd_sta_ctx->conn_info.txrate.legacy);
- hdd_debug("datarate mcs: %d",
- hdd_sta_ctx->conn_info.txrate.mcs);
- if (hdd_sta_ctx->conn_info.conn_flag.ht_present) {
- cap_info = (uint32_t *)&hdd_sta_ctx->conn_info.ht_caps;
- hdd_debug("ht caps: %x", *cap_info);
- }
- if (hdd_sta_ctx->conn_info.conn_flag.vht_present) {
- cap_info = (uint32_t *)&hdd_sta_ctx->conn_info.vht_caps;
- hdd_debug("vht caps: %x", *cap_info);
- }
- if (hdd_sta_ctx->conn_info.conn_flag.hs20_present)
- hdd_debug("hs20 info: %x",
- hdd_sta_ctx->conn_info.hs20vendor_ie.release_num);
- hdd_debug("signal: %d",
- hdd_sta_ctx->conn_info.signal);
- hdd_debug("noise: %d",
- hdd_sta_ctx->conn_info.noise);
+ conn_info = &hdd_sta_ctx->conn_info;
+
+ hdd_nofl_debug("*********** WIFI DATA LOGGER **************");
+ hdd_nofl_debug("freq: %d dot11mode %d AKM %d ssid: \"%.*s\" ,roam_count %d nss %d legacy %d mcs %d signal %d noise: %d",
+ conn_info->chan_freq, conn_info->dot11mode,
+ conn_info->last_auth_type,
+ conn_info->last_ssid.SSID.length,
+ conn_info->last_ssid.SSID.ssId, conn_info->roam_count,
+ conn_info->txrate.nss, conn_info->txrate.legacy,
+ conn_info->txrate.mcs, conn_info->signal,
+ conn_info->noise);
+ ht_cap_info = (uint32_t *)&conn_info->ht_caps;
+ vht_cap_info = (uint32_t *)&conn_info->vht_caps;
+ hdd_nofl_debug("HT 0x%x VHT 0x%x ht20 info 0x%x",
+ conn_info->conn_flag.ht_present ? *ht_cap_info : 0,
+ conn_info->conn_flag.vht_present ? *vht_cap_info : 0,
+ conn_info->conn_flag.hs20_present ?
+ conn_info->hs20vendor_ie.release_num : 0);
}
/**
@@ -1758,7 +1745,6 @@
hdd_clear_roam_profile_ie(adapter);
hdd_wmm_init(adapter);
- hdd_debug("Invoking packetdump deregistration API");
wlan_deregister_txrx_packetdump(OL_TXRX_PDEV_ID);
/* indicate 'disconnect' status to wpa_supplicant... */
@@ -1794,9 +1780,6 @@
reason,
disconnect_ies.data,
disconnect_ies.len);
-
- hdd_debug("sent disconnected event to nl80211, reason code %d",
- reason);
}
/* update P2P connection status */
@@ -1813,8 +1796,7 @@
mac_handle = hdd_ctx->mac_handle;
sme_ft_reset(mac_handle, adapter->vdev_id);
sme_reset_key(mac_handle, adapter->vdev_id);
- if (!hdd_remove_beacon_filter(adapter))
- hdd_debug("hdd_remove_beacon_filter() failed");
+ hdd_remove_beacon_filter(adapter);
if (sme_is_beacon_report_started(mac_handle, adapter->vdev_id)) {
hdd_debug("Sending beacon pause indication to userspace");
@@ -1827,14 +1809,8 @@
vstatus = hdd_roam_deregister_sta(adapter,
sta_ctx->conn_info.bssid);
- if (!QDF_IS_STATUS_SUCCESS(vstatus)) {
- hdd_err("hdd_roam_deregister_sta() failed for sta"
- QDF_MAC_ADDR_STR " Status: %d [0x%x]",
- QDF_MAC_ADDR_ARRAY(
- sta_ctx->conn_info.bssid.bytes),
- status, status);
+ if (QDF_IS_STATUS_ERROR(vstatus))
status = QDF_STATUS_E_FAILURE;
- }
/* Clear all the peer sta register with TL. */
for (i = 0; i < MAX_PEERS; i++) {
@@ -1849,13 +1825,8 @@
vstatus = hdd_roam_deregister_sta(adapter, mac_addr);
- if (!QDF_IS_STATUS_SUCCESS(vstatus)) {
- hdd_err("hdd_roam_deregister_sta() failed sta "
- QDF_MAC_ADDR_STR " Status: %d [0x%x]",
- QDF_MAC_ADDR_ARRAY(mac_addr.bytes),
- status, status);
+ if (QDF_IS_STATUS_ERROR(vstatus))
status = QDF_STATUS_E_FAILURE;
- }
/* set the peer mac as 0, all other
* reset are done in hdd_conn_remove_connect_info.
*/
@@ -1864,8 +1835,6 @@
}
} else {
- hdd_debug("roam_result: %d", roam_result);
-
/* clear scan cache for Link Lost */
if (eCSR_ROAM_LOSTLINK == roam_status) {
wlan_hdd_cfg80211_unlink_bss(adapter,
@@ -1900,7 +1869,6 @@
}
wlan_hdd_clear_link_layer_stats(adapter);
- hdd_debug("check for SAP restart");
policy_mgr_check_concurrent_intf_and_restart_sap(hdd_ctx->psoc);
adapter->hdd_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
@@ -2412,9 +2380,6 @@
qdf_mem_copy(buf_ptr, &roam_profile.SSID.ssId[0],
roam_profile.SSID.length);
ssid_ie_len = 2 + roam_profile.SSID.length;
- hdd_debug("SSIDIE:");
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_DEBUG,
- buf_ssid_ie, ssid_ie_len);
final_req_ie = qdf_mem_malloc(IW_GENERIC_IE_MAX);
if (!final_req_ie) {
if (bss)
@@ -3158,10 +3123,6 @@
FT_ASSOC_RSP_IES_OFFSET;
hdd_debug("assoc_rsp_len %d", assoc_rsp_len);
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD,
- QDF_TRACE_LEVEL_DEBUG,
- assoc_rsp,
- assoc_rsp_len);
} else {
hdd_debug("AssocRsp is NULL");
assoc_rsp_len = 0;
@@ -3178,11 +3139,6 @@
*/
assoc_req +=
FT_ASSOC_REQ_IES_OFFSET;
- hdd_debug("assoc_req is now at %02x%02x",
- (unsigned int)
- assoc_req[0],
- (unsigned int)
- assoc_req[1]);
assoc_req_len =
roam_info->nAssocReqLength -
FT_ASSOC_REQ_IES_OFFSET;
@@ -3194,12 +3150,7 @@
assoc_req_len =
roam_info->nAssocReqLength;
}
-
hdd_debug("assoc_req_len %d", assoc_req_len);
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD,
- QDF_TRACE_LEVEL_DEBUG,
- assoc_req,
- assoc_req_len);
} else {
hdd_debug("AssocReq is NULL");
assoc_req_len = 0;
@@ -3528,6 +3479,9 @@
(u8 *)(roam_info->pbFrames +
roam_info->nBeaconLength +
roam_info->nAssocReqLength);
+ hdd_debug("assoc_req_len %d assoc resp len %d",
+ roam_info->nAssocReqLength,
+ roam_info->nAssocRspLength);
}
hdd_err("send connect failure to nl80211: for bssid "
QDF_MAC_ADDR_STR
@@ -4580,9 +4534,6 @@
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
mac_handle_t mac_handle = hdd_adapter_get_mac_handle(adapter);
- hdd_debug("channel switch for session:%d to channel freq:%d",
- adapter->vdev_id, roam_info->chan_info.mhz);
-
/* Enable Roaming on STA interface which was disabled before CSA */
if (adapter->device_mode == QDF_STA_MODE)
sme_start_roaming(mac_handle, adapter->vdev_id,
@@ -4615,7 +4566,6 @@
if (QDF_IS_STATUS_ERROR(status))
hdd_debug("set hw mode change not done");
- hdd_debug("check for SAP restart");
policy_mgr_check_concurrent_intf_and_restart_sap(hdd_ctx->psoc);
}
@@ -4730,7 +4680,6 @@
break;
case eCSR_ROAM_LOSTLINK:
if (roam_result == eCSR_ROAM_RESULT_LOSTLINK) {
- hdd_debug("Roaming started due to connection lost");
hdd_debug("Disabling queues");
wlan_hdd_netif_queue_control(adapter,
WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index d4dcb44..92c463b 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -1584,7 +1584,10 @@
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS_EVENT,
},
-
+ [QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO_INDEX] = {
+ .vendor_id = QCA_NL80211_VENDOR_ID,
+ .subcmd = QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO,
+ }
};
/**
@@ -3174,12 +3177,7 @@
sap_config->acs_cfg.is_ht_enabled = ht_enabled;
sap_config->acs_cfg.is_vht_enabled = vht_enabled;
- if (sap_config->acs_cfg.ch_list_count) {
- hdd_nofl_debug("ACS freq list: len: %d",
- sap_config->acs_cfg.ch_list_count);
- for (i = 0; i < sap_config->acs_cfg.ch_list_count; i++)
- hdd_nofl_debug("%d ", sap_config->acs_cfg.freq_list[i]);
- }
+ sap_dump_acs_channel(&sap_config->acs_cfg);
qdf_status = ucfg_mlme_get_vendor_acs_support(hdd_ctx->psoc,
&is_vendor_acs_support);
@@ -6211,6 +6209,41 @@
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+void hdd_send_roam_scan_ch_list_event(struct hdd_context *hdd_ctx,
+ uint16_t buf_len, uint8_t *buf)
+{
+ struct sk_buff *vendor_event;
+ uint32_t len, ret;
+
+ if (!hdd_ctx) {
+ hdd_err_rl("hdd context is null");
+ return;
+ }
+
+ len = nla_total_size(buf_len) + NLMSG_HDRLEN;
+ vendor_event =
+ cfg80211_vendor_event_alloc(
+ hdd_ctx->wiphy, NULL, len,
+ QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO_INDEX,
+ GFP_KERNEL);
+
+ if (!vendor_event) {
+ hdd_err("cfg80211_vendor_event_alloc failed");
+ return;
+ }
+
+ ret = nla_put(vendor_event,
+ QCA_WLAN_VENDOR_ATTR_UPDATE_STA_INFO_CONNECT_CHANNELS,
+ buf_len, buf);
+ if (ret) {
+ hdd_err("OEM event put fails status %d", ret);
+ kfree_skb(vendor_event);
+ return;
+ }
+
+ cfg80211_vendor_event(vendor_event, GFP_KERNEL);
+}
+
/**
* wlan_hdd_send_roam_auth_event() - Send the roamed and authorized event
* @adapter: Pointer to adapter struct
@@ -9087,7 +9120,7 @@
status = cds_flush_logs(WLAN_LOG_TYPE_NON_FATAL,
WLAN_LOG_INDICATOR_FRAMEWORK,
WLAN_LOG_REASON_CODE_UNUSED,
- true, false);
+ false, false);
if (QDF_STATUS_SUCCESS != status) {
hdd_err("Failed to trigger bug report");
return -EINVAL;
@@ -20291,7 +20324,6 @@
/* Sending disconnect event to userspace for kernel version < 3.11
* is handled by __cfg80211_disconnect call to __cfg80211_disconnected
*/
- hdd_debug("Send disconnected event to userspace");
wlan_hdd_cfg80211_indicate_disconnect(adapter->dev, true,
WLAN_REASON_UNSPECIFIED, NULL, 0);
#endif
@@ -20384,8 +20416,6 @@
struct wlan_objmgr_vdev *vdev;
bool enable_deauth_to_disassoc_map;
- hdd_enter();
-
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
hdd_err("Command not allowed in FTM mode");
return -EINVAL;
@@ -20399,10 +20429,6 @@
adapter->vdev_id, reason);
hdd_print_netdev_txq_status(dev);
- hdd_debug("Device_mode %s(%d) reason code(%d)",
- qdf_opmode_str(adapter->device_mode),
- adapter->device_mode, reason);
-
status = wlan_hdd_validate_context(hdd_ctx);
if (0 != status)
@@ -20465,13 +20491,11 @@
vdev = hdd_objmgr_get_vdev(adapter);
if (!vdev)
return -EINVAL;
- if (ucfg_scan_get_vdev_status(vdev) !=
- SCAN_NOT_IN_PROGRESS) {
- hdd_debug("Disconnect is in progress, Aborting Scan");
+ if (ucfg_scan_get_vdev_status(vdev) != SCAN_NOT_IN_PROGRESS)
wlan_abort_scan(hdd_ctx->pdev, INVAL_PDEV_ID,
adapter->vdev_id, INVALID_SCAN_ID,
false);
- }
+
wlan_hdd_cleanup_remain_on_channel_ctx(adapter);
/* First clean up the tdls peers if any */
hdd_notify_sta_disconnect(adapter->vdev_id,
@@ -20479,7 +20503,8 @@
hdd_objmgr_put_vdev(vdev);
hdd_info("%s(vdevid-%d): Disconnect from userspace; reason:%d (%s)",
- dev->name, adapter->vdev_id, reason, hdd_ieee80211_reason_code_to_str(reason));
+ dev->name, adapter->vdev_id, reason,
+ hdd_ieee80211_reason_code_to_str(reason));
status = wlan_hdd_disconnect(adapter, reasonCode);
if (0 != status) {
hdd_err("wlan_hdd_disconnect failed, status: %d", status);
@@ -21415,8 +21440,11 @@
/* Delete the PMKID CSR cache */
if (QDF_STATUS_SUCCESS !=
wlan_hdd_del_pmksa_cache(adapter, pmk_cache)) {
- hdd_err("Failed to delete PMKSA for " QDF_MAC_ADDR_STR,
- QDF_MAC_ADDR_ARRAY(pmksa->bssid));
+ if (!pmksa->bssid)
+ hdd_err("Failed to delete PMKSA for null bssid");
+ else
+ hdd_err("Failed to delete PMKSA for " QDF_MAC_ADDR_STR,
+ QDF_MAC_ADDR_ARRAY(pmksa->bssid));
status = -EINVAL;
}
diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h
index 9897e1a..163d62a 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.h
+++ b/core/hdd/src/wlan_hdd_cfg80211.h
@@ -397,6 +397,17 @@
void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter);
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * hdd_send_roam_scan_ch_list_event() - roam scan ch list event to user space
+ * @hdd_ctx: HDD context
+ * @buf_len: length of frequency list
+ * @buf: pointer to buffer of frequency list
+ *
+ * Return: None
+ */
+void hdd_send_roam_scan_ch_list_event(struct hdd_context *hdd_ctx,
+ uint16_t buf_len, uint8_t *buf);
+
int wlan_hdd_send_roam_auth_event(struct hdd_adapter *adapter, uint8_t *bssid,
uint8_t *req_rsn_ie, uint32_t req_rsn_length, uint8_t
*rsp_rsn_ie, uint32_t rsp_rsn_length, struct csr_roam_info
@@ -409,6 +420,12 @@
{
return 0;
}
+
+static inline void
+hdd_send_roam_scan_ch_list_event(struct hdd_context *hdd_ctx,
+ uint16_t buf_len, uint8_t *buf)
+{
+}
#endif
int wlan_hdd_cfg80211_update_apies(struct hdd_adapter *adapter);
diff --git a/core/hdd/src/wlan_hdd_green_ap.c b/core/hdd/src/wlan_hdd_green_ap.c
index 77ee425..cd37c10 100644
--- a/core/hdd/src/wlan_hdd_green_ap.c
+++ b/core/hdd/src/wlan_hdd_green_ap.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2018, 2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -50,14 +50,14 @@
status = policy_mgr_mode_specific_num_active_sessions(
hdd_ctx->psoc, mode, &num_sessions);
- hdd_debug("No. of active sessions for mode: %d is %d",
- mode, num_sessions);
if (status != QDF_STATUS_SUCCESS) {
hdd_err("Failed to get num sessions for mode: %d",
mode);
return -EINVAL;
} else if (num_sessions) {
*enable_green_ap = false;
+ hdd_debug("active sessions for mode: %d is %d disable green AP",
+ mode, num_sessions);
return 0;
}
}
diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c
index b7cd5ae..f8c64db 100644
--- a/core/hdd/src/wlan_hdd_hostapd.c
+++ b/core/hdd/src/wlan_hdd_hostapd.c
@@ -836,18 +836,13 @@
return QDF_STATUS_E_FAILURE;
}
- hdd_debug("chan_freq:%d width:%d sec_ch_offset:%d seg0:%d seg1:%d",
- chan_change.chan_freq, chan_change.chan_params.ch_width,
- chan_change.chan_params.sec_ch_offset,
- chan_change.chan_params.center_freq_seg0,
- chan_change.chan_params.center_freq_seg1);
-
freq = chan_change.chan_freq;
chan = ieee80211_get_channel(adapter->wdev.wiphy, freq);
if (!chan) {
- hdd_err("Invalid input frequency for channel conversion");
+ hdd_err("Invalid input frequency %d for channel conversion",
+ freq);
return QDF_STATUS_E_FAILURE;
}
@@ -2461,7 +2456,6 @@
return QDF_STATUS_SUCCESS;
case eSAP_CHANNEL_CHANGE_EVENT:
- hdd_debug("Received eSAP_CHANNEL_CHANGE_EVENT event");
if (hostapd_state->bss_state != BSS_STOP) {
/* Allow suspend for old channel */
hdd_hostapd_channel_allow_suspend(adapter,
@@ -2514,7 +2508,6 @@
phy_mode = wlan_sap_get_phymode(
WLAN_HDD_GET_SAP_CTX_PTR(adapter));
- hdd_debug("phy_mode:%d", phy_mode);
switch (phy_mode) {
case eCSR_DOT11_MODE_11n:
diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c
index 0df4af7..525d19d 100644
--- a/core/hdd/src/wlan_hdd_ioctl.c
+++ b/core/hdd/src/wlan_hdd_ioctl.c
@@ -3978,6 +3978,137 @@
return hdd_parse_set_roam_scan_channels(adapter, command);
}
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+static bool is_roam_ch_from_fw_supported(struct hdd_context *hdd_ctx)
+{
+ return hdd_ctx->roam_ch_from_fw_supported;
+}
+
+struct roam_ch_priv {
+ struct roam_scan_ch_resp roam_ch;
+};
+
+void hdd_get_roam_scan_ch_cb(hdd_handle_t hdd_handle,
+ struct roam_scan_ch_resp *roam_ch,
+ void *context)
+{
+ struct osif_request *request;
+ struct roam_ch_priv *priv;
+ uint8_t *event = NULL, i = 0;
+ uint32_t *freq = NULL, len;
+ struct hdd_context *hdd_ctx = hdd_handle_to_context(hdd_handle);
+
+ hdd_debug("roam scan ch list event received : vdev_id:%d command resp: %d",
+ roam_ch->vdev_id, roam_ch->command_resp);
+ /**
+ * If command response is set in the response message, then it is
+ * getroamscanchannels command response else this event is asyncronous
+ * event raised by firmware.
+ */
+ if (!roam_ch->command_resp) {
+ len = roam_ch->num_channels * sizeof(roam_ch->chan_list[0]);
+ event = (uint8_t *)qdf_mem_malloc(len);
+ if (!event) {
+ hdd_err("Failed to alloc event response buf vdev_id: %d",
+ roam_ch->vdev_id);
+ return;
+ }
+ freq = (uint32_t *)event;
+ for (i = 0; i < roam_ch->num_channels &&
+ i < WNI_CFG_VALID_CHANNEL_LIST_LEN; i++) {
+ freq[i] = roam_ch->chan_list[i];
+ }
+
+ hdd_send_roam_scan_ch_list_event(hdd_ctx, len, event);
+ qdf_mem_free(event);
+ return;
+ }
+
+ request = osif_request_get(context);
+ if (!request) {
+ hdd_err("Obsolete request");
+ return;
+ }
+ priv = osif_request_priv(request);
+
+ priv->roam_ch.num_channels = roam_ch->num_channels;
+ for (i = 0; i < priv->roam_ch.num_channels &&
+ i < WNI_CFG_VALID_CHANNEL_LIST_LEN; i++)
+ priv->roam_ch.chan_list[i] = roam_ch->chan_list[i];
+
+ osif_request_complete(request);
+ osif_request_put(request);
+}
+
+static uint32_t
+hdd_get_roam_chan_from_fw(struct hdd_adapter *adapter, uint32_t *chan_list,
+ uint8_t *num_channels)
+{
+ QDF_STATUS status = QDF_STATUS_E_INVAL;
+ struct hdd_context *hdd_ctx;
+ int ret, i;
+ void *cookie;
+ struct osif_request *request;
+ struct roam_ch_priv *priv;
+ struct roam_scan_ch_resp *p_roam_ch;
+ static const struct osif_request_params params = {
+ .priv_size = sizeof(*priv) +
+ sizeof(priv->roam_ch.chan_list[0]) *
+ WNI_CFG_VALID_CHANNEL_LIST_LEN,
+ .timeout_ms = WLAN_WAIT_TIME_STATS,
+ };
+
+ hdd_ctx = WLAN_HDD_GET_CTX(adapter);
+ request = osif_request_alloc(¶ms);
+ if (!request) {
+ hdd_err("Request allocation failure");
+ return -ENOMEM;
+ }
+
+ priv = osif_request_priv(request);
+ p_roam_ch = &priv->roam_ch;
+ /** channel list starts after response structure*/
+ priv->roam_ch.chan_list = (uint32_t *)(p_roam_ch + 1);
+ cookie = osif_request_cookie(request);
+ status = sme_get_roam_scan_ch(hdd_ctx->mac_handle,
+ adapter->vdev_id, cookie);
+
+ if (QDF_IS_STATUS_ERROR(status)) {
+ hdd_err("Unable to retrieve roam channels");
+ ret = qdf_status_to_os_return(status);
+ goto cleanup;
+ }
+
+ ret = osif_request_wait_for_response(request);
+ if (ret) {
+ hdd_err("SME timed out while retrieving raom channels");
+ goto cleanup;
+ }
+
+ priv = osif_request_priv(request);
+ *num_channels = priv->roam_ch.num_channels;
+ for (i = 0; i < *num_channels; i++)
+ chan_list[i] = priv->roam_ch.chan_list[i];
+
+cleanup:
+ osif_request_put(request);
+
+ return ret;
+}
+#else
+static bool is_roam_ch_from_fw_supported(struct hdd_context *hdd_ctx)
+{
+ return false;
+}
+
+static uint32_t
+hdd_get_roam_chan_from_fw(struct hdd_adapter *adapter, uint32_t *chan_list,
+ uint8_t *num_channels)
+{
+ return QDF_STATUS_E_INVAL;
+}
+#endif
+
static int drv_cmd_get_roam_scan_channels(struct hdd_adapter *adapter,
struct hdd_context *hdd_ctx,
uint8_t *command,
@@ -3992,6 +4123,18 @@
int len;
uint8_t chan;
+ if (is_roam_ch_from_fw_supported(hdd_ctx)) {
+ ret = hdd_get_roam_chan_from_fw(adapter, freq_list,
+ &num_channels);
+ if (ret == QDF_STATUS_SUCCESS) {
+ goto fill_ch_resp;
+ } else {
+ hdd_err("failed to get roam scan channel list from FW");
+ ret = -EFAULT;
+ goto exit;
+ }
+ }
+
if (QDF_STATUS_SUCCESS !=
sme_get_roam_scan_channel_list(hdd_ctx->mac_handle,
freq_list,
@@ -4002,6 +4145,7 @@
goto exit;
}
+fill_ch_resp:
qdf_mtrace(QDF_MODULE_ID_HDD, QDF_MODULE_ID_HDD,
TRACE_CODE_HDD_GETROAMSCANCHANNELS_IOCTL,
adapter->vdev_id, num_channels);
diff --git a/core/hdd/src/wlan_hdd_ioctl.h b/core/hdd/src/wlan_hdd_ioctl.h
index 5296724..e382511 100644
--- a/core/hdd/src/wlan_hdd_ioctl.h
+++ b/core/hdd/src/wlan_hdd_ioctl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2014, 2017-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2014, 2017-2019, 2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -48,6 +48,32 @@
int hdd_set_antenna_mode(struct hdd_adapter *adapter,
struct hdd_context *hdd_ctx, int mode);
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * hdd_get_roam_scan_ch_cb() - roam scan channel list callback handler
+ * @hdd_handle: Pointer to hdd context
+ * @roam_ch: pointer to roam scan ch event data
+ * @context: cookie
+ *
+ * Callback function to processes roam scan chaanel list event. If
+ * command response field in the response message is set that means
+ * event received as a response of GETROAMSCANCHANNELS command else
+ * event was rasied by firmware upon disconnection.
+ *
+ * Return: none
+ */
+void hdd_get_roam_scan_ch_cb(hdd_handle_t hdd_handle,
+ struct roam_scan_ch_resp *roam_ch,
+ void *context);
+#else
+static inline void
+hdd_get_roam_scan_ch_cb(hdd_handle_t hdd_handle,
+ void *roam_ch,
+ void *context)
+{
+}
+#endif
+
#ifdef QCA_IBSS_SUPPORT
/**
* hdd_get_ibss_peer_info_cb() - IBSS peer Info request callback
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index b623d63..075b040 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -1625,6 +1625,7 @@
mawc_enabled & cfg->is_fw_mawc_capable);
hdd_update_tdls_config(hdd_ctx);
sme_update_tgt_services(hdd_ctx->mac_handle, cfg);
+ hdd_ctx->roam_ch_from_fw_supported = cfg->is_roam_scan_ch_to_host;
}
/**
@@ -4208,31 +4209,29 @@
hdd_enter_dev(dev);
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam())
- goto out;
+ return;
errno = wlan_hdd_validate_context(hdd_ctx);
if (errno)
- goto out;
+ return;
errno = hdd_validate_adapter(adapter);
if (errno)
- goto out;
+ return;
if (hdd_ctx->driver_status == DRIVER_MODULES_CLOSED) {
hdd_debug("%s: Driver module is closed", __func__);
- goto out;
+ return;
}
mc_list_request = qdf_mem_malloc(sizeof(*mc_list_request));
if (!mc_list_request)
- goto out;
+ return;
/* Delete already configured multicast address list */
- if (adapter->mc_addr_list.mc_cnt > 0) {
- hdd_debug("clear previously configured MC address list");
+ if (adapter->mc_addr_list.mc_cnt > 0)
hdd_disable_and_flush_mc_addr_list(adapter,
pmo_mc_list_change_notify);
- }
if (dev->flags & IFF_ALLMULTI) {
hdd_debug("allow all multicast frames");
@@ -4249,8 +4248,6 @@
goto free_req;
}
netdev_for_each_mc_addr(ha, dev) {
- hdd_debug("ha_addr[%d] "QDF_MAC_ADDR_STR,
- i, QDF_MAC_ADDR_ARRAY(ha->addr));
if (i == mc_count)
break;
memset(&(mc_list_request->mc_addr[i].bytes),
@@ -4279,9 +4276,6 @@
free_req:
qdf_mem_free(mc_list_request);
-
-out:
- hdd_exit();
}
/**
@@ -13381,6 +13375,8 @@
hdd_common_roam_callback);
sme_set_oem_data_event_handler_cb(mac_handle, hdd_oem_event_handler_cb);
+ sme_set_roam_scan_ch_event_cb(mac_handle, hdd_get_roam_scan_ch_cb);
+
hdd_exit();
return ret;
diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c
index 2447c94..30b774b 100644
--- a/core/hdd/src/wlan_hdd_power.c
+++ b/core/hdd/src/wlan_hdd_power.c
@@ -1074,19 +1074,17 @@
QDF_STATUS status;
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
- hdd_enter();
-
status = ucfg_pmo_check_arp_offload(hdd_ctx->psoc, trigger,
adapter->vdev_id);
if (status != QDF_STATUS_SUCCESS) {
hdd_debug("Flushing of ARP offload not required");
- goto out;
+ return;
}
status = ucfg_pmo_flush_arp_offload_req(adapter->vdev);
if (status != QDF_STATUS_SUCCESS) {
hdd_err("Failed to flush arp Offload");
- goto out;
+ return;
}
status = ucfg_pmo_disable_arp_offload_in_fwr(adapter->vdev,
@@ -1096,8 +1094,6 @@
PMO_OFFLOAD_DISABLE);
else
hdd_info("fail to disable arp offload");
-out:
- hdd_exit();
}
void hdd_enable_mc_addr_filtering(struct hdd_adapter *adapter,
@@ -1106,13 +1102,11 @@
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
QDF_STATUS status;
- hdd_enter();
-
if (wlan_hdd_validate_context(hdd_ctx))
- goto out;
+ return;
if (!hdd_adapter_is_connected_sta(adapter))
- goto out;
+ return;
status = ucfg_pmo_enable_mc_addr_filtering_in_fwr(hdd_ctx->psoc,
adapter->vdev_id,
@@ -1120,8 +1114,6 @@
if (QDF_IS_STATUS_ERROR(status))
hdd_debug("failed to enable mc list; status:%d", status);
-out:
- hdd_exit();
}
void hdd_disable_mc_addr_filtering(struct hdd_adapter *adapter,
@@ -1130,31 +1122,24 @@
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
QDF_STATUS status;
- hdd_enter();
-
if (wlan_hdd_validate_context(hdd_ctx))
- goto out;
+ return;
if (!hdd_adapter_is_connected_sta(adapter))
- goto out;
+ return;
status = ucfg_pmo_disable_mc_addr_filtering_in_fwr(hdd_ctx->psoc,
adapter->vdev_id,
trigger);
if (QDF_IS_STATUS_ERROR(status))
hdd_err("failed to disable mc list; status:%d", status);
-
-out:
- hdd_exit();
}
int hdd_cache_mc_addr_list(struct pmo_mc_addr_list_params *mc_list_config)
{
QDF_STATUS status;
- hdd_enter();
status = ucfg_pmo_cache_mc_addr_list(mc_list_config);
- hdd_exit();
return qdf_status_to_os_return(status);
}
@@ -1165,8 +1150,6 @@
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
QDF_STATUS status;
- hdd_enter();
-
if (!hdd_adapter_is_connected_sta(adapter))
goto flush_mc_list;
@@ -1183,7 +1166,6 @@
if (QDF_IS_STATUS_ERROR(status))
hdd_debug("failed to flush mc list; status:%d", status);
- hdd_exit();
}
/**
diff --git a/core/hdd/src/wlan_hdd_stats.c b/core/hdd/src/wlan_hdd_stats.c
index 9e5d20f..63faddd 100644
--- a/core/hdd/src/wlan_hdd_stats.c
+++ b/core/hdd/src/wlan_hdd_stats.c
@@ -631,8 +631,8 @@
if (0 != status)
return;
- hdd_debug("LL_STATS_PEER_ALL : num_peers %u, more data = %u",
- peer_stat->num_peers, more_data);
+ hdd_nofl_debug("LL_STATS_PEER_ALL : num_peers %u, more data = %u",
+ peer_stat->num_peers, more_data);
/*
* Allocate a size of 4096 for the peer stats comprising
@@ -967,7 +967,7 @@
return;
for (i = 0; i < num_radio; i++) {
- hdd_debug("LL_STATS_RADIO"
+ hdd_nofl_debug("LL_STATS_RADIO"
" radio: %u on_time: %u tx_time: %u rx_time: %u"
" on_time_scan: %u on_time_nbd: %u"
" on_time_gscan: %u on_time_roam_scan: %u"
@@ -1093,18 +1093,13 @@
return;
}
- hdd_debug("Link Layer Indication Type: %d", indication_type);
-
switch (indication_type) {
case SIR_HAL_LL_STATS_RESULTS_RSP:
{
- hdd_debug("LL_STATS RESP paramID = 0x%x, ifaceId = %u, respId= %u , moreResultToFollow = %u, num radio = %u result = %pK",
- results->paramId,
- results->ifaceId,
- results->rspId,
- results->moreResultToFollow,
- results->num_radio,
- results->results);
+ hdd_nofl_debug("LL_STATS RESP paramID = 0x%x, ifaceId = %u, respId= %u , moreResultToFollow = %u, num radio = %u result = %pK",
+ results->paramId, results->ifaceId,
+ results->rspId, results->moreResultToFollow,
+ results->num_radio, results->results);
request = osif_request_get(cookie);
if (!request) {
diff --git a/core/hdd/src/wlan_hdd_trace.c b/core/hdd/src/wlan_hdd_trace.c
index 22a2438..39b8377 100644
--- a/core/hdd/src/wlan_hdd_trace.c
+++ b/core/hdd/src/wlan_hdd_trace.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -42,15 +42,17 @@
hdd_trace_dump(void *mac, tp_qdf_trace_record record, uint16_t index)
{
if (TRACE_CODE_HDD_RX_SME_MSG == record->code)
- hdd_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
- index, record->qtime, record->time, record->session,
- "RX SME MSG:",
- get_e_roam_cmd_status_str(record->data), record->data);
+ hdd_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+ index, record->qtime, record->time,
+ record->session, "RX SME MSG:",
+ get_e_roam_cmd_status_str(record->data),
+ record->data);
else
- hdd_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
- index, record->qtime, record->time, record->session,
- "HDD Event:",
- hdd_trace_event_string(record->code), record->data);
+ hdd_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+ index, record->qtime, record->time,
+ record->session, "HDD Event:",
+ hdd_trace_event_string(record->code),
+ record->data);
}
/**
diff --git a/core/hdd/src/wlan_hdd_wmm.c b/core/hdd/src/wlan_hdd_wmm.c
index 759fdbd..a250df6 100644
--- a/core/hdd/src/wlan_hdd_wmm.c
+++ b/core/hdd/src/wlan_hdd_wmm.c
@@ -1561,8 +1561,6 @@
struct wlan_objmgr_psoc *psoc = adapter->hdd_ctx->psoc;
QDF_STATUS status = QDF_STATUS_SUCCESS;
- hdd_enter();
-
if (!psoc) {
hdd_err("Invalid psoc handle");
return QDF_STATUS_E_FAILURE;
diff --git a/core/mac/inc/qwlan_version.h b/core/mac/inc/qwlan_version.h
index b474045..fb5f6c3 100644
--- a/core/mac/inc/qwlan_version.h
+++ b/core/mac/inc/qwlan_version.h
@@ -31,10 +31,10 @@
#define QWLAN_VERSION_MAJOR 5
#define QWLAN_VERSION_MINOR 2
-#define QWLAN_VERSION_PATCH 0
-#define QWLAN_VERSION_EXTRA "H"
-#define QWLAN_VERSION_BUILD 170
+#define QWLAN_VERSION_PATCH 022
+#define QWLAN_VERSION_EXTRA "C"
+#define QWLAN_VERSION_BUILD 0
-#define QWLAN_VERSIONSTR "5.2.0.170H"
+#define QWLAN_VERSIONSTR "5.2.022.0C"
#endif /* QWLAN_VERSION_H */
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index 81b78a6..775abdd 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -192,6 +192,20 @@
};
/**
+ * struct roam_scan_ch_resp - roam scan chan list response to userspace
+ * @vdev_id: vdev id
+ * @num_channels: number of roam scan channels
+ * @command_resp: command response or async event
+ * @chan_list: list of roam scan channels
+ */
+struct roam_scan_ch_resp {
+ uint16_t vdev_id;
+ uint16_t num_channels;
+ uint32_t command_resp;
+ uint32_t *chan_list;
+};
+
+/**
* struct wlan_beacon_report - Beacon info to be send to userspace
* @vdev_id: vdev id
* @ssid: ssid present in beacon
diff --git a/core/mac/inc/wni_api.h b/core/mac/inc/wni_api.h
index 7c4101f..bea0c77 100644
--- a/core/mac/inc/wni_api.h
+++ b/core/mac/inc/wni_api.h
@@ -243,7 +243,9 @@
eWNI_SME_VDEV_DELETE_RSP = SIR_SME_MSG_TYPES_BEGIN + 158,
eWNI_SME_ROAM_INIT_PARAM = SIR_SME_MSG_TYPES_BEGIN + 159,
eWNI_SME_ROAM_SEND_PER_REQ = SIR_SME_MSG_TYPES_BEGIN + 160,
- eWNI_SME_MSG_TYPES_END = SIR_SME_MSG_TYPES_BEGIN + 161
+ eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT =
+ SIR_SME_MSG_TYPES_BEGIN + 161,
+ eWNI_SME_MSG_TYPES_END = SIR_SME_MSG_TYPES_BEGIN + 162
};
typedef struct sAniCfgTxRateCtrs {
diff --git a/core/mac/src/include/sir_params.h b/core/mac/src/include/sir_params.h
index 04ce72b..37bbf3e 100644
--- a/core/mac/src/include/sir_params.h
+++ b/core/mac/src/include/sir_params.h
@@ -652,6 +652,8 @@
#define SIR_HAL_SET_ROAM_TRIGGERS (SIR_HAL_ITC_MSG_TYPES_BEGIN + 413)
+#define SIR_HAL_ROAM_SCAN_CH_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 414)
+
#define SIR_HAL_MSG_TYPES_END (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF)
/* LIM message types */
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c
index 63d5b44..3a5e5f3 100644
--- a/core/mac/src/pe/lim/lim_api.c
+++ b/core/mac/src/pe/lim/lim_api.c
@@ -2089,9 +2089,6 @@
roam_synch_ind_ptr->isBeacon,
roam_synch_ind_ptr->bssid.bytes,
mac_hdr->bssId);
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
- bcn_proberesp_ptr,
- roam_synch_ind_ptr->beaconProbeRespLength);
status = lim_roam_gen_beacon_descr(mac,
roam_synch_ind_ptr,
@@ -2165,9 +2162,6 @@
(uint8_t *)parsed_frm_ptr->mdie,
SIR_MDIE_SIZE);
}
- pe_debug("LFR3: BssDescr Info:");
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
- bss_desc_ptr->bssId, sizeof(tSirMacAddr));
pe_debug("chan: %d rssi: %d ie_len %d",
bss_desc_ptr->chan_freq,
bss_desc_ptr->rssi, ie_len);
@@ -2417,10 +2411,6 @@
roam_sync_ind_ptr->reassocRespOffset,
mac_ctx->roam.reassocRespLen);
- pe_debug("LFR3: Reassoc resp frame data:");
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
- mac_ctx->roam.pReassocResp,
- mac_ctx->roam.reassocRespLen);
ft_session_ptr->bRoamSynchInProgress = true;
lim_process_assoc_rsp_frame(mac_ctx, mac_ctx->roam.pReassocResp,
diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c
index b648e6b..24b2be1 100644
--- a/core/mac/src/pe/lim/lim_assoc_utils.c
+++ b/core/mac/src/pe/lim/lim_assoc_utils.c
@@ -467,13 +467,6 @@
eLIM_LINK_MONITORING_DISASSOC) ||
(mlmStaContext.cleanupTrigger ==
eLIM_PROMISCUOUS_MODE_DISASSOC)) {
- /**
- * Host or LMM driven Disassociation.
- * Issue Disassoc Confirm to SME.
- */
- pe_debug("Lim Posting DISASSOC_CNF to Sme. Trigger: %d",
- mlmStaContext.cleanupTrigger);
-
qdf_mem_copy((uint8_t *) &mlmDisassocCnf.peerMacAddr,
(uint8_t *) sta_dsaddr.bytes, QDF_MAC_ADDR_SIZE);
mlmDisassocCnf.resultCode = status_code;
@@ -488,12 +481,6 @@
eLIM_HOST_DEAUTH) ||
(mlmStaContext.cleanupTrigger ==
eLIM_LINK_MONITORING_DEAUTH)) {
- /**
- * Host or LMM driven Deauthentication.
- * Issue Deauth Confirm to SME.
- */
- pe_debug("Lim Posting DEAUTH_CNF to Sme. Trigger: %d",
- mlmStaContext.cleanupTrigger);
qdf_copy_macaddr(&mlmDeauthCnf.peer_macaddr, &sta_dsaddr);
mlmDeauthCnf.resultCode = status_code;
mlmDeauthCnf.deauthTrigger = mlmStaContext.cleanupTrigger;
@@ -506,12 +493,6 @@
} else if ((mlmStaContext.cleanupTrigger ==
eLIM_PEER_ENTITY_DISASSOC) ||
(mlmStaContext.cleanupTrigger == eLIM_PEER_ENTITY_DEAUTH)) {
- /**
- * Received Disassociation/Deauthentication from peer.
- * Issue Purge Ind to SME.
- */
- pe_debug("Lim Posting PURGE_STA_IND to Sme. Trigger: %d",
- mlmStaContext.cleanupTrigger);
qdf_mem_copy((uint8_t *) &mlmPurgeStaInd.peerMacAddr,
(uint8_t *) sta_dsaddr.bytes, QDF_MAC_ADDR_SIZE);
mlmPurgeStaInd.reasonCode =
@@ -578,12 +559,6 @@
}
} else if (mlmStaContext.cleanupTrigger == eLIM_DUPLICATE_ENTRY) {
- /**
- * LIM driven Disassociation.
- * Issue Disassoc Confirm to SME.
- */
- pe_debug("Lim Posting DISASSOC_CNF to Sme. Trigger: %d",
- mlmStaContext.cleanupTrigger);
qdf_mem_copy((uint8_t *) &mlmDisassocCnf.peerMacAddr,
(uint8_t *) sta_dsaddr.bytes, QDF_MAC_ADDR_SIZE);
@@ -3225,14 +3200,9 @@
lim_deactivate_and_change_timer(mac, eLIM_JOIN_FAIL_TIMER);
}
- pe_debug("Sessionid %d : Sending HAL_DELETE_BSS_REQ BSSID:"
- QDF_MAC_ADDR_STR,
- pe_session->peSessionId,
- QDF_MAC_ADDR_ARRAY(pe_session->bssId));
/* we need to defer the message until we get the response back from HAL. */
SET_LIM_PROCESS_DEFD_MESGS(mac, false);
- pe_debug("process_ho_fail = %d", pe_session->process_ho_fail);
if (pe_session->process_ho_fail)
msgQ.type = WMA_DELETE_BSS_HO_FAIL_REQ;
else
@@ -3241,6 +3211,9 @@
msgQ.bodyptr = NULL;
msgQ.bodyval = pe_session->smeSessionId;
+ pe_debug("Sessionid %d : Sending HAL_DELETE_BSS_REQ BSSID:" QDF_MAC_ADDR_STR,
+ pe_session->peSessionId,
+ QDF_MAC_ADDR_ARRAY(pe_session->bssId));
MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
retCode = wma_post_ctrl_msg(mac, &msgQ);
diff --git a/core/mac/src/pe/lim/lim_process_action_frame.c b/core/mac/src/pe/lim/lim_process_action_frame.c
index 26c5ad0..7cc212b 100644
--- a/core/mac/src/pe/lim/lim_process_action_frame.c
+++ b/core/mac/src/pe/lim/lim_process_action_frame.c
@@ -79,9 +79,6 @@
return;
}
- pe_debug("Channel switch Mode: %d",
- pe_session->gLimChannelSwitch.switchMode);
-
mac->lim.lim_timers.gLimChannelSwitchTimer.sessionId = sessionId;
status = policy_mgr_check_and_set_hw_mode_for_channel_switch(mac->psoc,
pe_session->smeSessionId,
diff --git a/core/mac/src/pe/lim/lim_process_assoc_req_frame.c b/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
index 0968e99..79d72ae 100644
--- a/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
+++ b/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
@@ -2175,11 +2175,11 @@
hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
- pe_debug("Rcvd: %s Req Frame sessionid: %d systemrole: %d MlmState: %d from: "
- QDF_MAC_ADDR_STR,
- (LIM_ASSOC == sub_type) ? "Assoc" : "ReAssoc",
- session->peSessionId, GET_LIM_SYSTEM_ROLE(session),
- session->limMlmState, QDF_MAC_ADDR_ARRAY(hdr->sa));
+ pe_nofl_debug("Assoc req RX: subtype %d vdev %d sys role %d lim state %d rssi %d from " QDF_MAC_ADDR_STR,
+ sub_type, session->vdev_id, GET_LIM_SYSTEM_ROLE(session),
+ session->limMlmState,
+ WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info),
+ QDF_MAC_ADDR_ARRAY(hdr->sa));
if (LIM_IS_STA_ROLE(session)) {
pe_err("Rcvd unexpected ASSOC REQ, sessionid: %d sys sub_type: %d for role: %d from: "
diff --git a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c
index a8eb87b..6702cf7 100644
--- a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c
+++ b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c
@@ -310,7 +310,6 @@
pe_err("RIC data not present");
}
} else {
- pe_debug("Ric is not present");
session_entry->RICDataLen = 0;
session_entry->ricData = NULL;
}
@@ -356,7 +355,6 @@
} else {
session_entry->tspecLen = 0;
session_entry->tspecIes = NULL;
- pe_debug("Tspec EID *NOT* present in assoc rsp");
}
return;
}
@@ -587,33 +585,14 @@
struct csr_roam_session *roam_session;
#endif
uint8_t ap_nss;
+ int8_t rssi;
- /* Initialize status code to success. */
- if (lim_is_roam_synch_in_progress(session_entry))
- hdr = (tpSirMacMgmtHdr) mac_ctx->roam.pReassocResp;
- else
- hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
vdev_id = session_entry->vdev_id;
#endif
assoc_cnf.resultCode = eSIR_SME_SUCCESS;
/* Update PE session Id */
assoc_cnf.sessionId = session_entry->peSessionId;
- if (!hdr) {
- pe_err("LFR3: Reassoc response packet header is NULL");
- return;
- }
-
- pe_nofl_info("Assoc RX subtype %d vdev %d sys role %d lim state %d rssi %d from " QDF_MAC_ADDR_STR,
- subtype, session_entry->vdev_id,
- GET_LIM_SYSTEM_ROLE(session_entry),
- session_entry->limMlmState,
- WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info),
- QDF_MAC_ADDR_ARRAY(hdr->sa));
-
- beacon = qdf_mem_malloc(sizeof(tSchBeaconStruct));
- if (!beacon)
- return;
if (LIM_IS_AP_ROLE(session_entry)) {
/*
@@ -622,16 +601,36 @@
*/
pe_err("Should not received Re/Assoc Response in role: %d",
GET_LIM_SYSTEM_ROLE(session_entry));
- qdf_mem_free(beacon);
return;
}
+
if (lim_is_roam_synch_in_progress(session_entry)) {
hdr = (tpSirMacMgmtHdr) mac_ctx->roam.pReassocResp;
frame_len = mac_ctx->roam.reassocRespLen - SIR_MAC_HDR_LEN_3A;
+ rssi = 0;
} else {
hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
+ rssi = WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info);
}
+
+ if (!hdr) {
+ pe_err("LFR3: Reassoc response packet header is NULL");
+ return;
+ }
+
+ pe_nofl_info("Assoc rsp RX: subtype %d vdev %d sys role %d lim state %d rssi %d from " QDF_MAC_ADDR_STR,
+ subtype, session_entry->vdev_id,
+ GET_LIM_SYSTEM_ROLE(session_entry),
+ session_entry->limMlmState, rssi,
+ QDF_MAC_ADDR_ARRAY(hdr->sa));
+ QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
+ (uint8_t *)hdr, frame_len + SIR_MAC_HDR_LEN_3A);
+
+ beacon = qdf_mem_malloc(sizeof(tSchBeaconStruct));
+ if (!beacon)
+ return;
+
if (((subtype == LIM_ASSOC) &&
(session_entry->limMlmState != eLIM_MLM_WT_ASSOC_RSP_STATE)) ||
((subtype == LIM_REASSOC) &&
diff --git a/core/mac/src/pe/lim/lim_process_cfg_updates.c b/core/mac/src/pe/lim/lim_process_cfg_updates.c
index f889197..a975af7 100644
--- a/core/mac/src/pe/lim/lim_process_cfg_updates.c
+++ b/core/mac/src/pe/lim/lim_process_cfg_updates.c
@@ -178,7 +178,6 @@
as a part of join request for a BT-AMP station */
if (pe_session->statypeForBss == STA_ENTRY_SELF) {
- pe_debug("Initializing BT-AMP beacon generation");
sch_set_beacon_interval(mac, pe_session);
sch_set_fixed_beacon_fields(mac, pe_session);
}
diff --git a/core/mac/src/pe/lim/lim_process_deauth_frame.c b/core/mac/src/pe/lim/lim_process_deauth_frame.c
index 2a866cd..7acb48c 100644
--- a/core/mac/src/pe/lim/lim_process_deauth_frame.c
+++ b/core/mac/src/pe/lim/lim_process_deauth_frame.c
@@ -149,12 +149,11 @@
/* Get reasonCode from Deauthentication frame body */
reasonCode = sir_read_u16(pBody);
- pe_nofl_info("Deauth from %pM for %pM mlm state = %d, sme state = %d systemrole = %d RSSI = %d reason %d",
- pHdr->sa, pHdr->da,
- pe_session->limMlmState,
+ pe_nofl_info("Deauth RX: vdev %d from %pM for %pM RSSI = %d reason %d mlm state = %d, sme state = %d systemrole = %d ",
+ pe_session->vdev_id, pHdr->sa, pHdr->da, frame_rssi,
+ reasonCode, pe_session->limMlmState,
pe_session->limSmeState,
- GET_LIM_SYSTEM_ROLE(pe_session), frame_rssi,
- reasonCode);
+ GET_LIM_SYSTEM_ROLE(pe_session));
lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_FRAME_EVENT,
pe_session, 0, reasonCode);
@@ -315,7 +314,7 @@
cds_flush_logs(WLAN_LOG_TYPE_FATAL,
WLAN_LOG_INDICATOR_HOST_DRIVER,
WLAN_LOG_REASON_DISCONNECT,
- true, false);
+ false, false);
}
} /*** end lim_process_deauth_frame() ***/
diff --git a/core/mac/src/pe/lim/lim_process_disassoc_frame.c b/core/mac/src/pe/lim/lim_process_disassoc_frame.c
index 27e6a7e..d6afd50 100644
--- a/core/mac/src/pe/lim/lim_process_disassoc_frame.c
+++ b/core/mac/src/pe/lim/lim_process_disassoc_frame.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -146,13 +146,11 @@
/* Get reasonCode from Disassociation frame body */
reasonCode = sir_read_u16(pBody);
- pe_debug("Received Disassoc frame for Addr: " QDF_MAC_ADDR_STR
- "(mlm state=%s, sme state=%d RSSI=%d),"
- "with reason code %d [%s] from " QDF_MAC_ADDR_STR,
- QDF_MAC_ADDR_ARRAY(pHdr->da),
- lim_mlm_state_str(pe_session->limMlmState),
- pe_session->limSmeState, frame_rssi, reasonCode,
- lim_dot11_reason_str(reasonCode), QDF_MAC_ADDR_ARRAY(pHdr->sa));
+ pe_nofl_info("Disassoc RX: vdev %d from %pM for %pM RSSI = %d reason %d mlm state = %d, sme state = %d systemrole = %d ",
+ pe_session->vdev_id, pHdr->sa, pHdr->da, frame_rssi,
+ reasonCode, pe_session->limMlmState,
+ pe_session->limSmeState,
+ GET_LIM_SYSTEM_ROLE(pe_session));
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_FRAME_EVENT,
pe_session, 0, reasonCode);
@@ -313,7 +311,7 @@
cds_flush_logs(WLAN_LOG_TYPE_FATAL,
WLAN_LOG_INDICATOR_HOST_DRIVER,
WLAN_LOG_REASON_DISCONNECT,
- true, false);
+ false, false);
}
} /*** end lim_process_disassoc_frame() ***/
diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c
index 395c2c6..2633909 100644
--- a/core/mac/src/pe/lim/lim_process_message_queue.c
+++ b/core/mac/src/pe/lim/lim_process_message_queue.c
@@ -827,7 +827,6 @@
cds_pkt_t *rx_pkt)
{
rx_pkt->pkt_meta.frequency = scan_entry->channel.chan_freq;
- pe_debug("rx pkt meta freq %d", rx_pkt->pkt_meta.frequency);
rx_pkt->pkt_meta.mpdu_hdr_len = sizeof(struct ieee80211_frame);
rx_pkt->pkt_meta.mpdu_len = scan_entry->raw_frame.len;
rx_pkt->pkt_meta.mpdu_data_len = rx_pkt->pkt_meta.mpdu_len -
diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
index 9d05db1..440d774 100644
--- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
@@ -928,12 +928,6 @@
goto end;
}
- pe_debug("Process DisAssoc Req on sessionID %d Systemrole %d"
- "mlmstate %d from: " QDF_MAC_ADDR_STR,
- mlm_disassocreq->sessionId, GET_LIM_SYSTEM_ROLE(session),
- session->limMlmState,
- QDF_MAC_ADDR_ARRAY(mlm_disassocreq->peer_macaddr.bytes));
-
qdf_mem_copy(curr_bssid.bytes, session->bssId, QDF_MAC_ADDR_SIZE);
switch (GET_LIM_SYSTEM_ROLE(session)) {
@@ -1218,10 +1212,6 @@
}
mlm_disassoc_req = (tLimMlmDisassocReq *) msg_buf;
- pe_debug("Process disassoc req, sessionID %d from: "QDF_MAC_ADDR_STR,
- mlm_disassoc_req->sessionId,
- QDF_MAC_ADDR_ARRAY(mlm_disassoc_req->peer_macaddr.bytes));
-
lim_process_mlm_disassoc_req_ntf(mac_ctx, QDF_STATUS_SUCCESS,
(uint32_t *) msg_buf);
}
@@ -1264,12 +1254,6 @@
qdf_mem_free(mlm_deauth_req);
return;
}
- pe_debug("Process Deauth Req on sessionID %d Systemrole %d"
- "mlmstate %d from: " QDF_MAC_ADDR_STR,
- mlm_deauth_req->sessionId,
- GET_LIM_SYSTEM_ROLE(session),
- session->limMlmState,
- QDF_MAC_ADDR_ARRAY(mlm_deauth_req->peer_macaddr.bytes));
sir_copy_mac_addr(curr_bssId, session->bssId);
switch (GET_LIM_SYSTEM_ROLE(session)) {
@@ -1304,11 +1288,6 @@
return;
}
- pe_debug("send deauth rsp with ret code %d for" QDF_MAC_ADDR_STR,
- eSIR_SME_DEAUTH_STATUS,
- QDF_MAC_ADDR_ARRAY(
- mlm_deauth_req->peer_macaddr.bytes));
-
sme_deauth_rsp->messageType =
eWNI_SME_DEAUTH_RSP;
sme_deauth_rsp->length =
@@ -1509,11 +1488,6 @@
}
mlm_deauth_req = (tLimMlmDeauthReq *) msg_buf;
- pe_debug("Process Deauth Req on sessionID %d from: "
- QDF_MAC_ADDR_STR,
- mlm_deauth_req->sessionId,
- QDF_MAC_ADDR_ARRAY(mlm_deauth_req->peer_macaddr.bytes));
-
session = pe_find_session_by_session_id(mac_ctx,
mlm_deauth_req->sessionId);
if (!session) {
diff --git a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
index ba19d10..dbc9c83 100644
--- a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
@@ -971,8 +971,6 @@
return;
}
role = GET_LIM_SYSTEM_ROLE(session);
- pe_debug("*** Received Deauthentication from staId=%d role=%d***",
- deauth_ind->aid, role);
if (role == eLIM_STA_ROLE) {
session->limSmeState = eLIM_SME_WT_DEAUTH_STATE;
MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE,
@@ -1039,7 +1037,6 @@
}
if (pMlmDeauthCnf->resultCode == eSIR_SME_SUCCESS) {
pe_session->limSmeState = eLIM_SME_IDLE_STATE;
- pe_debug("*** Deauthenticated with BSS ***");
} else
pe_session->limSmeState =
pe_session->limPrevSmeState;
@@ -1564,7 +1561,6 @@
goto end;
}
if (vdev_stop_rsp->status == QDF_STATUS_SUCCESS) {
- pe_debug("STA received the DEL_BSS_RSP");
if (!sta) {
pe_err("DPH Entry for STA 1 missing");
status_code = eSIR_SME_REFUSED;
@@ -1577,8 +1573,7 @@
status_code = eSIR_SME_REFUSED;
goto end;
}
- pe_debug("STA AssocID %d MAC", sta->assocId);
- lim_print_mac_addr(mac, sta->staAddr, LOGD);
+ pe_debug("STA AssocID %d MAC %pM", sta->assocId, sta->staAddr);
} else {
pe_err("DEL BSS failed!");
status_code = eSIR_SME_STOP_BSS_FAILURE;
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index 250a278..0f77974 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -462,7 +462,6 @@
session->sap_dot11mc = sme_start_bss_req->sap_dot11mc;
session->vendor_vht_sap =
sme_start_bss_req->vendor_vht_sap;
- pe_debug("vendor_vht_sap %d", session->vendor_vht_sap);
lim_get_short_slot_from_phy_mode(mac_ctx, session, session->gLimPhyMode,
&session->shortSlotTimeSupported);
session->isCoalesingInIBSSAllowed =
@@ -562,7 +561,6 @@
NULL, 0, 0);
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
- pe_debug("Received START_BSS_REQ");
size = sizeof(*sme_start_bss_req);
sme_start_bss_req = qdf_mem_malloc(size);
if (!sme_start_bss_req) {
@@ -677,9 +675,6 @@
session->vhtCapability =
IS_DOT11_MODE_VHT(session->dot11mode);
- pe_debug("HT[%d], VHT[%d]",
- session->htCapability, session->vhtCapability);
-
if (IS_DOT11_MODE_HE(session->dot11mode)) {
lim_update_session_he_capable(mac_ctx, session);
lim_copy_bss_he_cap(session, sme_start_bss_req);
@@ -695,9 +690,8 @@
session->txLdpcIniFeatureEnabled =
sme_start_bss_req->txLdpcIniFeatureEnabled;
#ifdef WLAN_FEATURE_11W
- session->limRmfEnabled =
- sme_start_bss_req->pmfCapable ? 1 : 0;
- pe_debug("Session RMF enabled: %d", session->limRmfEnabled);
+ session->limRmfEnabled = sme_start_bss_req->pmfCapable ? 1 : 0;
+ pe_debug("RMF enabled: %d", session->limRmfEnabled);
#endif
qdf_mem_copy((void *)&session->rateSet,
@@ -752,8 +746,6 @@
break;
}
- pe_debug("persona - %d, nss - %d",
- session->opmode, session->vdev_nss);
session->nss = session->vdev_nss;
if (!mac_ctx->mlme_cfg->vht_caps.vht_cap_info.enable2x2)
session->nss = 1;
@@ -789,14 +781,9 @@
sme_start_bss_req->sec_ch_offset;
session->htRecommendedTxWidthSet =
(session->htSecondaryChannelOffset) ? 1 : 0;
- QDF_TRACE(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
- FL("cbMode %u"), sme_start_bss_req->cbMode);
if (lim_is_session_he_capable(session) ||
session->vhtCapability || session->htCapability) {
chanwidth = sme_start_bss_req->vht_channel_width;
- pe_debug("vht_channel_width %u htSupportedChannelWidthSet %d",
- sme_start_bss_req->vht_channel_width,
- session->htSupportedChannelWidthSet);
session->ch_width = chanwidth;
session->ch_center_freq_seg0 =
sme_start_bss_req->center_freq_seg0;
@@ -805,9 +792,6 @@
lim_update_he_bw_cap_mcs(session);
}
- pe_debug("vht su tx bformer %d",
- session->vht_config.su_beam_former);
-
/* Delete pre-auth list if any */
lim_delete_pre_auth_list(mac_ctx);
@@ -971,6 +955,13 @@
session->limPrevSmeState = session->limSmeState;
session->limSmeState = eLIM_SME_WT_START_BSS_STATE;
+
+ pe_debug("Freq %d width %d freq0 %d freq1 %d, dot11mode %d nss %d vendor vht %d",
+ session->curr_op_freq, session->ch_width,
+ session->ch_center_freq_seg0,
+ session->ch_center_freq_seg1,
+ session->dot11mode, session->vdev_nss,
+ session->vendor_vht_sap);
MTRACE(mac_trace
(mac_ctx, TRACE_CODE_SME_STATE,
session->peSessionId,
@@ -1620,12 +1611,14 @@
session->spectrumMgtEnabled = true;
session->isOSENConnection = sme_join_req->isOSENConnection;
- pe_debug("Smps %d: mode %d action %d, nss 1x1 %d vdev_nss %d nss %d cbMode %d width %d dot11mode %d subfer %d subfee %d csn %d is_cisco %d",
+ pe_debug("Freq %d width %d freq0 %d freq1 %d, Smps %d: mode %d action %d, nss 1x1 %d vdev_nss %d nss %d cbMode %d dot11mode %d subfer %d subfee %d csn %d is_cisco %d",
+ session->curr_op_freq, session->ch_width,
+ session->ch_center_freq_seg0,
+ session->ch_center_freq_seg1,
session->enableHtSmps, session->htSmpsvalue,
session->send_smps_action, session->supported_nss_1x1,
session->vdev_nss, session->nss,
- sme_join_req->cbMode, session->ch_width,
- session->dot11mode,
+ sme_join_req->cbMode, session->dot11mode,
session->vht_config.su_beam_former,
session->vht_config.su_beam_formee,
session->vht_config.csnof_beamformer_antSup,
@@ -2051,11 +2044,13 @@
disassocTrigger = eLIM_HOST_DISASSOC;
goto sendDisassoc;
}
- pe_debug("received DISASSOC_REQ message on sessionid %d Systemrole %d Reason: %u SmeState: %d from: "
- QDF_MAC_ADDR_STR, smesessionId,
- GET_LIM_SYSTEM_ROLE(pe_session), smeDisassocReq.reasonCode,
- mac->lim.gLimSmeState,
- QDF_MAC_ADDR_ARRAY(smeDisassocReq.peer_macaddr.bytes));
+ pe_debug("vdev %d (session %d) Systemrole %d Reason: %u SmeState: %d limMlmState %d ho fail %d send OTA %d from: "
+ QDF_MAC_ADDR_STR, pe_session->vdev_id, pe_session->peSessionId,
+ GET_LIM_SYSTEM_ROLE(pe_session), smeDisassocReq.reasonCode,
+ pe_session->limSmeState, pe_session->limMlmState,
+ smeDisassocReq.process_ho_fail,
+ smeDisassocReq.doNotSendOverTheAir,
+ QDF_MAC_ADDR_ARRAY(smeDisassocReq.peer_macaddr.bytes));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_REQ_EVENT, pe_session,
@@ -2063,7 +2058,6 @@
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
pe_session->smeSessionId = smesessionId;
- pe_debug("ho_fail: %d ", smeDisassocReq.process_ho_fail);
pe_session->process_ho_fail = smeDisassocReq.process_ho_fail;
switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
@@ -2071,8 +2065,6 @@
switch (pe_session->limSmeState) {
case eLIM_SME_ASSOCIATED_STATE:
case eLIM_SME_LINK_EST_STATE:
- pe_debug("Rcvd SME_DISASSOC_REQ in limSmeState: %d ",
- pe_session->limSmeState);
pe_session->limPrevSmeState =
pe_session->limSmeState;
pe_session->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
@@ -2094,7 +2086,6 @@
(mac, TRACE_CODE_SME_STATE,
pe_session->peSessionId,
pe_session->limSmeState));
- pe_debug("Rcvd SME_DISASSOC_REQ while in SME_WT_DEAUTH_STATE");
break;
case eLIM_SME_WT_DISASSOC_STATE:
@@ -2107,12 +2098,10 @@
* It will send a disassoc, which is ok. However, we can use the global flag
* sendDisassoc to not send disassoc frame.
*/
- pe_debug("Rcvd SME_DISASSOC_REQ while in SME_WT_DISASSOC_STATE");
break;
case eLIM_SME_JOIN_FAILURE_STATE: {
/* Already in Disconnected State, return success */
- pe_debug("Rcvd SME_DISASSOC_REQ while in eLIM_SME_JOIN_FAILURE_STATE");
if (mac->lim.gLimRspReqd) {
retCode = eSIR_SME_SUCCESS;
disassocTrigger = eLIM_HOST_DISASSOC;
@@ -2163,14 +2152,8 @@
disassocTrigger = eLIM_HOST_DISASSOC;
reasonCode = smeDisassocReq.reasonCode;
- if (smeDisassocReq.doNotSendOverTheAir) {
- pe_debug("do not send dissoc over the air");
+ if (smeDisassocReq.doNotSendOverTheAir)
send_disassoc_frame = 0;
- }
- /* Trigger Disassociation frame to peer MAC entity */
- pe_debug("Sending Disasscoc with disassoc Trigger"
- " : %d, reasonCode : %d",
- disassocTrigger, reasonCode);
pMlmDisassocReq = qdf_mem_malloc(sizeof(tLimMlmDisassocReq));
if (!pMlmDisassocReq)
@@ -2406,11 +2389,11 @@
deauth_trigger = eLIM_HOST_DEAUTH;
goto send_deauth;
}
- pe_debug("received DEAUTH_REQ vdev_id %d Systemrole %d reasoncode %u limSmestate %d from "
- QDF_MAC_ADDR_STR, vdev_id,
- GET_LIM_SYSTEM_ROLE(session_entry), sme_deauth_req.reasonCode,
- session_entry->limSmeState,
- QDF_MAC_ADDR_ARRAY(sme_deauth_req.peer_macaddr.bytes));
+ pe_debug("vdev %d (session %d) Systemrole %d reasoncode %u limSmestate %d limMlmState %d from "
+ QDF_MAC_ADDR_STR, vdev_id, session_entry->peSessionId,
+ GET_LIM_SYSTEM_ROLE(session_entry), sme_deauth_req.reasonCode,
+ session_entry->limSmeState, session_entry->limMlmState,
+ QDF_MAC_ADDR_ARRAY(sme_deauth_req.peer_macaddr.bytes));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM /* FEATURE_WLAN_DIAG_SUPPORT */
lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_DEAUTH_REQ_EVENT,
session_entry, 0, sme_deauth_req.reasonCode);
@@ -2449,7 +2432,6 @@
* was sent for deauth/disassoc frame.
*/
session_entry->limSmeState = eLIM_SME_WT_DEAUTH_STATE;
- pe_debug("Rcvd SME_DEAUTH_REQ while in SME_WT_DEAUTH_STATE");
break;
default:
/*
@@ -3430,7 +3412,6 @@
pe_err("vdev component object is NULL");
return;
}
- pe_debug("pe_session->ssidHidden %d", pe_session->ssidHidden);
mlme_obj->mgmt.ap.hidden_ssid = pe_session->ssidHidden ? true : false;
@@ -3919,9 +3900,9 @@
struct mgmt_frm_reg_info *next = NULL;
bool match = false;
- pe_debug("registerFrame %d, frameType %d, matchLen %d",
- sme_req->registerFrame, sme_req->frameType,
- sme_req->matchLen);
+ pe_nofl_debug("Register Frame: register %d, type %d, match length %d",
+ sme_req->registerFrame, sme_req->frameType,
+ sme_req->matchLen);
/* First check whether entry exists already */
qdf_mutex_acquire(&mac_ctx->lim.lim_frame_register_lock);
qdf_list_peek_front(&mac_ctx->lim.gLimMgmtFrameRegistratinQueue,
@@ -4542,10 +4523,8 @@
bool bufConsumed = true;
uint32_t *msg_buf = pMsg->bodyptr;
- pe_debug("LIM Received SME Message %s(%d) Global LimSmeState:%s(%d) Global LimMlmState: %s(%d)",
- lim_msg_str(pMsg->type), pMsg->type,
- lim_sme_state_str(mac->lim.gLimSmeState), mac->lim.gLimSmeState,
- lim_mlm_state_str(mac->lim.gLimMlmState), mac->lim.gLimMlmState);
+ pe_nofl_debug("LIM handle SME Msg %s(%d)",
+ lim_msg_str(pMsg->type), pMsg->type);
/* If no insert NOA required then execute the code below */
@@ -4921,12 +4900,10 @@
session_entry->channelChangeReasonCode =
LIM_SWITCH_CHANNEL_MONITOR;
- pe_debug("switch old chnl (freq) %d to new chnl %d, ch_bw %d, nw_type %d, dot11mode %d",
- session_entry->curr_op_freq,
- target_freq,
- ch_change_req->ch_width,
- ch_change_req->nw_type,
- ch_change_req->dot11mode);
+ pe_nofl_debug("SAP CSA: %d ---> %d, ch_bw %d, nw_type %d, dot11mode %d",
+ session_entry->curr_op_freq, target_freq,
+ ch_change_req->ch_width, ch_change_req->nw_type,
+ ch_change_req->dot11mode);
if (IS_DOT11_MODE_HE(ch_change_req->dot11mode) &&
((QDF_MONITOR_MODE == session_entry->opmode) ||
@@ -5628,7 +5605,6 @@
* become 0 and bcn template with new switchCount will be sent to
* firmware.
*/
- pe_debug("start ap_ecsa_timer for %d ms", MAX_WAIT_FOR_BCN_TX_COMPLETE);
status = qdf_mc_timer_start(&session_entry->ap_ecsa_timer,
MAX_WAIT_FOR_BCN_TX_COMPLETE);
if (QDF_IS_STATUS_ERROR(status))
diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c
index 5c974e3..7182cc4 100644
--- a/core/mac/src/pe/lim/lim_process_tdls.c
+++ b/core/mac/src/pe/lim/lim_process_tdls.c
@@ -2647,19 +2647,11 @@
sta = dph_lookup_hash_entry(mac, peerMac.bytes, &peerIdx,
&pe_session->dph.dphHashTable);
- if (sta && sta->staType == STA_ENTRY_TDLS_PEER) {
- pe_debug("DEL STA peer MAC: "QDF_MAC_ADDR_STR,
- QDF_MAC_ADDR_ARRAY(sta->staAddr));
-
- pe_debug("STA type: %x, resp_reqd: %d",
- sta->staType,
- resp_reqd);
-
+ if (sta && sta->staType == STA_ENTRY_TDLS_PEER)
status = lim_del_sta(mac, sta, resp_reqd, pe_session);
- } else {
+ else
pe_debug("TDLS peer "QDF_MAC_ADDR_STR" not found",
QDF_MAC_ADDR_ARRAY(peerMac.bytes));
- }
return status;
}
@@ -3104,7 +3096,6 @@
* (with that aid) entry from the hash table and add the aid
* in free pool
*/
- pe_debug("Delete all the TDLS peer connected");
for (i = 0; i < aid_bitmap_size / sizeof(uint32_t); i++) {
for (aid = 0; aid < (sizeof(uint32_t) << 3); aid++) {
if (!CHECK_BIT(session_entry->peerAIDBitmap[i], aid))
@@ -3130,9 +3121,6 @@
status = lim_tdls_del_sta(p_mac, mac_addr,
session_entry, false);
- if (status != QDF_STATUS_SUCCESS)
- pe_debug("peer " QDF_MAC_ADDR_STR " not found",
- QDF_MAC_ADDR_ARRAY(stads->staAddr));
dph_delete_hash_entry(p_mac,
stads->staAddr, stads->assocId,
@@ -3165,7 +3153,6 @@
QDF_STATUS lim_delete_tdls_peers(struct mac_context *mac_ctx,
struct pe_session *session_entry)
{
- pe_debug("Enter");
if (!session_entry) {
pe_err("NULL session_entry");
@@ -3192,7 +3179,6 @@
/* reset the set_state_disable flag */
session_entry->tdls_send_set_state_disable = true;
- pe_debug("Exit");
return QDF_STATUS_SUCCESS;
}
diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c
index b5deb26..231300e 100644
--- a/core/mac/src/pe/lim/lim_send_management_frames.c
+++ b/core/mac/src/pe/lim/lim_send_management_frames.c
@@ -1524,14 +1524,9 @@
status);
}
- if (subtype == LIM_ASSOC)
- pe_debug("*** Sending Assoc Resp status %d aid %d to",
- status_code, aid);
- else
- pe_debug("*** Sending ReAssoc Resp status %d aid %d to",
- status_code, aid);
-
- lim_print_mac_addr(mac_ctx, mac_hdr->da, LOGD);
+ pe_nofl_debug("Assoc rsp TX: vdev %d subtype %d to %pM seq num %d status %d aid %d",
+ pe_session->vdev_id, subtype, mac_hdr->da,
+ mac_ctx->mgmtSeqNum, status_code, aid);
if (addn_ie_len && addn_ie_len <= WNI_CFG_ASSOC_RSP_ADDNIE_DATA_LEN)
qdf_mem_copy(frame + sizeof(tSirMacMgmtHdr) + payload,
@@ -1742,7 +1737,7 @@
uint16_t reason_code;
struct mac_context *mac_ctx = (struct mac_context *)context;
- pe_nofl_info("Assoc TX %s",
+ pe_nofl_info("Assoc req TX: %s",
(tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK) ?
"success" : "fail");
@@ -2049,26 +2044,15 @@
mac_ctx->lim.htCapabilityPresentInBeacon) {
pe_debug("Populate HT Caps in Assoc Request");
populate_dot11f_ht_caps(mac_ctx, pe_session, &frm->HTCaps);
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
- &frm->HTCaps, sizeof(frm->HTCaps));
} else if (pe_session->he_with_wep_tkip) {
pe_debug("Populate HT Caps in Assoc Request with WEP/TKIP");
populate_dot11f_ht_caps(mac_ctx, NULL, &frm->HTCaps);
}
- pe_debug("SupportedChnlWidth: %d, mimoPS: %d, GF: %d, short GI20:%d, shortGI40: %d, dsssCck: %d, AMPDU Param: %x",
- frm->HTCaps.supportedChannelWidthSet,
- frm->HTCaps.mimoPowerSave,
- frm->HTCaps.greenField, frm->HTCaps.shortGI20MHz,
- frm->HTCaps.shortGI40MHz,
- frm->HTCaps.dsssCckMode40MHz,
- frm->HTCaps.maxRxAMPDUFactor);
if (pe_session->vhtCapability &&
pe_session->vhtCapabilityPresentInBeacon) {
pe_debug("Populate VHT IEs in Assoc Request");
populate_dot11f_vht_caps(mac_ctx, pe_session, &frm->VHTCaps);
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
- &frm->VHTCaps, sizeof(frm->VHTCaps));
vht_enabled = true;
if (pe_session->enableHtSmps &&
!pe_session->supported_nss_1x1) {
@@ -2217,9 +2201,6 @@
goto end;
}
rsnx_ie_len = rsnx_ie[1] + 2;
- pe_debug("RSNX_IE added to association request");
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
- rsnx_ie, rsnx_ie_len);
}
/*
@@ -2429,9 +2410,10 @@
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
pe_session->peSessionId, mac_hdr->fc.subType));
- pe_nofl_info("Assoc TX vdev %d to %pM seq num %d",
- pe_session->vdev_id, pe_session->bssId,
- mac_ctx->mgmtSeqNum);
+ pe_nofl_info("Assoc req TX: vdev %d to %pM seq num %d", pe_session->vdev_id,
+ pe_session->bssId, mac_ctx->mgmtSeqNum);
+ QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
+ frame, (uint16_t)(sizeof(tSirMacMgmtHdr) + payload));
min_rid = lim_get_min_session_txrate(pe_session);
lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_ASSOC_START_EVENT,
@@ -2550,7 +2532,7 @@
uint16_t auth_ack_status;
uint16_t reason_code;
- pe_nofl_info("Auth TX %s",
+ pe_nofl_info("Auth TX: %s",
(tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK) ?
"success" : "fail");
if (tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK) {
@@ -2846,7 +2828,7 @@
}
}
- pe_nofl_info("Auth TX seq %d seq num %d status %d WEP %d to " QDF_MAC_ADDR_STR,
+ pe_nofl_info("Auth TX: seq %d seq num %d status %d WEP %d to " QDF_MAC_ADDR_STR,
auth_frame->authTransactionSeqNumber, mac_ctx->mgmtSeqNum,
auth_frame->authStatusCode, mac_hdr->fc.wep,
QDF_MAC_ADDR_ARRAY(mac_hdr->da));
@@ -3291,11 +3273,10 @@
&nPayload, discon_ie);
mlme_free_self_disconnect_ies(pe_session->vdev);
- pe_debug("***Sessionid %d Sending Disassociation frame with "
- "reason %u and waitForAck %d to " QDF_MAC_ADDR_STR " ,From "
- QDF_MAC_ADDR_STR, pe_session->peSessionId, nReason,
- waitForAck, QDF_MAC_ADDR_ARRAY(pMacHdr->da),
- QDF_MAC_ADDR_ARRAY(pe_session->self_mac_addr));
+ pe_nofl_info("Disassoc TX: vdev %d seq %d reason %u and waitForAck %d to " QDF_MAC_ADDR_STR " From " QDF_MAC_ADDR_STR,
+ pe_session->vdev_id, mac->mgmtSeqNum, nReason, waitForAck,
+ QDF_MAC_ADDR_ARRAY(pMacHdr->da),
+ QDF_MAC_ADDR_ARRAY(pe_session->self_mac_addr));
if (wlan_reg_is_5ghz_ch_freq(pe_session->curr_op_freq) ||
pe_session->opmode == QDF_P2P_CLIENT_MODE ||
@@ -3480,9 +3461,8 @@
&nPayload, discon_ie);
mlme_free_self_disconnect_ies(pe_session->vdev);
- pe_nofl_info("vdev %d Deauth TX seq_num %d reason %u to " QDF_MAC_ADDR_STR
- " from " QDF_MAC_ADDR_STR,
- pe_session->vdev_id, mac->mgmtSeqNum, nReason,
+ pe_nofl_info("Deauth TX: vdev %d seq_num %d reason %u waitForAck %d to " QDF_MAC_ADDR_STR " from " QDF_MAC_ADDR_STR,
+ pe_session->vdev_id, mac->mgmtSeqNum, nReason, waitForAck,
QDF_MAC_ADDR_ARRAY(pMacHdr->da),
QDF_MAC_ADDR_ARRAY(pe_session->self_mac_addr));
@@ -3992,7 +3972,6 @@
ch_spacing = wlan_reg_dmn_get_chanwidth_from_opclass(
mac_ctx->scan.countryCodeCurrent, new_channel,
new_op_class);
- pe_debug("wrapper: ch_spacing %hu", ch_spacing);
if ((ch_spacing == 80) || (ch_spacing == 160)) {
wide_bw_ie = &session_entry->gLimWiderBWChannelSwitch;
@@ -4061,12 +4040,12 @@
session_entry->opmode == QDF_P2P_GO_MODE)
txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
- pe_debug("Send Ext channel Switch to :"QDF_MAC_ADDR_STR" with swcount %d, swmode %d , newchannel %d newops %d",
- QDF_MAC_ADDR_ARRAY(mac_hdr->da),
- frm.ext_chan_switch_ann_action.switch_count,
- frm.ext_chan_switch_ann_action.switch_mode,
- frm.ext_chan_switch_ann_action.new_channel,
- frm.ext_chan_switch_ann_action.op_class);
+ pe_debug("ECSA frame to :"QDF_MAC_ADDR_STR" count %d mode %d chan %d op class %d",
+ QDF_MAC_ADDR_ARRAY(mac_hdr->da),
+ frm.ext_chan_switch_ann_action.switch_count,
+ frm.ext_chan_switch_ann_action.switch_mode,
+ frm.ext_chan_switch_ann_action.new_channel,
+ frm.ext_chan_switch_ann_action.op_class);
MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
session_entry->peSessionId, mac_hdr->fc.subType));
diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
index 0e6a32f..cb40b41 100644
--- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
@@ -1443,11 +1443,6 @@
ap_new_ch_width = csa_params->new_ch_width + 1;
- pe_debug("new channel: %d new_ch_width: %d seg0: %d seg1: %d",
- csa_params->channel, ap_new_ch_width,
- csa_params->new_ch_freq_seg1,
- csa_params->new_ch_freq_seg2);
-
if ((ap_new_ch_width != CH_WIDTH_80MHZ) &&
(ap_new_ch_width != CH_WIDTH_160MHZ) &&
(ap_new_ch_width != CH_WIDTH_80P80MHZ)) {
@@ -1546,11 +1541,6 @@
chnl_switch_info->newChanWidth = ap_new_ch_width;
}
prnt_log:
- pe_debug("new channel: %d new_ch_width: %d seg0: %d seg1: %d",
- csa_params->channel,
- chnl_switch_info->newChanWidth,
- chnl_switch_info->newCenterChanFreq0,
- chnl_switch_info->newCenterChanFreq1);
return QDF_STATUS_SUCCESS;
}
@@ -1578,8 +1568,6 @@
tLimWiderBWChannelSwitchInfo *chnl_switch_info = NULL;
tLimChannelSwitchInfo *lim_ch_switch = NULL;
- pe_debug("handle csa offload msg");
-
if (!csa_params) {
pe_err("limMsgQ body ptr is NULL");
return;
@@ -1641,21 +1629,12 @@
mac_ctx->roam.configParam.channelBondingMode5GHz;
}
- pe_debug("vht: %d ht: %d he %d flag: %x chan: %d, sec_ch_offset %d cbmode %d",
+ pe_debug("Session %d vdev %d: vht: %d ht: %d he %d cbmode %d",
+ session_entry->peSessionId, session_entry->vdev_id,
session_entry->vhtCapability,
session_entry->htSupportedChannelWidthSet,
lim_is_session_he_capable(session_entry),
- csa_params->ies_present_flag,
- csa_params->channel,
- csa_params->sec_chan_offset,
channel_bonding_mode);
- pe_debug("freq %d seg1: %d seg2: %d width: %d country: %s class: %d",
- csa_params->csa_chan_freq,
- csa_params->new_ch_freq_seg1,
- csa_params->new_ch_freq_seg2,
- csa_params->new_ch_width,
- mac_ctx->scan.countryCodeCurrent,
- csa_params->new_op_class);
session_entry->htSupportedChannelWidthSet = false;
@@ -1666,7 +1645,6 @@
(QDF_STATUS_SUCCESS == lim_process_csa_wbw_ie(mac_ctx,
csa_params, chnl_switch_info,
session_entry))) {
- pe_debug("CSA wide BW IE process successful");
lim_ch_switch->sec_ch_offset =
PHY_SINGLE_CHANNEL_CENTERED;
if (chnl_switch_info->newChanWidth) {
@@ -1811,9 +1789,14 @@
session_entry->htSupportedChannelWidthSet = true;
}
}
- pe_debug("new ch width: %d space: %d new ht width %d",
- session_entry->gLimChannelSwitch.ch_width, chan_space,
- session_entry->htSupportedChannelWidthSet);
+ pe_debug("new ch %d freq %d width: %d freq0 %d freq1 %d ht width %d",
+ session_entry->gLimChannelSwitch.primaryChannel,
+ session_entry->gLimChannelSwitch.sw_target_freq,
+ session_entry->gLimChannelSwitch.ch_width,
+ session_entry->gLimChannelSwitch.ch_center_freq_seg0,
+ session_entry->gLimChannelSwitch.ch_center_freq_seg1,
+ session_entry->gLimChannelSwitch.sec_ch_offset);
+
if (session_entry->curr_op_freq == csa_params->csa_chan_freq &&
session_entry->ch_width ==
session_entry->gLimChannelSwitch.ch_width) {
diff --git a/core/mac/src/pe/lim/lim_session.c b/core/mac/src/pe/lim/lim_session.c
index ec6fa16..abc8b87 100644
--- a/core/mac/src/pe/lim/lim_session.c
+++ b/core/mac/src/pe/lim/lim_session.c
@@ -1035,8 +1035,7 @@
}
}
- pe_debug("Session lookup fails for Peer StaId:");
- lim_print_mac_addr(mac, sa, LOGD);
+ pe_debug("Session lookup fails for Peer StaId: %pM", sa);
return NULL;
}
diff --git a/core/mac/src/pe/lim/lim_trace.c b/core/mac/src/pe/lim/lim_trace.c
index 99f7622..3077b81 100644
--- a/core/mac/src/pe/lim/lim_trace.c
+++ b/core/mac/src/pe/lim/lim_trace.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -115,139 +115,139 @@
switch (pRecord->code) {
case TRACE_CODE_MLM_STATE:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "MLM State:",
- lim_trace_get_mlm_state_string(
- (uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "MLM State:",
+ lim_trace_get_mlm_state_string(
+ (uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_SME_STATE:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "SME State:",
- lim_trace_get_sme_state_string(
- (uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "SME State:",
+ lim_trace_get_sme_state_string(
+ (uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_TX_MGMT:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "TX Mgmt:", frameSubtypeStr[pRecord->data],
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "TX Mgmt:", frameSubtypeStr[pRecord->data],
+ pRecord->data);
break;
case TRACE_CODE_RX_MGMT:
if (LIM_TRACE_MAX_SUBTYPES <=
LIM_TRACE_GET_SUBTYPE(pRecord->data))
- pe_debug("Wrong Subtype - %d",
- LIM_TRACE_GET_SUBTYPE(pRecord->data));
+ pe_nofl_debug("Wrong Subtype - %d",
+ LIM_TRACE_GET_SUBTYPE(pRecord->data));
else
- pe_debug("%04d %012llu %s S%d %-14s %-30s(%d) SN: %d",
- recIndex, pRecord->qtime, pRecord->time,
- pRecord->session, "RX Mgmt:",
- frameSubtypeStr[LIM_TRACE_GET_SUBTYPE
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(%d) SN: %d",
+ recIndex, pRecord->qtime, pRecord->time,
+ pRecord->session, "RX Mgmt:",
+ frameSubtypeStr[LIM_TRACE_GET_SUBTYPE
(pRecord->data)],
- LIM_TRACE_GET_SUBTYPE(pRecord->data),
- LIM_TRACE_GET_SSN(pRecord->data));
+ LIM_TRACE_GET_SUBTYPE(pRecord->data),
+ LIM_TRACE_GET_SSN(pRecord->data));
break;
case TRACE_CODE_RX_MGMT_DROP:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(%d)",
- recIndex, pRecord->qtime, pRecord->time,
- pRecord->session, "Drop RX Mgmt:",
- __lim_trace_get_mgmt_drop_reason_string(
- (uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(%d)",
+ recIndex, pRecord->qtime, pRecord->time,
+ pRecord->session, "Drop RX Mgmt:",
+ __lim_trace_get_mgmt_drop_reason_string(
+ (uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_RX_MGMT_TSF:
- pe_debug("%04d %012llu %s S%d %-14s %-30s0x%x(%d)",
- recIndex, pRecord->qtime, pRecord->time,
- pRecord->session, "RX Mgmt TSF:", " ",
- pRecord->data, pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s0x%x(%d)",
+ recIndex, pRecord->qtime, pRecord->time,
+ pRecord->session, "RX Mgmt TSF:", " ",
+ pRecord->data, pRecord->data);
break;
case TRACE_CODE_TX_COMPLETE:
- pe_debug("%04d %012llu %s S%d %-14s %d", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "TX Complete", pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %d", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "TX Complete", pRecord->data);
break;
case TRACE_CODE_TX_SME_MSG:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "TX SME Msg:",
- mac_trace_get_sme_msg_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "TX SME Msg:",
+ mac_trace_get_sme_msg_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_RX_SME_MSG:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- LIM_TRACE_GET_DEFRD_OR_DROPPED(
- pRecord->data) ? "Def/Drp LIM Msg:" : "RX Sme Msg:",
- mac_trace_get_sme_msg_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ LIM_TRACE_GET_DEFRD_OR_DROPPED(
+ pRecord->data) ? "Def/Drp LIM Msg:" : "RX Sme Msg:",
+ mac_trace_get_sme_msg_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_TX_WMA_MSG:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "TX WMA Msg:",
- mac_trace_get_wma_msg_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "TX WMA Msg:",
+ mac_trace_get_wma_msg_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_RX_WMA_MSG:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- LIM_TRACE_GET_DEFRD_OR_DROPPED(
- pRecord->data) ? "Def/Drp LIM Msg:" : "RX WMA Msg:",
- mac_trace_get_wma_msg_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ LIM_TRACE_GET_DEFRD_OR_DROPPED(
+ pRecord->data) ? "Def/Drp LIM Msg:" : "RX WMA Msg:",
+ mac_trace_get_wma_msg_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_TX_LIM_MSG:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "TX LIM Msg:",
- mac_trace_get_lim_msg_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "TX LIM Msg:",
+ mac_trace_get_lim_msg_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_RX_LIM_MSG:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- LIM_TRACE_GET_DEFRD_OR_DROPPED(
- pRecord->data) ? "Def/Drp LIM Msg:" : "RX LIM Msg",
- mac_trace_get_lim_msg_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ LIM_TRACE_GET_DEFRD_OR_DROPPED(
+ pRecord->data) ? "Def/Drp LIM Msg:" : "RX LIM Msg",
+ mac_trace_get_lim_msg_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_TIMER_ACTIVATE:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "Timer Actvtd",
- __lim_trace_get_timer_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "Timer Actvtd",
+ __lim_trace_get_timer_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_TIMER_DEACTIVATE:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
- pRecord->qtime, pRecord->time, pRecord->session,
- "Timer DeActvtd",
- __lim_trace_get_timer_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+ pRecord->qtime, pRecord->time, pRecord->session,
+ "Timer DeActvtd",
+ __lim_trace_get_timer_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
case TRACE_CODE_INFO_LOG:
- pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
- recIndex, pRecord->qtime, pRecord->time,
- pRecord->session, "INFORMATION_LOG",
- mac_trace_get_info_log_string((uint16_t) pRecord->data),
- pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+ recIndex, pRecord->qtime, pRecord->time,
+ pRecord->session, "INFORMATION_LOG",
+ mac_trace_get_info_log_string((uint16_t)pRecord->data),
+ pRecord->data);
break;
default:
- pe_debug("%04d %012llu %s S%d %-14s(%d) (0x%x)",
- recIndex, pRecord->qtime, pRecord->time,
- pRecord->session, "Unknown Code",
- pRecord->code, pRecord->data);
+ pe_nofl_debug("%04d %012llu %s S%d %-14s(%d) (0x%x)",
+ recIndex, pRecord->qtime, pRecord->time,
+ pRecord->session, "Unknown Code",
+ pRecord->code, pRecord->data);
break;
}
}
diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c
index 6af1067..8ff8277 100644
--- a/core/mac/src/pe/lim/lim_utils.c
+++ b/core/mac/src/pe/lim/lim_utils.c
@@ -359,7 +359,7 @@
case eWNI_SME_HW_MODE_TRANS_IND:
return "eWNI_SME_HW_MODE_TRANS_IND";
default:
- return "INVALID SME message";
+ return "Unknown";
}
}
@@ -428,7 +428,7 @@
return "eSIR_SME_HAL_SEND_MESSAGE_FAIL";
default:
- return "INVALID resultCode";
+ return "Unknown resultCode";
}
}
@@ -710,7 +710,7 @@
cds_flush_logs(WLAN_LOG_TYPE_NON_FATAL,
WLAN_LOG_INDICATOR_HOST_DRIVER,
WLAN_LOG_REASON_QUEUE_FULL,
- true, false);
+ false, false);
} else {
mac_ctx->lim.deferredMsgCnt++;
}
@@ -1880,7 +1880,6 @@
}
switch (pe_session->gLimChannelSwitch.state) {
case eLIM_CHANNEL_SWITCH_PRIMARY_ONLY:
- pe_warn("CHANNEL_SWITCH_PRIMARY_ONLY");
lim_switch_primary_channel(mac,
pe_session->gLimChannelSwitch.
sw_target_freq, pe_session);
@@ -1888,7 +1887,6 @@
eLIM_CHANNEL_SWITCH_IDLE;
break;
case eLIM_CHANNEL_SWITCH_PRIMARY_AND_SECONDARY:
- pe_warn("CHANNEL_SWITCH_PRIMARY_AND_SECONDARY");
lim_switch_primary_secondary_channel(mac, pe_session,
pe_session->gLimChannelSwitch.sw_target_freq,
pe_session->gLimChannelSwitch.ch_center_freq_seg0,
@@ -2217,16 +2215,6 @@
pe_session->gLimChannelSwitch.ch_center_freq_seg1;
pSirSmeSwitchChInd->status = status;
- pe_debug(
- "session: %d freq: %d width: %d sec offset: %d seg0: %d seg1: %d status %d",
- pSirSmeSwitchChInd->sessionId,
- pSirSmeSwitchChInd->freq,
- pSirSmeSwitchChInd->chan_params.ch_width,
- pSirSmeSwitchChInd->chan_params.sec_ch_offset,
- pSirSmeSwitchChInd->chan_params.center_freq_seg0,
- pSirSmeSwitchChInd->chan_params.center_freq_seg1,
- status);
-
qdf_mem_copy(pSirSmeSwitchChInd->bssid.bytes, pe_session->bssId,
QDF_MAC_ADDR_SIZE);
mmhMsg.bodyptr = pSirSmeSwitchChInd;
@@ -2245,8 +2233,7 @@
uint32_t new_channel_freq,
struct pe_session *pe_session)
{
- pe_debug("old chnl freq: %d --> new chnl freq: %d",
- pe_session->curr_op_freq,
+ pe_debug("freq: %d --> freq: %d", pe_session->curr_op_freq,
new_channel_freq);
pe_session->curr_req_chan_freq = new_channel_freq;
@@ -2282,14 +2269,13 @@
/* Store the new primary and secondary channel in session entries if different */
if (pe_session->curr_op_freq != new_channel_freq) {
- pe_warn("switch old chnl freq: %d --> new chnl freq: %d",
- pe_session->curr_op_freq,
+ pe_warn("freq: %d --> freq: %d", pe_session->curr_op_freq,
new_channel_freq);
pe_session->curr_op_freq = new_channel_freq;
}
if (pe_session->htSecondaryChannelOffset !=
pe_session->gLimChannelSwitch.sec_ch_offset) {
- pe_warn("switch old sec chnl: %d --> new sec chnl: %d",
+ pe_warn("HT sec chnl: %d --> HT sec chnl: %d",
pe_session->htSecondaryChannelOffset,
pe_session->gLimChannelSwitch.sec_ch_offset);
pe_session->htSecondaryChannelOffset =
@@ -5756,6 +5742,9 @@
status = lim_send_he_caps_ie(mac_ctx, session, vdev_id);
+ if (QDF_IS_STATUS_SUCCESS(status))
+ status = lim_send_he_6g_band_caps_ie(mac_ctx, session, vdev_id);
+
return status;
}
@@ -5985,9 +5974,6 @@
pe_err("dot11f_unpack Parse Error");
return QDF_STATUS_E_FAILURE;
}
- if (dst->num_classes)
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
- &dst->classes[0], dst->num_classes);
return QDF_STATUS_SUCCESS;
}
@@ -6942,174 +6928,99 @@
if (!he_cap->present)
return;
- pe_debug("HE Capabilities:");
+ pe_nofl_debug("HE Capabilities: htc_he 0x%x twt_req 0x%x twt_res 0x%x fragmentation 0x%x max frag msdu amsdu 0x%x min frag 0x%x",
+ he_cap->htc_he, he_cap->twt_request,
+ he_cap->twt_responder, he_cap->fragmentation,
+ he_cap->max_num_frag_msdu_amsdu_exp,
+ he_cap->min_frag_size);
+ pe_nofl_debug("\ttrig frm mac pad 0x%x multi tid aggr supp 0x%x link adaptaion 0x%x all ack 0x%x trigd_rsp_sched 0x%x a_bsr 0x%x",
+ he_cap->trigger_frm_mac_pad,
+ he_cap->multi_tid_aggr_rx_supp,
+ he_cap->he_link_adaptation, he_cap->all_ack,
+ he_cap->trigd_rsp_sched, he_cap->a_bsr);
+ pe_nofl_debug("\tBC twt 0x%x ba_32bit_bitmap supp 0x%x mu_cascade 0x%x ack_enabled_multitid 0x%x omi_a_ctrl 0x%x ofdma_ra 0x%x",
+ he_cap->broadcast_twt, he_cap->ba_32bit_bitmap,
+ he_cap->mu_cascade, he_cap->ack_enabled_multitid,
+ he_cap->omi_a_ctrl, he_cap->ofdma_ra);
+ pe_nofl_debug("\tmax_ampdu_len exp ext 0x%x amsdu_frag 0x%x flex_twt_sched 0x%x rx_ctrl frm 0x%x bsrp_ampdu_aggr 0x%x qtp 0x%x a_bqr 0x%x",
+ he_cap->max_ampdu_len_exp_ext, he_cap->amsdu_frag,
+ he_cap->flex_twt_sched, he_cap->rx_ctrl_frame,
+ he_cap->bsrp_ampdu_aggr, he_cap->qtp, he_cap->a_bqr);
+ pe_nofl_debug("\tSR Reponder 0x%x ndp_feedback 0x%x ops_supp 0x%x amsdu_in_ampdu 0x%x multi_tid_aggr_tx 0x%x he_sub_ch_sel_tx 0x%x",
+ he_cap->spatial_reuse_param_rspder,
+ he_cap->ndp_feedback_supp,
+ he_cap->ops_supp, he_cap->amsdu_in_ampdu,
+ he_cap->multi_tid_aggr_tx_supp,
+ he_cap->he_sub_ch_sel_tx_supp);
- /* HE MAC capabilities */
- pe_debug("\tHTC-HE conrol: 0x%01x", he_cap->htc_he);
- pe_debug("\tTWT Requestor support: 0x%01x",
- he_cap->twt_request);
- pe_debug("\tTWT Responder support: 0x%01x",
- he_cap->twt_responder);
- pe_debug("\tFragmentation support: 0x%02x",
- he_cap->fragmentation);
- pe_debug("\tMax no.of frag MSDUs: 0x%03x",
- he_cap->max_num_frag_msdu_amsdu_exp);
- pe_debug("\tMin. frag size: 0x%02x", he_cap->min_frag_size);
- pe_debug("\tTrigger MAC pad duration: 0x%02x",
- he_cap->trigger_frm_mac_pad);
- pe_debug("\tMulti-TID aggr Rx support: 0x%03x",
- he_cap->multi_tid_aggr_rx_supp);
- pe_debug("\tLink adaptation: 0x%02x",
- he_cap->he_link_adaptation);
- pe_debug("\tAll ACK support: 0x%01x", he_cap->all_ack);
- pe_debug("\tTriggered resp. scheduling: 0x%01x",
- he_cap->trigd_rsp_sched);
- pe_debug("\tA-Buff status report: 0x%01x", he_cap->a_bsr);
- pe_debug("\tBroadcast TWT support: 0x%01x",
- he_cap->broadcast_twt);
- pe_debug("\t32bit BA bitmap support: 0x%01x",
- he_cap->ba_32bit_bitmap);
- pe_debug("\tMU Cascading support: 0x%01x",
- he_cap->mu_cascade);
- pe_debug("\tACK enabled Multi-TID: 0x%01x",
- he_cap->ack_enabled_multitid);
- pe_debug("\tOMI A-Control support: 0x%01x",
- he_cap->omi_a_ctrl);
- pe_debug("\tOFDMA RA support: 0x%01x", he_cap->ofdma_ra);
- pe_debug("\tMax A-MPDU Length: 0x%02x",
- he_cap->max_ampdu_len_exp_ext);
- pe_debug("\tA-MSDU Fragmentation: 0x%01x",
- he_cap->amsdu_frag);
- pe_debug("\tFlex. TWT sched support: 0x%01x",
- he_cap->flex_twt_sched);
- pe_debug("\tRx Ctrl frame to MBSS: 0x%01x",
- he_cap->rx_ctrl_frame);
- pe_debug("\tBSRP A-MPDU Aggregation: 0x%01x",
- he_cap->bsrp_ampdu_aggr);
- pe_debug("\tQuite Time Period support: 0x%01x", he_cap->qtp);
- pe_debug("\tA-BQR support: 0x%01x", he_cap->a_bqr);
- pe_debug("\tSR Reponder support: 0x%01x",
- he_cap->spatial_reuse_param_rspder);
- pe_debug("\tNDP Feedback support: 0x%01x", he_cap->ndp_feedback_supp);
- pe_debug("\tOPS support: 0x%01x", he_cap->ops_supp);
- pe_debug("\tAMSDU in AMPDU: 0x%01x", he_cap->amsdu_in_ampdu);
- pe_debug("\tMulti-TID aggr Tx support: 0x%03x",
- he_cap->multi_tid_aggr_tx_supp);
- pe_debug("\tHE sub ch sel tx supp: 0x%01x",
- he_cap->he_sub_ch_sel_tx_supp);
- pe_debug("\tUL 2x996 tone RU supp: 0x%01x",
- he_cap->ul_2x996_tone_ru_supp);
- pe_debug("\tOM ctrl UL MU data dis rx supp: 0x%01x",
- he_cap->om_ctrl_ul_mu_data_dis_rx);
- pe_debug("\tHE dynamic SMPS supp: 0x%01x",
- he_cap->he_dynamic_smps);
- pe_debug("\tPunctured sounding supp: 0x%01x",
- he_cap->punctured_sounding_supp);
- pe_debug("\tHT VHT Trigger frame Rx supp: 0x%01x",
- he_cap->ht_vht_trg_frm_rx_supp);
- /* HE PHY capabilities */
+ pe_nofl_debug("\tul_2x996_tone_ru 0x%x om_ctrl_ul_mu_data_dis_rx 0x%x dynamic_smps 0x%x punctured_sounding 0x%x ht_vht_trg_frm_rx 0x%x",
+ he_cap->ul_2x996_tone_ru_supp,
+ he_cap->om_ctrl_ul_mu_data_dis_rx,
+ he_cap->he_dynamic_smps, he_cap->punctured_sounding_supp,
+ he_cap->ht_vht_trg_frm_rx_supp);
+
chan_width = HE_CH_WIDTH_COMBINE(he_cap->chan_width_0,
he_cap->chan_width_1, he_cap->chan_width_2,
he_cap->chan_width_3, he_cap->chan_width_4,
he_cap->chan_width_5, he_cap->chan_width_6);
- pe_debug("\tChannel width support: 0x%07x", chan_width);
- pe_debug("\tPreamble puncturing Rx: 0x%04x",
- he_cap->rx_pream_puncturing);
- pe_debug("\tClass of device: 0x%01x", he_cap->device_class);
- pe_debug("\tLDPC coding support: 0x%01x",
- he_cap->ldpc_coding);
- pe_debug("\tLTF and GI for HE PPDUs: 0x%02x",
- he_cap->he_1x_ltf_800_gi_ppdu);
- pe_debug("\tMidamble TX Rx MAX NSTS: 0x%02x",
- he_cap->midamble_tx_rx_max_nsts);
- pe_debug("\tLTF and GI for NDP: 0x%02x",
- he_cap->he_4x_ltf_3200_gi_ndp);
- pe_debug("\tSTBC Tx support (<= 80MHz): 0x%01x",
- he_cap->tb_ppdu_tx_stbc_lt_80mhz);
- pe_debug("\tSTBC Rx support (<= 80MHz): 0x%01x",
- he_cap->rx_stbc_lt_80mhz);
- pe_debug("\tDoppler support: 0x%02x", he_cap->doppler);
- pe_debug("\tUL MU: 0x%02x", he_cap->ul_mu);
- pe_debug("\tDCM encoding Tx: 0x%03x", he_cap->dcm_enc_tx);
- pe_debug("\tDCM encoding Rx: 0x%03x", he_cap->dcm_enc_rx);
- pe_debug("\tHE MU PPDU payload support: 0x%01x",
- he_cap->ul_he_mu);
- pe_debug("\tSU Beamformer: 0x%01x", he_cap->su_beamformer);
- pe_debug("\tSU Beamformee: 0x%01x", he_cap->su_beamformee);
- pe_debug("\tMU Beamformer: 0x%01x", he_cap->mu_beamformer);
- pe_debug("\tBeamformee STS for <= 80Mhz: 0x%03x",
- he_cap->bfee_sts_lt_80);
- pe_debug("\tBeamformee STS for > 80Mhz: 0x%03x",
- he_cap->bfee_sts_gt_80);
- pe_debug("\tNo. of sounding dim <= 80Mhz: 0x%03x",
- he_cap->num_sounding_lt_80);
- pe_debug("\tNo. of sounding dim > 80Mhz: 0x%03x",
- he_cap->num_sounding_gt_80);
- pe_debug("\tNg=16 for SU feedback support: 0x%01x",
- he_cap->su_feedback_tone16);
- pe_debug("\tNg=16 for MU feedback support: 0x%01x",
- he_cap->mu_feedback_tone16);
- pe_debug("\tCodebook size for SU: 0x%01x",
- he_cap->codebook_su);
- pe_debug("\tCodebook size for MU: 0x%01x ",
- he_cap->codebook_mu);
- pe_debug("\tBeamforming trigger w/ Trigger: 0x%01x",
- he_cap->beamforming_feedback);
- pe_debug("\tHE ER SU PPDU payload: 0x%01x",
- he_cap->he_er_su_ppdu);
- pe_debug("\tDL MUMIMO on partial BW: 0x%01x",
- he_cap->dl_mu_mimo_part_bw);
- pe_debug("\tPPET present: 0x%01x", he_cap->ppet_present);
- pe_debug("\tSRP based SR-support: 0x%01x", he_cap->srp);
- pe_debug("\tPower boost factor: 0x%01x", he_cap->power_boost);
- pe_debug("\t4x HE LTF support: 0x%01x", he_cap->he_ltf_800_gi_4x);
- pe_debug("\tSTBC Tx support (> 80MHz): 0x%01x",
- he_cap->tb_ppdu_tx_stbc_gt_80mhz);
- pe_debug("\tSTBC Rx support (> 80MHz): 0x%01x",
- he_cap->rx_stbc_gt_80mhz);
- pe_debug("\tMax Nc: 0x%03x", he_cap->max_nc);
- pe_debug("\tER 4x HE LTF support: 0x%01x", he_cap->er_he_ltf_800_gi_4x);
- pe_debug("\tHE ppdu 20 in 40M in 2.4G: 0x%01x",
- he_cap->he_ppdu_20_in_40Mhz_2G);
- pe_debug("\tHE ppdu 20 in 160 and 80p80: 0x%01x",
- he_cap->he_ppdu_20_in_160_80p80Mhz);
- pe_debug("\tHE ppdu 80 in 160 and 80p80: 0x%01x",
- he_cap->he_ppdu_80_in_160_80p80Mhz);
- pe_debug("\tER 1x HE LTF GI support: 0x%01x",
- he_cap->er_1x_he_ltf_gi);
- pe_debug("\tmidamble txrx 1x he LTF: 0x%01x",
- he_cap->midamble_tx_rx_1x_he_ltf);
- pe_debug("\tDCM max BW: 0x%02x",
- he_cap->dcm_max_bw);
- pe_debug("\tlonger_than_16_he_sigb_ofdm_sym: 0x%01x",
- he_cap->longer_than_16_he_sigb_ofdm_sym);
- pe_debug("\tnon_trig_cqi_feedback: 0x%01x",
- he_cap->non_trig_cqi_feedback);
- pe_debug("\ttx_1024_qam_lt_242_tone_ru: 0x%01x",
- he_cap->tx_1024_qam_lt_242_tone_ru);
- pe_debug("\trx_1024_qam_lt_242_tone_ru: 0x%01x",
- he_cap->rx_1024_qam_lt_242_tone_ru);
- pe_debug("\trx_full_bw_su_he_mu_compress_sigb: 0x%01x",
- he_cap->rx_full_bw_su_he_mu_compress_sigb);
- pe_debug("\trx_full_bw_su_he_mu_non_cmpr_sigb: 0x%01x",
- he_cap->rx_full_bw_su_he_mu_non_cmpr_sigb);
- pe_debug("\tRx MCS map for <= 80 Mhz: 0x%04x",
- he_cap->rx_he_mcs_map_lt_80);
- pe_debug("\tTx MCS map for <= 80 Mhz: 0x%04x",
- he_cap->tx_he_mcs_map_lt_80);
- pe_debug("\tRx MCS map for <= 160 Mhz: 0x%04x",
- *((uint16_t *)he_cap->rx_he_mcs_map_160));
- pe_debug("\tTx MCS map for <= 160 Mhz: 0x%04x",
- *((uint16_t *)he_cap->tx_he_mcs_map_160));
- pe_debug("\tRx MCS map for <= 80+80 Mhz: 0x%04x",
- *((uint16_t *)he_cap->rx_he_mcs_map_80_80));
- pe_debug("\tTx MCS map for <= 80+80 Mhz: 0x%04x",
- *((uint16_t *)he_cap->tx_he_mcs_map_80_80));
+ pe_nofl_debug("\tchan width %d rx_pream_puncturing 0x%x device_class 0x%x ldpc_coding 0x%x 1x_ltf_800_gi_ppdu 0x%x midamble_tx_rx_max_nsts 0x%x",
+ chan_width, he_cap->rx_pream_puncturing,
+ he_cap->device_class,
+ he_cap->ldpc_coding, he_cap->he_1x_ltf_800_gi_ppdu,
+ he_cap->midamble_tx_rx_max_nsts);
+
+ pe_nofl_debug("\t4x_ltf_3200_gi_ndp 0x%x tb_ppdu_tx_stbc_lt_80mhz 0x%x rx_stbc_lt_80mhz 0x%x doppler 0x%x ul_mu 0x%x dcm_enc_tx 0x%x dcm_enc_rx 0x%x",
+ he_cap->he_4x_ltf_3200_gi_ndp,
+ he_cap->tb_ppdu_tx_stbc_lt_80mhz,
+ he_cap->rx_stbc_lt_80mhz, he_cap->doppler, he_cap->ul_mu,
+ he_cap->dcm_enc_tx, he_cap->dcm_enc_rx);
+
+ pe_nofl_debug("\tul_he_mu 0x%x su_bfer 0x%x su_fee 0x%x mu_bfer 0x%x bfee_sts_lt_80 0x%x bfee_sts_gt_80 0x%x num_sd_lt_80 0x%x num_sd_gt_80 0x%x",
+ he_cap->ul_he_mu, he_cap->su_beamformer,
+ he_cap->su_beamformee,
+ he_cap->mu_beamformer, he_cap->bfee_sts_lt_80,
+ he_cap->bfee_sts_gt_80, he_cap->num_sounding_lt_80,
+ he_cap->num_sounding_gt_80);
+
+ pe_nofl_debug("\tsu_fb_tone16 0x%x mu_fb_tone16 0x%x codebook_su 0x%x codebook_mu 0x%x bforming_feedback 0x%x he_er_su_ppdu 0x%x dl_mu_mimo_part_bw 0x%x",
+ he_cap->su_feedback_tone16, he_cap->mu_feedback_tone16,
+ he_cap->codebook_su, he_cap->codebook_mu,
+ he_cap->beamforming_feedback, he_cap->he_er_su_ppdu,
+ he_cap->dl_mu_mimo_part_bw);
+
+ pe_nofl_debug("\tppet_present 0x%x srp 0x%x power_boost 0x%x ltf_800_gi_4x 0x%x tb_ppdu_tx_stbc_gt_80mhz 0x%x rx_stbc_gt_80mhz 0x%x max_nc 0x%x",
+ he_cap->ppet_present, he_cap->srp,
+ he_cap->power_boost, he_cap->he_ltf_800_gi_4x,
+ he_cap->tb_ppdu_tx_stbc_gt_80mhz,
+ he_cap->rx_stbc_gt_80mhz, he_cap->max_nc);
+
+ pe_nofl_debug("\ter_ltf_800_gi_4x 0x%x ppdu_20_in_40Mhz_2G 0x%x ppdu_20_in_160_80p80Mhz 0x%x ppdu_80_in_160_80p80Mhz 0x%x er_1x_ltf_gi 0x%x",
+ he_cap->er_he_ltf_800_gi_4x,
+ he_cap->he_ppdu_20_in_40Mhz_2G,
+ he_cap->he_ppdu_20_in_160_80p80Mhz,
+ he_cap->he_ppdu_80_in_160_80p80Mhz,
+ he_cap->er_1x_he_ltf_gi);
+
+ pe_nofl_debug("\tmidamble_tx_rx_1x_ltf 0x%x dcm_max_bw 0x%x longer_than_16_he_sigb_ofdm_sym 0x%x non_trig_cqi_feedback 0x%x tx_1024_qam_lt_242_tone_ru 0x%x",
+ he_cap->midamble_tx_rx_1x_he_ltf, he_cap->dcm_max_bw,
+ he_cap->longer_than_16_he_sigb_ofdm_sym,
+ he_cap->non_trig_cqi_feedback,
+ he_cap->tx_1024_qam_lt_242_tone_ru);
+
+ pe_nofl_debug("\trx_1024_qam_lt_242_tone_ru 0x%x rx_full_bw_su_he_mu_compress_sigb 0x%x rx_he_mcs_map_lt_80 0x%x tx_he_mcs_map_lt_80 0x%x",
+ he_cap->rx_1024_qam_lt_242_tone_ru,
+ he_cap->rx_full_bw_su_he_mu_compress_sigb,
+ he_cap->rx_he_mcs_map_lt_80,
+ he_cap->tx_he_mcs_map_lt_80);
hdr = (struct ppet_hdr *)&he_cap->ppet;
- pe_debug("\t ppe_th:: nss_count: %d, ru_idx_msk: %d",
- hdr->nss, hdr->ru_idx_mask);
+ pe_nofl_debug("\tRx MCS map 160 Mhz: 0x%x Tx MCS map 160 Mhz: 0x%x Rx MCS map 80+80 Mhz: 0x%x Tx MCS map 80+80 Mhz: 0x%x ppe_th:: nss_count: %d, ru_idx_msk: %d",
+ *((uint16_t *)he_cap->rx_he_mcs_map_160),
+ *((uint16_t *)he_cap->tx_he_mcs_map_160),
+ *((uint16_t *)he_cap->rx_he_mcs_map_80_80),
+ *((uint16_t *)he_cap->tx_he_mcs_map_80_80),
+ hdr->nss, hdr->ru_idx_mask);
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
&he_cap->ppet, HE_MAX_PPET_SIZE);
@@ -7118,16 +7029,14 @@
void lim_log_he_op(struct mac_context *mac, tDot11fIEhe_op *he_ops,
struct pe_session *session)
{
- pe_debug("bss_color: %0x, default_pe_duration: %0x, twt_required: %0x, txop_rts_threshold: %0x, vht_oper_present: %0x",
+ pe_debug("bss_color 0x%x, default_pe_dur 0x%x, twt_req 0x%x, txop_rts_thres 0x%x, vht_op 0x%x",
he_ops->bss_color, he_ops->default_pe,
he_ops->twt_required, he_ops->txop_rts_threshold,
he_ops->vht_oper_present);
- pe_debug("\tpart_bss_color %0x, Co-located BSS %0x, BSS color dis %0x",
+ pe_debug("\tpart_bss_color 0x%x, Co-located BSS 0x%x, BSS color dis 0x%x basic mcs nss: 0x%x",
he_ops->partial_bss_col, he_ops->co_located_bss,
- he_ops->bss_col_disabled);
-
- pe_debug("he basic mcs nss: 0x%04x",
- *((uint16_t *)he_ops->basic_mcs_nss));
+ he_ops->bss_col_disabled,
+ *((uint16_t *)he_ops->basic_mcs_nss));
if (!session->he_6ghz_band) {
if (!he_ops->vht_oper_present)
@@ -7379,7 +7288,7 @@
lim_set_he_caps(mac_ctx, session, he_caps,
SIR_MAC_HE_CAP_MIN_LEN + 3);
he_cap = (struct he_capability_info *) (&he_caps[2 + HE_CAP_OUI_SIZE]);
- he_cap->ppet_present = 0;
+
if(device_mode == QDF_NDI_MODE) {
he_cap->su_beamformee = 0;
he_cap->su_beamformer = 0;
@@ -7558,6 +7467,47 @@
}
#endif
+#if defined(CONFIG_BAND_6GHZ) && defined(WLAN_FEATURE_11AX)
+QDF_STATUS lim_send_he_6g_band_caps_ie(struct mac_context *mac_ctx,
+ struct pe_session *session,
+ uint8_t vdev_id)
+{
+ uint8_t he_6g_band_caps_ie[DOT11F_IE_HE_6GHZ_BAND_CAP_MIN_LEN + 3];
+ tDot11fIEhe_6ghz_band_cap he_6g_band_cap;
+ QDF_STATUS status;
+ uint32_t size = 0;
+ uint32_t result;
+
+ qdf_mem_zero(&he_6g_band_cap, sizeof(he_6g_band_cap));
+ populate_dot11f_he_6ghz_cap(mac_ctx, session, &he_6g_band_cap);
+ if (!he_6g_band_cap.present) {
+ pe_debug("no HE 6g band cap for vdev %d", vdev_id);
+ return QDF_STATUS_SUCCESS;
+ }
+
+ qdf_mem_zero(he_6g_band_caps_ie, sizeof(he_6g_band_caps_ie));
+ result = dot11f_pack_ie_he_6ghz_band_cap(mac_ctx, &he_6g_band_cap,
+ he_6g_band_caps_ie,
+ sizeof(he_6g_band_caps_ie),
+ &size);
+ if (result != DOT11F_PARSE_SUCCESS) {
+ pe_err("pack erro for HE 6g band cap for vdev %d", vdev_id);
+ return QDF_STATUS_E_FAILURE;
+ }
+ pe_debug("send HE 6ghz band cap: 0x%01x 0x%01x for vdev %d",
+ he_6g_band_caps_ie[3], he_6g_band_caps_ie[4],
+ vdev_id);
+ status = lim_send_ie(mac_ctx, vdev_id, DOT11F_EID_HE_6GHZ_BAND_CAP,
+ CDS_BAND_5GHZ, &he_6g_band_caps_ie[2],
+ DOT11F_IE_HE_6GHZ_BAND_CAP_MIN_LEN + 1);
+ if (QDF_IS_STATUS_ERROR(status))
+ pe_err("Unable send HE 6g band Cap IE for 5GHZ band, status: %d",
+ status);
+
+ return status;
+}
+#endif
+
int
lim_assoc_rej_get_remaining_delta(struct sir_rssi_disallow_lst *node)
{
@@ -7826,12 +7776,9 @@
/* Stop the timer if already running */
qdf_mc_timer_stop(&session->ap_ecsa_timer);
- if (session->gLimChannelSwitch.switchCount) {
+ if (session->gLimChannelSwitch.switchCount)
/* Decrement the beacon switch count */
session->gLimChannelSwitch.switchCount--;
- pe_debug("current beacon count %d",
- session->gLimChannelSwitch.switchCount);
- }
/*
* Send only g_sap_chanswitch_beacon_cnt beacons with CSA IE Set in
@@ -8432,7 +8379,7 @@
wlan_objmgr_pdev_release_ref(pdev, WLAN_LEGACY_MAC_ID);
if (QDF_IS_STATUS_SUCCESS(status))
- pe_debug("Removed BSS entry:%pM", bssid);
+ pe_debug("Removed BSS entry:%pM from scan cache", bssid);
if (filter)
qdf_mem_free(filter);
@@ -8600,10 +8547,6 @@
des_chan->ch_freq_seg2 = session->ch_center_freq_seg1;
des_chan->ch_ieee = wlan_reg_freq_to_chan(mac->pdev, des_chan->ch_freq);
- pe_debug("ch_freq %d chan %d chan_width %d ch_freq_seg1: %d, ch_freq_seg2: %d",
- des_chan->ch_freq, des_chan->ch_ieee, des_chan->ch_width,
- des_chan->ch_freq_seg1, des_chan->ch_freq_seg2);
-
mlme_obj->mgmt.generic.maxregpower = session->maxTxPower;
mlme_obj->proto.generic.beacon_interval =
session->beaconParams.beaconInterval;
@@ -8635,9 +8578,6 @@
mlme_obj->mgmt.chainmask_info.num_rx_chain = 1;
mlme_obj->mgmt.chainmask_info.num_tx_chain = 1;
}
- pe_debug("dot11_mode:%d nss value:%d ht %d vht %d", session->dot11mode,
- session->nss, mlme_obj->proto.ht_info.allow_ht,
- mlme_obj->proto.vht_info.allow_vht);
wlan_vdev_mlme_set_ssid(mlme_obj->vdev, session->ssId.ssId,
session->ssId.length);
diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h
index b6ca4f1..843e032 100644
--- a/core/mac/src/pe/lim/lim_utils.h
+++ b/core/mac/src/pe/lim/lim_utils.h
@@ -1551,6 +1551,30 @@
}
#endif
+#if defined(CONFIG_BAND_6GHZ) && defined(WLAN_FEATURE_11AX)
+/**
+ * lim_send_he_6g_band_caps_ie() - Send HE 6ghz band caps to FW
+ * @mac_ctx: Global MAC context
+ * @session: session ptr
+ * @vdev_id: vdev id
+ *
+ * Send HE 6ghz band capabilities IE to firmware
+ *
+ * Return: QDF_STATUS_SUCCESS on success
+ */
+QDF_STATUS lim_send_he_6g_band_caps_ie(struct mac_context *mac_ctx,
+ struct pe_session *session,
+ uint8_t vdev_id);
+#else
+static inline
+QDF_STATUS lim_send_he_6g_band_caps_ie(struct mac_context *mac_ctx,
+ struct pe_session *session,
+ uint8_t vdev_id)
+{
+ return QDF_STATUS_SUCCESS;
+}
+#endif
+
/**
* lim_decrement_pending_mgmt_count: Decrement mgmt frame count
* @mac_ctx: Pointer to global MAC structure
diff --git a/core/mac/src/pe/sch/sch_api.c b/core/mac/src/pe/sch/sch_api.c
index 17c5bc5..10075c7 100644
--- a/core/mac/src/pe/sch/sch_api.c
+++ b/core/mac/src/pe/sch/sch_api.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -89,9 +89,6 @@
mac->sch.csa_count_offset;
beaconParams->ecsa_count_offset =
mac->sch.ecsa_count_offset;
- pe_debug("csa_count_offset %d ecsa_count_offset %d",
- beaconParams->csa_count_offset,
- beaconParams->ecsa_count_offset);
}
}
@@ -144,8 +141,6 @@
if (QDF_STATUS_SUCCESS != retCode)
pe_err("Posting SEND_BEACON_REQ to HAL failed, reason=%X",
retCode);
- else
- pe_debug("Successfully posted WMA_SEND_BEACON_REQ to HAL");
return retCode;
}
diff --git a/core/mac/src/pe/sch/sch_beacon_gen.c b/core/mac/src/pe/sch/sch_beacon_gen.c
index 2697332..c8bf6e1 100644
--- a/core/mac/src/pe/sch/sch_beacon_gen.c
+++ b/core/mac/src/pe/sch/sch_beacon_gen.c
@@ -455,7 +455,6 @@
populate_dot11f_ht_info(mac_ctx, &bcn_2->HTInfo, session);
}
if (session->vhtCapability) {
- pe_debug("Populate VHT IEs in Beacon");
populate_dot11f_vht_caps(mac_ctx, session, &bcn_2->VHTCaps);
populate_dot11f_vht_operation(mac_ctx, session,
&bcn_2->VHTOperation);
diff --git a/core/mac/src/pe/sch/sch_beacon_process.c b/core/mac/src/pe/sch/sch_beacon_process.c
index e00314d..0d8ac47 100644
--- a/core/mac/src/pe/sch/sch_beacon_process.c
+++ b/core/mac/src/pe/sch/sch_beacon_process.c
@@ -1190,9 +1190,6 @@
follow_ap_edca = mlme_get_follow_ap_edca_flag(session->vdev);
- pe_debug("Updating parameter set count: Old %d ---> new %d",
- session->gLimEdcaParamSetCount, edca->qosInfo.count);
-
session->gLimEdcaParamSetCount = edca->qosInfo.count;
session->gLimEdcaParams[QCA_WLAN_AC_BE] = edca->acbe;
session->gLimEdcaParams[QCA_WLAN_AC_BK] = edca->acbk;
@@ -1261,15 +1258,15 @@
}
WLAN_HOST_DIAG_LOG_REPORT(log_ptr);
#endif /* FEATURE_WLAN_DIAG_SUPPORT */
- pe_debug("Edca param enabled in ini %d. Updating Local EDCA Params(gLimEdcaParams) to: ",
+ pe_debug("Edca param enabled %d. Updating Local Params to: ",
mac->mlme_cfg->edca_params.enable_edca_params);
for (i = 0; i < QCA_WLAN_AC_ALL; i++) {
- pe_debug("AC[%d]: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
- i, session->gLimEdcaParams[i].aci.aifsn,
- session->gLimEdcaParams[i].aci.acm,
- session->gLimEdcaParams[i].cw.min,
- session->gLimEdcaParams[i].cw.max,
- session->gLimEdcaParams[i].txoplimit);
+ pe_nofl_debug("AC[%d]: AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
+ i, session->gLimEdcaParams[i].aci.aifsn,
+ session->gLimEdcaParams[i].aci.acm,
+ session->gLimEdcaParams[i].cw.min,
+ session->gLimEdcaParams[i].cw.max,
+ session->gLimEdcaParams[i].txoplimit);
}
return QDF_STATUS_SUCCESS;
}
diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
index 0d87dd8..f0fcef2 100644
--- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c
+++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
@@ -764,8 +764,6 @@
if (pe_session) {
disable_high_ht_mcs_2x2 =
mac->mlme_cfg->rates.disable_high_ht_mcs_2x2;
- pe_debug("disable HT high MCS INI param[%d]",
- disable_high_ht_mcs_2x2);
if (pe_session->nss == NSS_1x1_MODE) {
pDot11f->supportedMCSSet[1] = 0;
} else if (wlan_reg_is_24ghz_ch_freq(
@@ -6067,21 +6065,27 @@
tDot11fIEhe_cap *he_cap)
{
uint8_t *ppet;
- uint32_t value = 0;
+ uint32_t value = WNI_CFG_HE_PPET_LEN;
he_cap->present = 1;
if (!session) {
qdf_mem_copy(he_cap, &mac_ctx->mlme_cfg->he_caps.dot11_he_cap,
sizeof(tDot11fIEhe_cap));
+ qdf_mem_copy(he_cap->ppet.ppe_threshold.ppe_th,
+ mac_ctx->mlme_cfg->he_caps.he_ppet_5g,
+ value);
+
+ ppet = he_cap->ppet.ppe_threshold.ppe_th;
+ he_cap->ppet.ppe_threshold.num_ppe_th =
+ lim_truncate_ppet(ppet, value);
return QDF_STATUS_SUCCESS;
}
/** TODO: String items needs attention. **/
qdf_mem_copy(he_cap, &session->he_config, sizeof(*he_cap));
if (he_cap->ppet_present) {
- value = WNI_CFG_HE_PPET_LEN;
/* if session is present, populate PPET based on band */
- if (wlan_reg_is_5ghz_ch_freq(session->curr_op_freq))
+ if (!wlan_reg_is_24ghz_ch_freq(session->curr_op_freq))
qdf_mem_copy(he_cap->ppet.ppe_threshold.ppe_th,
mac_ctx->mlme_cfg->he_caps.he_ppet_5g,
value);
@@ -6097,8 +6101,6 @@
he_cap->ppet.ppe_threshold.num_ppe_th = 0;
}
- lim_log_he_cap(mac_ctx, he_cap);
-
return QDF_STATUS_SUCCESS;
}
@@ -6166,7 +6168,7 @@
struct mlme_ht_capabilities_info *ht_cap_info;
struct mlme_vht_capabilities_info *vht_cap_info;
- if (!session || !session->he_6ghz_band)
+ if (session && !session->he_6ghz_band)
return QDF_STATUS_SUCCESS;
ht_cap_info = &mac_ctx->mlme_cfg->ht_caps.ht_cap_info;
@@ -6175,8 +6177,12 @@
he_6g_cap->present = 1;
he_6g_cap->min_mpdu_start_spacing =
mac_ctx->mlme_cfg->ht_caps.ampdu_params.mpdu_density;
- he_6g_cap->max_ampdu_len_exp =
- session->vht_config.max_ampdu_lenexp;
+ if (session)
+ he_6g_cap->max_ampdu_len_exp =
+ session->vht_config.max_ampdu_lenexp;
+ else
+ he_6g_cap->max_ampdu_len_exp =
+ vht_cap_info->ampdu_len_exponent & 0x7;
he_6g_cap->max_mpdu_len = vht_cap_info->ampdu_len;
he_6g_cap->sm_pow_save = ht_cap_info->mimo_power_save;
he_6g_cap->rd_responder = 0;
diff --git a/core/sap/inc/sap_api.h b/core/sap/inc/sap_api.h
index 14d7fcb..dab93af 100644
--- a/core/sap/inc/sap_api.h
+++ b/core/sap/inc/sap_api.h
@@ -1486,6 +1486,16 @@
uint8_t session_id);
/**
+ * sap_dump_acs_channel() - dump acs channel list
+ * @acs_cfg: acs config
+ *
+ * This function dump acs channel list
+ *
+ * Return: void.
+ */
+void sap_dump_acs_channel(struct sap_acs_cfg *acs_cfg);
+
+/**
* sap_release_vdev_ref() - Decrement reference count for vdev object
* @sap_ctx: for which vdev reference is to be decremented
*
diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c
index eefacef..03dce19 100644
--- a/core/sap/src/sap_api_link_cntl.c
+++ b/core/sap/src/sap_api_link_cntl.c
@@ -404,9 +404,9 @@
* Channel change is successful. If the new channel is a DFS channel,
* then we will to perform channel availability check for 60 seconds
*/
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
- FL("sapdfs: changing target channel freq to [%d] state %d"),
- mac_ctx->sap.SapDfsInfo.target_chan_freq, sap_ctx->fsm_state);
+ sap_nofl_debug("sapdfs: SAP CSA: freq to [%d] state %d",
+ mac_ctx->sap.SapDfsInfo.target_chan_freq,
+ sap_ctx->fsm_state);
target_chan_freq = mac_ctx->sap.SapDfsInfo.target_chan_freq;
/* If SAP is not in starting or started state don't proceed further */
@@ -437,8 +437,6 @@
sap_ctx->chan_freq = target_chan_freq;
/* check if currently selected channel is a DFS channel */
if (is_ch_dfs && sap_ctx->pre_cac_complete) {
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED, FL(
- "sapdfs: => SAP_STARTING, on pre cac"));
/* Start beaconing on the new pre cac channel */
wlansap_start_beacon_req(sap_ctx);
sap_ctx->fsm_state = SAP_STARTING;
@@ -455,20 +453,12 @@
mac_ctx->psoc,
sap_ctx->sessionId)) {
sap_ctx->fsm_state = SAP_INIT;
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
- "%s: %d: sapdfs: => SAP_INIT with ignore cac false on sapctx[%pK]",
- __func__, __LINE__, sap_ctx);
/* DFS Channel */
sap_event.event = eSAP_DFS_CHANNEL_CAC_START;
sap_event.params = csr_roam_info;
sap_event.u1 = 0;
sap_event.u2 = 0;
} else {
- QDF_TRACE(QDF_MODULE_ID_SAP,
- QDF_TRACE_LEVEL_INFO_MED,
- "%s: %d: sapdfs: SAP_STARTING with ignore cac true on sapctx[%pK]",
- __func__, __LINE__, sap_ctx);
-
/* Start beaconing on the new channel */
wlansap_start_beacon_req(sap_ctx);
sap_ctx->fsm_state = SAP_STARTING;
@@ -479,9 +469,6 @@
sap_event.u2 = eCSR_ROAM_RESULT_INFRA_STARTED;
}
} else {
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
- "%s: %d: sapdfs: => SAP_STARTING on sapctx[%pK]",
- __func__, __LINE__, sap_ctx);
/* non-DFS channel */
sap_ctx->fsm_state = SAP_STARTING;
mac_ctx->sap.SapDfsInfo.sap_radar_found_status = false;
diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c
index 6dd171c..f6c009c 100644
--- a/core/sap/src/sap_fsm.c
+++ b/core/sap/src/sap_fsm.c
@@ -2483,8 +2483,7 @@
* Transition from SAP_STARTING to SAP_STARTED
* (both without substates)
*/
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
- FL("from state chan_freq = %d %s => %s ch_width %d"),
+ sap_debug("Chan %d %s => %s ch_width %d",
sap_ctx->chan_freq, "SAP_STARTING", "SAP_STARTED",
sap_ctx->ch_params.ch_width);
sap_ctx->fsm_state = SAP_STARTED;
@@ -2494,11 +2493,6 @@
eSAP_START_BSS_EVENT,
(void *) eSAP_STATUS_SUCCESS);
sap_chan_freq = sap_ctx->chan_freq;
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
- FL("ap_ctx->ch_params.ch_width %d, channel %d"),
- sap_ctx->ch_params.ch_width,
- wlan_reg_get_channel_state_for_freq(
- mac_ctx->pdev, sap_chan_freq));
band = wlan_reg_freq_to_band(sap_ctx->chan_freq);
if (sap_ctx->ch_params.center_freq_seg1)
ch_cfreq1 = wlan_reg_chan_band_to_freq(
@@ -2753,9 +2747,7 @@
}
mac_handle = MAC_HANDLE(mac_ctx);
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG,
- FL("sap_ctx=%pK, state_var=%d, msg=0x%x"),
- sap_ctx, state_var, msg);
+ sap_debug("state=%d handle event=%d", state_var, msg);
switch (state_var) {
case SAP_INIT:
@@ -3219,6 +3211,30 @@
return QDF_STATUS_SUCCESS;
}
+void sap_dump_acs_channel(struct sap_acs_cfg *acs_cfg)
+{
+ uint32_t buf_len = 0, len = 0, i;
+ uint8_t *chan_buff = NULL;
+
+ /*
+ * Buffer of (num channl * 5) + 1 to consider the 4 char freq
+ * and 1 space after it for each channel and 1 to end the string
+ * with NULL.
+ */
+ buf_len = (acs_cfg->ch_list_count * 5) + 1;
+ chan_buff = qdf_mem_malloc(buf_len);
+ if (!chan_buff)
+ return;
+
+ for (i = 0; i < acs_cfg->ch_list_count; i++)
+ len += qdf_scnprintf(chan_buff + len, buf_len - len,
+ " %d", acs_cfg->freq_list[i]);
+
+ sap_nofl_debug("ACS freq list[%d]:%s",
+ acs_cfg->ch_list_count, chan_buff);
+ qdf_mem_free(chan_buff);
+}
+
#ifdef SOFTAP_CHANNEL_RANGE
/**
* sap_get_freq_list() - get the list of channel frequency
@@ -3456,11 +3472,10 @@
}
for (loop_count = 0; loop_count < ch_count; loop_count++) {
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG,
- FL("channel frequency: %d"), list[loop_count]);
sap_ctx->acs_cfg->freq_list[loop_count] = list[loop_count];
}
sap_ctx->acs_cfg->ch_list_count = ch_count;
+ sap_dump_acs_channel(sap_ctx->acs_cfg);
return QDF_STATUS_SUCCESS;
}
diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c
index 7e03245..1b70326 100644
--- a/core/sap/src/sap_module.c
+++ b/core/sap/src/sap_module.c
@@ -1351,12 +1351,12 @@
sap_err("%u is unsafe channel freq", target_chan_freq);
return QDF_STATUS_E_FAULT;
}
- sap_debug("sap chan freq:%d target freq:%d conn on 5GHz:%d, csa_reason:%s(%d) strict %d vdev %d",
- sap_ctx->chan_freq, target_chan_freq,
- policy_mgr_is_any_mode_active_on_band_along_with_session(
- mac->psoc, sap_ctx->sessionId, POLICY_MGR_BAND_5),
- sap_get_csa_reason_str(sap_ctx->csa_reason),
- sap_ctx->csa_reason, strict, sap_ctx->sessionId);
+ sap_nofl_debug("SAP CSA: %d ---> %d conn on 5GHz:%d, csa_reason:%s(%d) strict %d vdev %d",
+ sap_ctx->chan_freq, target_chan_freq,
+ policy_mgr_is_any_mode_active_on_band_along_with_session(
+ mac->psoc, sap_ctx->sessionId, POLICY_MGR_BAND_5),
+ sap_get_csa_reason_str(sap_ctx->csa_reason),
+ sap_ctx->csa_reason, strict, sap_ctx->sessionId);
sta_sap_scc_on_dfs_chan =
policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(mac->psoc);
@@ -1445,7 +1445,7 @@
* user input is used for the bandwidth
*/
if (target_bw != CH_WIDTH_MAX) {
- sap_debug("target bw:%d new width:%d",
+ sap_nofl_debug("SAP CSA: target bw:%d new width:%d",
target_bw,
mac->sap.SapDfsInfo.
new_ch_params.ch_width);
@@ -1505,10 +1505,6 @@
return QDF_STATUS_E_FAULT;
}
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
- "%s: Posted eSAP_CHANNEL_SWITCH_ANNOUNCEMENT_START successfully to sap_fsm for Channel freq = %d",
- __func__, target_chan_freq);
-
return QDF_STATUS_SUCCESS;
}
@@ -1680,8 +1676,6 @@
default:
*sec_chan_freq = 0;
}
- sap_debug("sec channel offset %d, sec channel %d",
- sec_ch_offset, *sec_chan_freq);
}
static void
@@ -1758,9 +1752,6 @@
(phy_mode == eCSR_DOT11_MODE_11a))
phy_mode = eCSR_DOT11_MODE_11g;
- sap_debug("phy_mode: %d, target_channel freq: %d new phy_mode: %d",
- sap_ctx->csr_roamProfile.phyMode,
- target_chan_freq, phy_mode);
sap_ctx->csr_roamProfile.phyMode = phy_mode;
if (sap_ctx->csr_roamProfile.ChannelInfo.numOfChannels == 0 ||
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index d74ec82..e63d306 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -1435,6 +1435,11 @@
{}
#endif
+typedef void (*sme_get_raom_scan_ch_callback)(
+ hdd_handle_t hdd_handle,
+ struct roam_scan_ch_resp *roam_ch,
+ void *context);
+
/**
* csr_packetdump_timer_stop() - stops packet dump timer
*
diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h
index 834a296..3d443d9 100644
--- a/core/sme/inc/sme_api.h
+++ b/core/sme/inc/sme_api.h
@@ -552,6 +552,32 @@
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
/**
+ * sme_set_roam_scan_ch_event_cb() - Register roam scan ch callback
+ * @mac_handle: Opaque handle to the MAC context
+ * @cb: callback to be registered
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+sme_set_roam_scan_ch_event_cb(mac_handle_t mac_handle,
+ sme_get_raom_scan_ch_callback cb);
+
+/**
+ * sme_get_roam_scan_ch() -API to get roam scan channels
+ * @mac_handle: Pointer to mac handle
+ * @sta_id: vdev id
+ * @pcontext: pointer to the context
+ *
+ * Extract number of frequencies and frequency list from chan_info and print
+ * to the logs.
+ *
+ * Return: None
+ */
+QDF_STATUS
+sme_get_roam_scan_ch(mac_handle_t mac_handle,
+ uint8_t vdev_id, void *pcontext);
+
+/**
* sme_get_pmk_info(): A wrapper function to request CSR to save PMK
* @mac_handle: Global structure
* @session_id: SME session_id
@@ -569,6 +595,20 @@
void sme_get_pmk_info(mac_handle_t mac_handle, uint8_t session_id,
tPmkidCacheInfo *pmk_cache)
{}
+
+static inline QDF_STATUS
+sme_get_roam_scan_ch(mac_handle_t mac_handle,
+ uint8_t vdev_id, void *pcontext)
+{
+ return QDF_STATUS_E_FAILURE;
+}
+
+static inline QDF_STATUS
+sme_set_roam_scan_ch_event_cb(mac_handle_t mac_handle,
+ void *cb)
+{
+ return QDF_STATUS_E_FAILURE;
+}
#endif
/**
@@ -1097,6 +1137,7 @@
uint32_t *freq_list,
uint8_t *pNumChannels,
uint8_t sessionId);
+
/**
* sme_dump_freq_list() - Dump the frequencies from given chan info
* @chan_info: Contains the frequency list and number of frequencies
diff --git a/core/sme/inc/sme_internal.h b/core/sme/inc/sme_internal.h
index cf14a88..46ce736 100644
--- a/core/sme/inc/sme_internal.h
+++ b/core/sme/inc/sme_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -392,6 +392,8 @@
void (*oem_data_event_handler_cb)
(const struct oem_data *oem_event_data);
#endif
+ sme_get_raom_scan_ch_callback roam_scan_ch_callback;
+ void *roam_scan_ch_get_context;
};
#endif /* #if !defined( __SMEINTERNAL_H ) */
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 6806479..a178b3c 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -212,12 +212,14 @@
csr_saved_scan_cmd_free_fields(mac, session);
}
if (reason == POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_STA) {
- sme_info("Continue channel switch for STA");
+ sme_info("Continue channel switch for STA on vdev %d",
+ session_id);
csr_sta_continue_csa(mac, session_id);
}
if (reason == POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH) {
- sme_info("Continue channel switch for SAP");
+ sme_info("Continue channel switch for SAP on vdev %d",
+ session_id);
csr_csa_restart(mac, session_id);
}
if (reason == POLICY_MGR_UPDATE_REASON_LFR2_ROAM)
@@ -1254,9 +1256,6 @@
session_id = csa_ie_tx_complete_rsp->sessionId;
roam_status = eCSR_ROAM_DFS_CHAN_SW_NOTIFY;
roam_result = eCSR_ROAM_RESULT_DFS_CHANSW_UPDATE_SUCCESS;
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
- "eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND session=%d",
- session_id);
break;
}
case eWNI_SME_DFS_CAC_COMPLETE:
@@ -1713,6 +1712,38 @@
return status;
}
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+QDF_STATUS sme_get_roam_scan_ch(mac_handle_t mac_handle,
+ uint8_t vdev_id, void *pcontext)
+{
+ struct scheduler_msg msg = {0};
+ QDF_STATUS status = QDF_STATUS_E_FAILURE;
+ struct mac_context *mac = MAC_CONTEXT(mac_handle);
+
+ status = sme_acquire_global_lock(&mac->sme);
+ if (QDF_IS_STATUS_ERROR(status))
+ return QDF_STATUS_E_FAILURE;
+
+ msg.type = WMA_ROAM_SCAN_CH_REQ;
+ msg.bodyval = vdev_id;
+ mac->sme.roam_scan_ch_get_context = pcontext;
+
+ if (scheduler_post_message(QDF_MODULE_ID_SME,
+ QDF_MODULE_ID_WMA,
+ QDF_MODULE_ID_WMA,
+ &msg)) {
+ sme_err("Posting message %d failed",
+ WMA_ROAM_SCAN_CH_REQ);
+ mac->sme.roam_scan_ch_get_context = NULL;
+ sme_release_global_lock(&mac->sme);
+ return QDF_STATUS_E_FAILURE;
+ }
+
+ sme_release_global_lock(&mac->sme);
+ return QDF_STATUS_SUCCESS;
+}
+#endif
+
/**
* sme_set_ese_roam_scan_channel_list() - To set ese roam scan channel list
* @mac_handle: Opaque handle to the global MAC context
@@ -1941,6 +1972,55 @@
return QDF_STATUS_SUCCESS;
}
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+QDF_STATUS sme_set_roam_scan_ch_event_cb(mac_handle_t mac_handle,
+ sme_get_raom_scan_ch_callback cb)
+{
+ QDF_STATUS qdf_status;
+ struct mac_context *mac = MAC_CONTEXT(mac_handle);
+
+ qdf_status = sme_acquire_global_lock(&mac->sme);
+ if (QDF_IS_STATUS_ERROR(qdf_status))
+ return qdf_status;
+
+ mac->sme.roam_scan_ch_callback = cb;
+ sme_release_global_lock(&mac->sme);
+
+ return qdf_status;
+}
+
+/**
+ * sme_process_roam_scan_ch_list_resp() - Process get roam scan ch list
+ * response
+ * @mac: Global MAC pointer
+ * @msgbuf: pointer to roam scan ch list response
+ *
+ * This function checks the roam scan chan list message is for command
+ * response or a async event and accordingly data is given to user space.
+ * callback to process further
+ */
+static void
+sme_process_roam_scan_ch_list_resp(struct mac_context *mac,
+ struct roam_scan_ch_resp *roam_ch)
+{
+ sme_get_raom_scan_ch_callback callback =
+ mac->sme.roam_scan_ch_callback;
+
+ if (!roam_ch)
+ return;
+
+ if (callback)
+ callback(mac->hdd_handle, roam_ch,
+ mac->sme.roam_scan_ch_get_context);
+}
+#else
+static void
+sme_process_roam_scan_ch_list_resp(tpAniSirGlobal mac,
+ struct roam_scan_ch_resp *roam_ch)
+{
+}
+#endif
+
/**
* sme_process_antenna_mode_resp() - Process set antenna mode
* response
@@ -2318,6 +2398,10 @@
sme_err("Empty message for: %d", pMsg->type);
}
break;
+ case eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT:
+ sme_process_roam_scan_ch_list_resp(mac, pMsg->bodyptr);
+ qdf_mem_free(pMsg->bodyptr);
+ break;
default:
if ((pMsg->type >= eWNI_SME_MSG_TYPES_BEGIN)
@@ -6802,10 +6886,6 @@
sme_restore_default_roaming_params(struct mac_context *mac,
tCsrNeighborRoamControlInfo *roam_info)
{
- sme_debug("%s default roam scoring",
- mac->mlme_cfg->scoring.enable_scoring_for_roam ?
- "Enable" : "Disable");
-
roam_info->cfgParams.enable_scoring_for_roam =
mac->mlme_cfg->scoring.enable_scoring_for_roam;
roam_info->cfgParams.emptyScanRefreshPeriod =
@@ -6866,20 +6946,16 @@
goto out;
}
- sme_debug("Cleanup roam scan control");
mac->roam.configParam.nRoamScanControl = false;
neighbor_roam_info = &mac->roam.neighborRoamInfo[vdev_id];
- sme_debug("Cleanup Preferred frequency list");
chan_info = &neighbor_roam_info->cfgParams.pref_chan_info;
csr_flush_cfg_bg_scan_roam_channel_list(chan_info);
- sme_debug("Cleanup specific frequency list");
chan_info = &neighbor_roam_info->cfgParams.specific_chan_info;
csr_flush_cfg_bg_scan_roam_channel_list(chan_info);
- sme_debug("Cleanup roam control config related lfr params");
mlme_reinit_control_config_lfr_params(mac->psoc, &mac->mlme_cfg->lfr);
sme_restore_default_roaming_params(mac, neighbor_roam_info);
diff --git a/core/sme/src/common/sme_trace.c b/core/sme/src/common/sme_trace.c
index f2fb099..f09ad8a 100644
--- a/core/sme/src/common/sme_trace.c
+++ b/core/sme/src/common/sme_trace.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -176,32 +176,32 @@
{
switch (record->code) {
case TRACE_CODE_SME_COMMAND:
- sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
- rec_index, record->qtime, record->time, record->session,
- "SME COMMAND:",
- sme_trace_get_command_string(record->data),
- record->data);
+ sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+ rec_index, record->qtime, record->time,
+ record->session, "SME COMMAND:",
+ sme_trace_get_command_string(record->data),
+ record->data);
break;
case TRACE_CODE_SME_TX_WMA_MSG:
- sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
- rec_index, record->qtime, record->time, record->session,
- "TX WMA Msg:",
- mac_trace_get_wma_msg_string((uint16_t)record->data),
- record->data);
+ sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+ rec_index, record->qtime, record->time,
+ record->session, "TX WMA Msg:",
+ mac_trace_get_wma_msg_string((uint16_t)record->data),
+ record->data);
break;
case TRACE_CODE_SME_RX_WMA_MSG:
- sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
- rec_index, record->qtime, record->time, record->session,
- "RX WMA Msg:",
- mac_trace_get_sme_msg_string((uint16_t)record->data),
- record->data);
+ sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+ rec_index, record->qtime, record->time, record->session,
+ "RX WMA Msg:",
+ mac_trace_get_sme_msg_string((uint16_t)record->data),
+ record->data);
break;
default:
- sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
- rec_index, record->qtime, record->time, record->session,
- "RX HDD MSG:",
- sme_trace_get_rx_msg_string(record->code),
- record->data);
+ sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+ rec_index, record->qtime, record->time, record->session,
+ "RX HDD MSG:",
+ sme_trace_get_rx_msg_string(record->code),
+ record->data);
break;
}
}
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index e11e226..617aa71 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -554,9 +554,10 @@
sizeof(struct qdf_mac_addr));
}
- sme_debug("CSR Attempting to Disassociate Bssid=" QDF_MAC_ADDR_STR
- " subState: %s reason: %d", QDF_MAC_ADDR_ARRAY(bssId.bytes),
- mac_trace_getcsr_roam_sub_state(NewSubstate), reasonCode);
+ sme_debug("Disassociate Bssid " QDF_MAC_ADDR_STR " subState: %s reason: %d",
+ QDF_MAC_ADDR_ARRAY(bssId.bytes),
+ mac_trace_getcsr_roam_sub_state(NewSubstate),
+ reasonCode);
csr_roam_substate_change(mac, NewSubstate, sessionId);
@@ -1409,6 +1410,8 @@
uint32_t channel_freq;
bool is_unsafe_chan;
bool is_same_band;
+ bool is_5mhz_enabled;
+ bool is_10mhz_enabled;
enum scm_scan_status scan_status;
QDF_STATUS lock_status;
@@ -1450,6 +1453,13 @@
if (!pChanList)
return QDF_STATUS_E_NOMEM;
+ is_5mhz_enabled = cds_is_5_mhz_enabled();
+ if (is_5mhz_enabled)
+ sme_nofl_debug("quarter_rate enabled");
+ is_10mhz_enabled = cds_is_10_mhz_enabled();
+ if (is_10mhz_enabled)
+ sme_nofl_debug("half_rate enabled");
+
for (i = 0; i < pScan->base_channels.numChannels; i++) {
struct csr_sta_roam_policy_params *roam_policy =
&mac->roam.configParam.sta_roam_policy;
@@ -1538,18 +1548,13 @@
else
pChanList->chanParam[num_channel].dfsSet =
true;
- if (cds_is_5_mhz_enabled())
- pChanList->chanParam[num_channel].quarter_rate
- = 1;
- else if (cds_is_10_mhz_enabled())
- pChanList->chanParam[num_channel].half_rate = 1;
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
- "Freq:%d, pwr=%d, DFS=%d qrate %d hrate %d ",
- pChanList->chanParam[num_channel].freq,
- pChanList->chanParam[num_channel].pwr,
- pChanList->chanParam[num_channel].dfsSet,
- pChanList->chanParam[num_channel].quarter_rate,
- pChanList->chanParam[num_channel].half_rate);
+
+ pChanList->chanParam[num_channel].quarter_rate =
+ is_5mhz_enabled;
+
+ pChanList->chanParam[num_channel].half_rate =
+ is_10mhz_enabled;
+
num_channel++;
}
}
@@ -1988,10 +1993,10 @@
}
if (mac->roam.curSubState[sessionId] == NewSubstate)
return;
- sme_debug("CSR RoamSubstate: [ %s <== %s ]",
- mac_trace_getcsr_roam_sub_state(NewSubstate),
- mac_trace_getcsr_roam_sub_state(mac->roam.
- curSubState[sessionId]));
+ sme_nofl_debug("CSR RoamSubstate: [ %s <== %s ]",
+ mac_trace_getcsr_roam_sub_state(NewSubstate),
+ mac_trace_getcsr_roam_sub_state(mac->roam.
+ curSubState[sessionId]));
spin_lock(&mac->roam.roam_state_lock);
mac->roam.curSubState[sessionId] = NewSubstate;
spin_unlock(&mac->roam.roam_state_lock);
@@ -2008,10 +2013,10 @@
if (NewRoamState == mac->roam.curState[sessionId])
return PreviousState;
- sme_debug("CSR RoamState[%d]: [ %s <== %s ]", sessionId,
- mac_trace_getcsr_roam_state(NewRoamState),
- mac_trace_getcsr_roam_state(
- mac->roam.curState[sessionId]));
+ sme_nofl_debug("CSR RoamState[%d]: [ %s <== %s ]", sessionId,
+ mac_trace_getcsr_roam_state(NewRoamState),
+ mac_trace_getcsr_roam_state(
+ mac->roam.curState[sessionId]));
/*
* Whenever we transition OUT of the Roaming state,
* clear the Roaming substate.
@@ -4214,8 +4219,9 @@
vdev_id,
peer_macaddr);
- sme_debug("Deauth/Disassoc %s in progress for %pM",
- (ret ? "already" : "not"), peer_macaddr.bytes);
+ if (ret)
+ sme_debug("Deauth/Disassoc already in progress for %pM",
+ peer_macaddr.bytes);
return ret;
}
@@ -4323,7 +4329,7 @@
qdf_mem_copy(bssId.bytes, pSession->pConnectBssDesc->bssId,
sizeof(struct qdf_mac_addr));
}
- sme_debug("CSR Attempting to Deauth Bssid= " QDF_MAC_ADDR_STR,
+ sme_debug("Deauth to Bssid " QDF_MAC_ADDR_STR,
QDF_MAC_ADDR_ARRAY(bssId.bytes));
csr_roam_substate_change(mac, NewSubstate, sessionId);
@@ -7039,8 +7045,6 @@
prev_connect_info = &session->prev_assoc_ap_info;
- sme_debug("receives no association indication; FILS %d",
- session->is_fils_connection);
sme_debug("Assoc ref count: %d", session->bRefAssocStartCnt);
/* Update AP's assoc info in scan before removing connectedProfile */
@@ -8055,7 +8059,7 @@
if (!roam_info)
return false;
- sme_debug("Processing ROAM results...");
+ sme_debug("Result %d", res);
switch (res) {
case eCsrJoinSuccess:
case eCsrReassocSuccess:
@@ -9144,9 +9148,8 @@
}
pCommand->command = eSmeCommandRoam;
pCommand->vdev_id = (uint8_t) sessionId;
- sme_debug(
- "Disassociate reason: %d, sessionId: %d",
- reason, sessionId);
+ sme_debug("Disassociate reason: %d, vdev_id: %d",
+ reason, sessionId);
switch (reason) {
case eCSR_DISCONNECT_REASON_MIC_ERROR:
pCommand->u.roamCmd.roamReason =
@@ -9234,7 +9237,6 @@
|| csr_is_bss_type_ibss(pSession->connectedProfile.BSSType)
|| csr_is_roam_command_waiting_for_session(mac, sessionId)
|| CSR_IS_CONN_NDI(&pSession->connectedProfile)) {
- sme_debug("called");
status = csr_roam_issue_disassociate_cmd(mac, sessionId,
reason);
} else if (pSession->scan_info.profile) {
@@ -9958,7 +9960,7 @@
cds_flush_logs(WLAN_LOG_TYPE_FATAL,
WLAN_LOG_INDICATOR_HOST_DRIVER,
WLAN_LOG_REASON_ROAM_FAIL,
- true, false);
+ false, false);
if ((eSIR_SME_FT_REASSOC_TIMEOUT_FAILURE ==
pSmeJoinRsp->status_code)
|| (eSIR_SME_FT_REASSOC_FAILURE ==
@@ -10436,8 +10438,6 @@
struct deauth_rsp *pSmeRsp)
{
tSirResultCodes status_code;
- /* No one is sending eWNI_SME_DEAUTH_REQ to PE. */
- sme_debug("is no-op");
status_code = csr_get_de_auth_rsp_status_code(pSmeRsp);
mac->roam.deauthRspStatus = status_code;
if (CSR_IS_ROAM_SUBSTATE_DEAUTH_REQ(mac, pSmeRsp->sessionId)) {
@@ -10449,10 +10449,6 @@
/* */
sme_debug(
"CSR SmeDeauthReq disassociated Successfully");
- } else {
- sme_warn(
- "SmeDeauthReq failed with status_code= 0x%08X",
- status_code);
}
/* We are not done yet. Get the data and continue roaming */
csr_roam_reissue_roam_command(mac, pSmeRsp->sessionId);
@@ -10578,10 +10574,6 @@
struct csr_roam_info *roam_info;
pSmeRsp = (tSirSmeRsp *)msg_buf;
- sme_debug("Message %d[0x%04X] received in substate %s",
- pSmeRsp->messageType, pSmeRsp->messageType,
- mac_trace_getcsr_roam_sub_state(
- mac->roam.curSubState[pSmeRsp->vdev_id]));
switch (pSmeRsp->messageType) {
@@ -17035,10 +17027,8 @@
QDF_STATUS status = QDF_STATUS_SUCCESS;
struct csr_roam_session *session;
- if (!CSR_IS_SESSION_VALID(mac_ctx, vdev_id)) {
- sme_debug("session %d not found", vdev_id);
+ if (!CSR_IS_SESSION_VALID(mac_ctx, vdev_id))
return QDF_STATUS_E_INVAL;
- }
session = CSR_GET_SESSION(mac_ctx, vdev_id);
/* Vdev going down stop roaming */
@@ -17074,10 +17064,8 @@
{
struct csr_roam_session *pSession = CSR_GET_SESSION(mac, sessionId);
- if (!pSession) {
- sme_err("session %d not found", sessionId);
+ if (!pSession)
return;
- }
pSession->sessionActive = false;
pSession->sessionId = WLAN_UMAC_VDEV_ID_MAX;
@@ -19211,10 +19199,8 @@
}
if (!csr_is_conn_state_connected(mac_ctx, session_id) &&
- command == ROAM_SCAN_OFFLOAD_UPDATE_CFG) {
- sme_debug("Session not in connected state, RSO not sent");
+ command == ROAM_SCAN_OFFLOAD_UPDATE_CFG)
return QDF_STATUS_E_FAILURE;
- }
temp_session_id = csr_get_roam_enabled_sta_sessionid(mac_ctx);
if ((temp_session_id != WLAN_UMAC_VDEV_ID_MAX) &&
@@ -19465,11 +19451,6 @@
else if (command == ROAM_SCAN_OFFLOAD_STOP)
csr_update_11k_offload_params(mac_ctx, session, req_buf, FALSE);
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
- "Assoc IE buffer:");
- QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
- req_buf->assoc_ie.addIEdata, req_buf->assoc_ie.length);
-
prev_roaming_state = mlme_get_roam_state(mac_ctx->psoc, session_id);
policy_mgr_set_pcl_for_existing_combo(mac_ctx->psoc, PM_STA_MODE);
@@ -20020,8 +20001,6 @@
qdf_mem_copy(&msg->extended_rateset, ¶m.extendedRateSet,
sizeof(msg->extended_rateset));
- sme_debug("target_chan_freq %d ch_width %d dot11mode %d",
- msg->target_chan_freq, msg->ch_width, msg->dot11mode);
status = umac_send_mb_message_to_mac(msg);
return status;
@@ -20374,7 +20353,7 @@
cds_flush_logs(WLAN_LOG_TYPE_FATAL,
WLAN_LOG_INDICATOR_HOST_DRIVER,
WLAN_LOG_REASON_ROAM_HO_FAILURE,
- true, false);
+ false, false);
}
#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
@@ -20400,15 +20379,13 @@
uint8_t num_channels = channel_info->numChannels;
uint8_t ch_num;
- sme_debug("Num of %s channels, %d", ch_name, num_channels);
+ sme_debug("Num %s channels, %d", ch_name, num_channels);
for (idx = 0; idx < num_channels &&
*i < (REG_MAX_SUPP_OPER_CLASSES - 1); idx++) {
wlan_reg_freq_to_chan_op_class(
mac_ctx->pdev, channel_info->channel_freq_list[idx],
false, BIT(BEHAV_NONE), &class, &ch_num);
- sme_debug("for chan freq %d, op class: %d",
- channel_info->channel_freq_list[idx], class);
found = false;
for (j = 0; j < REG_MAX_SUPP_OPER_CLASSES - 1; j++) {
@@ -20461,11 +20438,6 @@
}
}
- sme_debug("Number of unique supported op classes %d",
- numClasses);
- for (i = 0; i < numClasses; i++)
- sme_debug("supported opClasses[%d] = %d", i, opClasses[i]);
-
/* Set the ordered list of op classes in regdomain
* for use by other modules
*/
diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c
index 69bcbec..70b1ae5 100644
--- a/core/sme/src/csr/csr_api_scan.c
+++ b/core/sme/src/csr/csr_api_scan.c
@@ -1553,16 +1553,10 @@
for (idx = 0; idx < ch_set->numChannels; idx++) {
ch_pwr_set->first_freq =
ch_set->first_chan_freq;
- sme_debug(
- "Setting Channel freq %d",
- ch_pwr_set->first_freq);
ch_pwr_set->numChannels = 1;
ch_pwr_set->maxTxPower =
QDF_MIN(ch_set->txPower,
mac->mlme_cfg->power.max_tx_power);
- sme_debug(
- "Setting Max Transmit Power %d",
- ch_pwr_set->maxTxPower);
cbLen += sizeof(tSirMacChanInfo);
ch_pwr_set++;
count++;
@@ -1578,14 +1572,9 @@
break;
}
ch_pwr_set->first_freq = ch_set->first_chan_freq;
- sme_debug("Setting Channel Freq %d", ch_pwr_set->first_freq);
ch_pwr_set->numChannels = ch_set->numChannels;
ch_pwr_set->maxTxPower = QDF_MIN(ch_set->txPower,
mac->mlme_cfg->power.max_tx_power);
- sme_debug(
- "Setting Max Tx Power %d, nTxPower %d",
- ch_pwr_set->maxTxPower,
- mac->mlme_cfg->power.max_tx_power);
cbLen += sizeof(tSirMacChanInfo);
ch_pwr_set++;
count++;
@@ -1624,7 +1613,7 @@
uint8_t cc[CFG_COUNTRY_CODE_LEN];
/* v_REGDOMAIN_t DomainId */
- sme_debug("Setting Country Code in Cfg %s", countryCode);
+ sme_debug("Set Country in Cfg %s", countryCode);
qdf_mem_copy(cc, countryCode, CFG_COUNTRY_CODE_LEN);
/*
@@ -1650,7 +1639,6 @@
*/
qdf_mem_copy(mac->mlme_cfg->reg.country_code, cc, CFG_COUNTRY_CODE_LEN);
mac->mlme_cfg->reg.country_code_len = CFG_COUNTRY_CODE_LEN;
- sme_debug("CFG_COUNTRY_CODE changed");
sch_edca_profile_update_all(mac);
/*
* Need to let HALPHY know about the current domain so it can apply some
diff --git a/core/sme/src/csr/csr_host_scan_roam.c b/core/sme/src/csr/csr_host_scan_roam.c
index 13a13d3..09bbc15 100644
--- a/core/sme/src/csr/csr_host_scan_roam.c
+++ b/core/sme/src/csr/csr_host_scan_roam.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -454,9 +454,6 @@
{
tpCsrNeighborRoamBSSInfo result = NULL;
- sme_debug("Emptying the BSS list. Current count: %d",
- csr_ll_count(llist));
-
/*
* Pick up the head, remove and free the node till
* the list becomes empty
diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c
index 518fa0c..79c7b73 100644
--- a/core/sme/src/csr/csr_neighbor_roam.c
+++ b/core/sme/src/csr/csr_neighbor_roam.c
@@ -610,8 +610,6 @@
* clear all the whitelist parameters and remaining
* needs to be retained across connections.
*/
- QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
- FL("Roaming parameters are reset"));
roam_params = &mac_ctx->roam.configParam.roam_params;
roam_params->num_ssid_allowed_list = 0;
qdf_mem_zero(&roam_params->ssid_allowed_list,
@@ -624,7 +622,6 @@
{
struct roam_triggers triggers;
- sme_debug("Disable roam control config done through SET");
sme_set_roam_config_enable(MAC_HANDLE(mac_ctx), vdev_id, 0);
triggers.vdev_id = vdev_id;
diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c
index 336d0fe..6c4d42c 100644
--- a/core/sme/src/csr/csr_util.c
+++ b/core/sme/src/csr/csr_util.c
@@ -1000,8 +1000,6 @@
uint32_t sap_lfreq, sap_hfreq, intf_lfreq, intf_hfreq;
QDF_STATUS status;
- sme_debug("sap_ch_freq: %d sap_phymode: %d", sap_ch_freq, sap_phymode);
-
if (mac_ctx->roam.configParam.cc_switch_mode ==
QDF_MCC_TO_SCC_SWITCH_DISABLE)
return 0;
@@ -1022,7 +1020,7 @@
}
sme_debug("sap_ch:%d sap_phymode:%d sap_cch:%d sap_hbw:%d chb:%d",
- sap_ch_freq, sap_phymode, sap_cfreq, sap_hbw, chb);
+ sap_ch_freq, sap_phymode, sap_cfreq, sap_hbw, chb);
for (i = 0; i < WLAN_MAX_VDEVS; i++) {
if (!CSR_IS_SESSION_VALID(mac_ctx, i))
@@ -1055,11 +1053,6 @@
session, &sap_ch_freq, &sap_hbw,
&sap_cfreq, &intf_ch_freq, &intf_hbw,
&intf_cfreq);
-
- sme_debug("%d: sap_ch:%d sap_hbw:%d sap_cfreq:%d"
- " intf_ch:%d intf_hbw:%d, intf_cfreq:%d",
- i, sap_ch_freq, sap_hbw, sap_cfreq,
- intf_ch_freq, intf_hbw, intf_cfreq);
}
if (intf_ch_freq &&
((intf_ch_freq <= wlan_reg_ch_to_freq(CHAN_ENUM_2484) &&
@@ -1070,8 +1063,8 @@
}
sme_debug("intf_ch:%d sap_ch:%d cc_switch_mode:%d, dbs:%d",
- intf_ch_freq, sap_ch_freq, cc_switch_mode,
- policy_mgr_is_dbs_enable(mac_ctx->psoc));
+ intf_ch_freq, sap_ch_freq, cc_switch_mode,
+ policy_mgr_is_dbs_enable(mac_ctx->psoc));
if (intf_ch_freq && sap_ch_freq != intf_ch_freq &&
!policy_mgr_is_force_scc(mac_ctx->psoc)) {
diff --git a/core/sme/src/rrm/sme_rrm.c b/core/sme/src/rrm/sme_rrm.c
index d60fb2e..d86c690 100644
--- a/core/sme/src/rrm/sme_rrm.c
+++ b/core/sme/src/rrm/sme_rrm.c
@@ -36,6 +36,7 @@
#include "rrm_global.h"
#include <wlan_scan_ucfg_api.h>
#include <wlan_scan_utils_api.h>
+#include <wlan_reg_services_api.h>
#include <wlan_utility.h>
/* Roam score for a neighbor AP will be calculated based on the below
@@ -687,7 +688,7 @@
ch_idx = pSmeRrmContext->currentIndex;
num_chan = pSmeRrmContext->channelList.numOfChannels;
if (((ch_idx + 1) < num_chan) && valid_result) {
- sme_rrm_send_scan_result(mac, 1, freq_list, false);
+ sme_rrm_send_scan_result(mac, 1, &freq_list[ch_idx], false);
/* Advance the current index. */
pSmeRrmContext->currentIndex++;
/* start the timer to issue next request. */
@@ -711,7 +712,7 @@
/* Done with the measurement. Clean up all context and send a
* message to PE with measurement done flag set.
*/
- sme_rrm_send_scan_result(mac, 1, freq_list, true);
+ sme_rrm_send_scan_result(mac, 1, &freq_list[ch_idx], true);
qdf_mem_free(pSmeRrmContext->channelList.freq_list);
pSmeRrmContext->channelList.freq_list = NULL;
sme_reset_ese_bcn_req_in_progress(pSmeRrmContext);
@@ -924,7 +925,7 @@
ch_idx = sme_rrm_ctx->currentIndex;
if ((ch_idx + 1) < sme_rrm_ctx->channelList.numOfChannels) {
sme_rrm_send_scan_result(mac_ctx, 1,
- freq_list, false);
+ &freq_list[ch_idx], false);
/* Advance the current index. */
sme_rrm_ctx->currentIndex++;
sme_rrm_issue_scan_req(mac_ctx);
@@ -938,7 +939,7 @@
* send a message to PE with measurement done flag set.
*/
sme_rrm_send_scan_result(mac_ctx, 1,
- freq_list, true);
+ &freq_list[ch_idx], true);
goto free_ch_lst;
}
}
@@ -961,31 +962,28 @@
static QDF_STATUS sme_rrm_fill_scan_channels(struct mac_context *mac,
uint8_t *country,
tpRrmSMEContext sme_rrm_context,
- uint8_t reg_class,
+ uint8_t op_class,
uint32_t num_channels)
{
uint32_t num_chan = 0;
uint32_t i;
uint32_t *freq_list;
- uint16_t op_class;
-
- /* List all the channels in the requested RC */
- wlan_reg_dmn_print_channels_in_opclass(country, reg_class);
+ bool found;
freq_list = sme_rrm_context->channelList.freq_list;
-
+ found = false;
for (i = 0; i < num_channels; i++) {
- uint8_t chan = (uint8_t)wlan_reg_freq_to_chan(mac->pdev,
- freq_list[i]);
- op_class = wlan_reg_dmn_get_opclass_from_channel(country,
- chan,
- BWALL);
-
- if (op_class == reg_class) {
+ found = wlan_reg_country_opclass_freq_check(mac->pdev,
+ country,
+ op_class,
+ freq_list[i]);
+ if (found) {
freq_list[num_chan] = freq_list[i];
num_chan++;
}
+ found = false;
}
+
sme_rrm_context->channelList.numOfChannels = num_chan;
if (sme_rrm_context->channelList.numOfChannels == 0) {
qdf_mem_free(sme_rrm_context->channelList.freq_list);
diff --git a/core/wma/inc/wma_api.h b/core/wma/inc/wma_api.h
index 7789ec4..3fb13b2 100644
--- a/core/wma/inc/wma_api.h
+++ b/core/wma/inc/wma_api.h
@@ -285,6 +285,25 @@
QDF_STATUS wma_set_cts2self_for_p2p_go(void *wma_handle,
uint32_t cts2self_for_p2p_go);
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * wma_get_roam_scan_ch() - API to get roam scan channel list.
+ * @wma_handle: pointer to wma handle.
+ * @vdev_id: vdev id
+ *
+ * Return: QDF_STATUS.
+ */
+QDF_STATUS wma_get_roam_scan_ch(wmi_unified_t wma,
+ uint8_t vdev_id);
+#else
+static inline
+QDF_STATUS wma_get_roam_scan_ch(wmi_unified_t wma,
+ uint8_t vdev_id)
+{
+ return QDF_STATUS_E_FAILURE;
+}
+#endif
+
/**
* wma_set_tx_rx_aggr_size() - set tx rx aggregation size
* @vdev_id: vdev id
diff --git a/core/wma/inc/wma_internal.h b/core/wma/inc/wma_internal.h
index 20733f5..0148e19 100644
--- a/core/wma/inc/wma_internal.h
+++ b/core/wma/inc/wma_internal.h
@@ -301,6 +301,27 @@
}
#endif
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * wma_roam_scan_chan_list_event_handler() - roam scan chan list event handler
+ * @handle: wma handle
+ * @event: pointer to fw event
+ * @len: length of event
+ *
+ * Return: Success or Failure status
+ */
+int wma_roam_scan_chan_list_event_handler(WMA_HANDLE handle,
+ uint8_t *event,
+ uint32_t len);
+#else
+static inline int
+wma_roam_scan_chan_list_event_handler(WMA_HANDLE handle, uint8_t *event,
+ uint32_t len)
+{
+ return 0;
+}
+#endif
+
/**
* wma_update_per_roam_config() -per roam config parameter updation to FW
* @handle: wma handle
@@ -1783,6 +1804,16 @@
*/
bool wma_is_vdev_valid(uint32_t vdev_id);
+/*
+ * wma_is_vdev_started() - check whether vdev is started or not
+ * @vdev: pointer to vdev object
+ *
+ * This function verifies the vdev is started nor not
+ *
+ * Return: 'true' if vdev is started else 'false'
+ */
+bool wma_is_vdev_started(struct wlan_objmgr_vdev *vdev);
+
/**
* wma_vdev_obss_detection_info_handler - event handler to handle obss detection
* @handle: the wma handle
diff --git a/core/wma/inc/wma_tgt_cfg.h b/core/wma/inc/wma_tgt_cfg.h
index e3304a5..c5a09f9 100644
--- a/core/wma/inc/wma_tgt_cfg.h
+++ b/core/wma/inc/wma_tgt_cfg.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -43,6 +43,7 @@
* @twt_requestor: TWT requestor capability
* @twt_responder: TWT responder capability
* @bcn_reception_stats: Beacon Reception stats capability
+ * @is_roam_scan_ch_to_host: Get roam scan channels from fw supported
*/
struct wma_tgt_services {
uint32_t sta_power_save;
@@ -75,6 +76,7 @@
bool twt_responder;
bool obss_scan_offload;
bool bcn_reception_stats;
+ bool is_roam_scan_ch_to_host;
};
/**
diff --git a/core/wma/inc/wma_types.h b/core/wma/inc/wma_types.h
index bd177b4..5db280b 100644
--- a/core/wma/inc/wma_types.h
+++ b/core/wma/inc/wma_types.h
@@ -165,6 +165,8 @@
#define WMA_TSM_STATS_RSP SIR_HAL_TSM_STATS_RSP
#endif
+#define WMA_ROAM_SCAN_CH_REQ SIR_HAL_ROAM_SCAN_CH_REQ
+
#define WMA_HT40_OBSS_SCAN_IND SIR_HAL_HT40_OBSS_SCAN_IND
#define WMA_SET_MIMOPS_REQ SIR_HAL_SET_MIMOPS_REQ
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index 15d9e23..e556407 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -712,7 +712,6 @@
wlan_objmgr_peer_obj_delete(obj_peer);
/* Unref to decrement ref happened in find_peer */
wlan_objmgr_peer_release_ref(obj_peer, WLAN_LEGACY_WMA_ID);
- WMA_LOGD("Peer %pM deleted", peer_addr);
} else {
WMA_LOGE("Peer %pM not found", peer_addr);
}
@@ -1018,9 +1017,6 @@
static void wma_handle_hidden_ssid_restart(tp_wma_handle wma,
struct wma_txrx_node *iface)
{
- WMA_LOGE("%s: vdev restart event recevied for hidden ssid set using IOCTL",
- __func__);
-
wlan_vdev_mlme_sm_deliver_evt(iface->vdev,
WLAN_VDEV_SM_EV_RESTART_RESP,
0, NULL);
@@ -1056,14 +1052,13 @@
/* for CSA case firmware expects phymode before ch_wd */
status = wma_set_peer_param(wma, bssid, WMI_PEER_PHYMODE, fw_phymode,
vdev_id);
- WMA_LOGD("%s:vdev_id %d fw_phy_mode %d bss_phymode %d status %d",
- __func__, vdev_id, fw_phymode, bss_phymode, status);
+
ch_width = wmi_get_ch_width_from_phy_mode(wma->wmi_handle, fw_phymode);
status = wma_set_peer_param(wma, bssid, WMI_PEER_CHWIDTH, ch_width,
vdev_id);
- WMA_LOGD("%s:vdev_id %d chanwidth %d status %d", __func__, vdev_id,
- ch_width, status);
+ wma_debug("vdev_id %d fw_phy_mode %d bss_phymode %d chanwidth %d",
+ vdev_id, fw_phymode, bss_phymode, ch_width);
}
static void wma_sap_peer_send_phymode(struct wlan_objmgr_vdev *vdev,
@@ -1122,9 +1117,9 @@
wma_set_peer_param(wma, peer_mac_addr, WMI_PEER_CHWIDTH,
max_ch_width_supported, vdev_id);
- wma_debug("nw_type %d old phymode %d new phymode %d bw %d macaddr "QDF_MAC_ADDR_STR,
- nw_type, old_peer_phymode, new_phymode,
- max_ch_width_supported, QDF_MAC_ADDR_ARRAY(peer_mac_addr));
+ wma_debug("old phymode %d new phymode %d bw %d macaddr "QDF_MAC_ADDR_STR,
+ old_peer_phymode, new_phymode, max_ch_width_supported,
+ QDF_MAC_ADDR_ARRAY(peer_mac_addr));
}
static void
@@ -1224,8 +1219,6 @@
}
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
- WMA_LOGD("%s: Enter", __func__);
-
wlan_res_cfg = lmac_get_tgt_res_cfg(psoc);
if (!wlan_res_cfg) {
WMA_LOGE("%s: Wlan resource config is NULL", __func__);
@@ -1343,6 +1336,14 @@
return wma_handle->interfaces[vdev_id].vdev_active;
}
+bool wma_is_vdev_started(struct wlan_objmgr_vdev *vdev)
+{
+ if (WLAN_VDEV_S_START == wlan_vdev_mlme_get_state(vdev))
+ return true;
+ else
+ return false;
+}
+
/**
* wma_vdev_set_param() - set per vdev params in fw
* @wmi_handle: wmi handle
diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c
index 953a678..69022ef 100644
--- a/core/wma/src/wma_features.c
+++ b/core/wma/src/wma_features.c
@@ -1205,10 +1205,9 @@
csa_offload_event->ies_present_flag = csa_event->ies_present_flag;
- WMA_LOGD("CSA: New Channel = %d freq %d BSSID:%pM",
- csa_offload_event->channel, csa_offload_event->csa_chan_freq,
- csa_offload_event->bssId);
- WMA_LOGD("CSA: IEs Present Flag = 0x%x new ch width = %d ch center freq1 = %d ch center freq2 = %d new op class = %d",
+ WMA_LOGD("CSA: BSSID %pM chan %d freq %d flag 0x%x width = %d freq1 = %d freq2 = %d op class = %d",
+ csa_offload_event->bssId, csa_offload_event->channel,
+ csa_offload_event->csa_chan_freq,
csa_event->ies_present_flag,
csa_offload_event->new_ch_width,
csa_offload_event->new_ch_freq_seg1,
diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c
index 6480a45..96ada2d 100644
--- a/core/wma/src/wma_main.c
+++ b/core/wma/src/wma_main.c
@@ -867,8 +867,6 @@
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
struct target_psoc_info *tgt_hdl;
- WMA_LOGD("wmihandle %pK", wma->wmi_handle);
-
if (!mac) {
WMA_LOGE("%s: Failed to get mac", __func__);
return;
@@ -3264,6 +3262,11 @@
wma_roam_stats_event_handler,
WMA_RX_SERIALIZER_CTX);
+ wmi_unified_register_event_handler(
+ wma_handle->wmi_handle, wmi_roam_scan_chan_list_id,
+ wma_roam_scan_chan_list_event_handler,
+ WMA_RX_SERIALIZER_CTX);
+
wma_register_pmkid_req_event_handler(wma_handle);
#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
wmi_unified_register_event_handler(wma_handle->wmi_handle,
@@ -4663,6 +4666,9 @@
if (wmi_service_enabled(wmi_handle, wmi_service_vdev_latency_config))
g_fw_wlan_feat_caps |= (1 << VDEV_LATENCY_CONFIG);
+ if (wmi_service_enabled(wmi_handle,
+ wmi_roam_scan_chan_list_to_host_support))
+ cfg->is_roam_scan_ch_to_host = true;
}
/**
@@ -5340,8 +5346,10 @@
uint8_t supported_band = 0;
if (!policy_mgr_find_if_fw_supports_dbs(psoc) ||
- !policy_mgr_find_if_hwlist_has_dbs(psoc))
+ !policy_mgr_find_if_hwlist_has_dbs(psoc)) {
+ wma_debug("DBS is not mandatory");
return false;
+ }
total_mac_phy_cnt = target_psoc_get_total_mac_phy_cnt(tgt_hdl);
mac_phy_cap = target_psoc_get_mac_phy_cap(tgt_hdl);
@@ -7541,22 +7549,35 @@
QDF_STATUS status;
struct set_arp_stats *arp_stats;
tp_wma_handle wma_handle = (tp_wma_handle) handle;
+ struct wlan_objmgr_vdev *vdev;
if (!wma_handle || !wma_handle->wmi_handle) {
WMA_LOGE("%s: WMA is closed, cannot send per roam config",
__func__);
return;
}
+
if (!wma_is_vdev_valid(req_buf->vdev_id)) {
WMA_LOGE("vdev id:%d is not active", req_buf->vdev_id);
return;
}
+ vdev = wlan_objmgr_get_vdev_by_id_from_psoc(wma_handle->psoc,
+ req_buf->vdev_id,
+ WLAN_LEGACY_WMA_ID);
+ if (!wma_is_vdev_started(vdev)) {
+ WMA_LOGD("vdev id:%d is not started", req_buf->vdev_id);
+ goto release_ref;
+ }
+
arp_stats = (struct set_arp_stats *)req_buf;
status = wmi_unified_set_arp_stats_req(wma_handle->wmi_handle,
arp_stats);
if (QDF_IS_STATUS_ERROR(status))
wma_err("failed to set arp stats to FW");
+
+release_ref:
+ wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_WMA_ID);
}
/**
@@ -8917,6 +8938,9 @@
wma_update_roam_offload_flag(wma_handle, msg->bodyptr);
qdf_mem_free(msg->bodyptr);
break;
+ case WMA_ROAM_SCAN_CH_REQ:
+ wma_get_roam_scan_ch(wma_handle->wmi_handle, msg->bodyval);
+ break;
default:
WMA_LOGD("Unhandled WMA message of type %d", msg->type);
if (msg->bodyptr)
@@ -9036,15 +9060,16 @@
msg->chan_weights.saved_chan_list[i]))
msg->chan_weights.weighed_valid_list[i] =
WEIGHT_OF_DISALLOWED_CHANNELS;
- WMA_LOGD("%s: freq:%d weight[%d]=%d", __func__,
- msg->chan_weights.saved_chan_list[i], i,
- msg->chan_weights.weighed_valid_list[i]);
}
if (!QDF_IS_STATUS_SUCCESS(status)) {
WMA_LOGE("%s: Error in creating weighed pcl", __func__);
return status;
}
+ wma_debug("Dump channel list send to wmi");
+ policy_mgr_dump_channel_list(msg->chan_weights.saved_num_chan,
+ msg->chan_weights.saved_chan_list,
+ msg->chan_weights.weighed_valid_list);
if (wmi_unified_pdev_set_pcl_cmd(wma_handle->wmi_handle,
&msg->chan_weights))
diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c
index e5d3187..3783a64 100644
--- a/core/wma/src/wma_mgmt.c
+++ b/core/wma/src/wma_mgmt.c
@@ -2221,7 +2221,6 @@
SIR_MAX_BEACON_SIZE - sizeof(uint32_t)));
return QDF_STATUS_E_INVAL;
}
- wma_debug("Storing received beacon template buf to local buffer");
qdf_spin_lock_bh(&bcn->lock);
/*
@@ -2446,7 +2445,6 @@
if (wmi_service_enabled(wma->wmi_handle,
wmi_service_beacon_offload)) {
- wma_nofl_debug("Beacon Offload Enabled Sending Unified command");
status = wma_unified_bcn_tmpl_send(wma, vdev_id, bcn_info, 4);
if (QDF_IS_STATUS_ERROR(status)) {
WMA_LOGE("%s : wmi_unified_bcn_tmpl_send Failed ",
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 4968bfd..a2486a4 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -162,11 +162,6 @@
wma_handle->saved_chan.ch_freq_list[i] =
chan_list->chanParam[i].freq;
- WMA_LOGD("chan[%d] = freq:%u DFS:%d tx power:%d",
- i, chan_p->mhz,
- chan_list->chanParam[i].dfsSet,
- chan_list->chanParam[i].pwr);
-
if (chan_list->chanParam[i].dfsSet) {
chan_p->is_chan_passive = 1;
chan_p->dfs_set = 1;
@@ -728,7 +723,8 @@
{
QDF_STATUS status;
int i;
- uint32_t *chan_list_mhz = NULL;
+ uint32_t *chan_list_mhz = NULL, buf_len = 0, len = 0;
+ uint8_t *chan_buff = NULL;
if (!wma_is_vdev_valid(vdev_id)) {
WMA_LOGE("%s: Invalid vdev id:%d", __func__, vdev_id);
@@ -739,12 +735,27 @@
chan_list_mhz = qdf_mem_malloc(chan_count * sizeof(*chan_list_mhz));
if (!chan_list_mhz)
return QDF_STATUS_E_NOMEM;
+
+ /*
+ * Buffer of (num channl * 5) + 1 to consider the 4 char freq
+ * and 1 space after it for each channel and 1 to end the string
+ * with NULL.
+ */
+ buf_len = (chan_count * 5) + 1;
+ chan_buff = qdf_mem_malloc(buf_len);
}
for (i = 0; ((i < chan_count) &&
(i < SIR_ROAM_MAX_CHANNELS)); i++) {
chan_list_mhz[i] = chan_freq_list[i];
- WMA_LOGD("%d,", chan_list_mhz[i]);
+ if (chan_buff)
+ len += qdf_scnprintf(chan_buff + len, buf_len - len,
+ " %d", chan_list_mhz[i]);
+ }
+
+ if (chan_buff) {
+ wma_debug("Freq list[%d]:%s", chan_count, chan_buff);
+ qdf_mem_free(chan_buff);
}
status = wmi_unified_roam_scan_offload_chan_list_cmd(
@@ -3262,6 +3273,69 @@
return 0;
}
+int wma_roam_scan_chan_list_event_handler(WMA_HANDLE handle,
+ uint8_t *event,
+ uint32_t len)
+{
+ tp_wma_handle wma = (tp_wma_handle)handle;
+ WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID_param_tlvs *param_buf;
+ wmi_roam_scan_channel_list_event_fixed_param *fixed_param;
+ uint8_t vdev_id, i = 0, num_ch = 0;
+ struct roam_scan_ch_resp *resp;
+ struct scheduler_msg sme_msg = {0};
+
+ param_buf = (WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID_param_tlvs *)event;
+ if (!param_buf) {
+ wma_err_rl("NULL event received from target");
+ return -EINVAL;
+ }
+
+ fixed_param = param_buf->fixed_param;
+ if (!fixed_param) {
+ wma_err_rl(" NULL fixed param");
+ return -EINVAL;
+ }
+
+ vdev_id = fixed_param->vdev_id;
+ if (vdev_id >= wma->max_bssid) {
+ wma_err_rl("Invalid vdev_id %d", vdev_id);
+ return -EINVAL;
+ }
+
+ num_ch = (param_buf->num_channel_list <
+ WNI_CFG_VALID_CHANNEL_LIST_LEN) ?
+ param_buf->num_channel_list :
+ WNI_CFG_VALID_CHANNEL_LIST_LEN;
+
+ resp = qdf_mem_malloc(sizeof(struct roam_scan_ch_resp) +
+ num_ch * sizeof(param_buf->channel_list[0]));
+ if (!resp) {
+ wma_err_rl("Failed to alloc resp message");
+ return -EINVAL;
+ }
+
+ resp->chan_list = (uint32_t *)(resp + 1);
+ resp->vdev_id = vdev_id;
+ resp->command_resp = fixed_param->command_response;
+ resp->num_channels = param_buf->num_channel_list;
+
+ for (i = 0; i < num_ch; i++)
+ resp->chan_list[i] = param_buf->channel_list[i];
+
+ sme_msg.type = eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT;
+ sme_msg.bodyptr = resp;
+
+ if (scheduler_post_message(QDF_MODULE_ID_WMA,
+ QDF_MODULE_ID_SME,
+ QDF_MODULE_ID_SME, &sme_msg)) {
+ WMA_LOGE(FL("Failed to post msg to SME"));
+ qdf_mem_free(sme_msg.bodyptr);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
/**
* wma_get_trigger_detail_str - Return roam trigger string from the
@@ -3546,13 +3620,20 @@
buf_left -= buf_cons;
tmp += buf_cons;
}
- mlme_get_converted_timestamp(neigh_rpt->req_time, time);
- WMA_LOGI("%s [%s] RX: VDEV[%d] %s", time,
- (type == 1) ? "BTM" : "NEIGH_RPT", vdev_id, buf);
- mlme_get_converted_timestamp(neigh_rpt->resp_time, time1);
- WMA_LOGI("%s [%s] TX: VDEV[%d]", time1,
- (type == 1) ? "BTM" : "NEIGH_RPT", vdev_id);
+ mlme_get_converted_timestamp(neigh_rpt->req_time, time);
+ WMA_LOGI("%s [%s] VDEV[%d]", time,
+ (type == 1) ? "BTM_QUERY" : "NEIGH_RPT_REQ", vdev_id);
+
+ if (neigh_rpt->resp_time) {
+ mlme_get_converted_timestamp(neigh_rpt->resp_time, time1);
+ WMA_LOGI("%s [%s] VDEV[%d] %s", time1,
+ (type == 1) ? "BTM_REQ" : "NEIGH_RPT_RSP", vdev_id,
+ (num_ch > 0) ? buf : "NO Ch update");
+ } else {
+ WMA_LOGI("%s No response received from AP",
+ (type == 1) ? "BTM" : "NEIGH_RPT");
+ }
qdf_mem_free(buf);
}
diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c
index 95a62eb..cf090b8 100644
--- a/core/wma/src/wma_utils.c
+++ b/core/wma/src/wma_utils.c
@@ -1795,12 +1795,6 @@
return -EINVAL;
}
- WMA_LOGD("%s: tot_num_tx_pwr_lvls: %u num_tx_pwr_lvls: %u pwr_lvl_offset: %u radio_id: %u",
- __func__, fixed_param->total_num_tx_power_levels,
- fixed_param->num_tx_power_levels,
- fixed_param->power_level_offset,
- fixed_param->radio_id);
-
if (fixed_param->num_tx_power_levels > ((WMI_SVC_MSG_MAX_SIZE -
sizeof(*fixed_param)) / sizeof(uint32_t)) ||
fixed_param->num_tx_power_levels >
@@ -1879,11 +1873,12 @@
link_stats_results->moreResultToFollow = 0;
link_stats_results->nr_received++;
}
-
- WMA_LOGD("%s: moreResultToFollow: %u nr: %u nr_received: %u",
- __func__, link_stats_results->moreResultToFollow,
- link_stats_results->num_radio,
- link_stats_results->nr_received);
+ WMA_LOGD("num tx pwr lvls %u num tx pwr lvls %u pwr lvl offset %u radio_id %u moretofollow: %u nr_received: %u",
+ fixed_param->total_num_tx_power_levels,
+ fixed_param->num_tx_power_levels,
+ fixed_param->power_level_offset, fixed_param->radio_id,
+ link_stats_results->moreResultToFollow,
+ link_stats_results->nr_received);
/* If still data to receive, return from here */
if (link_stats_results->moreResultToFollow)
@@ -2038,17 +2033,6 @@
fixed_param->request_id, fixed_param->num_radio,
fixed_param->more_radio_events);
- WMA_LOGD("Radio Info: radio_id: %u on_time: %u tx_time: %u rx_time: %u on_time_scan: %u on_time_nbd: %u on_time_gscan: %u on_time_roam_scan: %u",
- radio_stats->radio_id, radio_stats->on_time,
- radio_stats->tx_time, radio_stats->rx_time,
- radio_stats->on_time_scan, radio_stats->on_time_nbd,
- radio_stats->on_time_gscan, radio_stats->on_time_roam_scan);
-
- WMA_LOGD("on_time_pno_scan: %u on_time_hs20: %u num_channels: %u on_time_host_scan: %u, on_time_lpi_scan: %u",
- radio_stats->on_time_pno_scan, radio_stats->on_time_hs20,
- radio_stats->num_channels, radio_stats->on_time_host_scan,
- radio_stats->on_time_lpi_scan);
-
results = (uint8_t *) link_stats_results->results;
t_radio_stats = (uint8_t *) radio_stats;
t_channel_stats = (uint8_t *) channel_stats;
@@ -2089,11 +2073,10 @@
next_chan_offset = WMI_TLV_HDR_SIZE;
WMA_LOGD("Channel Stats Info");
for (count = 0; count < radio_stats->num_channels; count++) {
- WMA_LOGD("channel_width %u center_freq %u center_freq0 %u",
- channel_stats->channel_width,
+ WMA_LOGD("freq %u width %u freq0 %u freq1 %u awake time %u cca busy time %u",
channel_stats->center_freq,
- channel_stats->center_freq0);
- WMA_LOGD("center_freq1 %u radio_awake_time %u cca_busy_time %u",
+ channel_stats->channel_width,
+ channel_stats->center_freq0,
channel_stats->center_freq1,
channel_stats->radio_awake_time,
channel_stats->cca_busy_time);
@@ -2782,6 +2765,11 @@
param_buf->fixed_param;
ht_info = (wmi_vdev_rate_ht_info *) param_buf->ht_info;
+ if (!ht_info) {
+ wma_err("Invalid ht_info");
+ return -EINVAL;
+ }
+
WMA_LOGD("num_vdev_stats: %d", event->num_vdev_stats);
if (event->num_vdev_stats > ((WMI_SVC_MSG_MAX_SIZE -
@@ -3726,6 +3714,47 @@
}
#endif
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+QDF_STATUS wma_get_roam_scan_ch(wmi_unified_t wmi_handle,
+ uint8_t vdev_id)
+{
+ QDF_STATUS status = QDF_STATUS_E_FAILURE;
+ struct roam_scan_ch_resp *roam_ch;
+ struct scheduler_msg sme_msg = {0};
+
+ if (!wma_is_vdev_valid(vdev_id)) {
+ wma_err("vdev_id: %d is not active", vdev_id);
+ return QDF_STATUS_E_INVAL;
+ }
+
+ status = wmi_unified_get_roam_scan_ch_list(wmi_handle, vdev_id);
+ if (QDF_IS_STATUS_SUCCESS(status))
+ return status;
+ roam_ch = qdf_mem_malloc(sizeof(struct roam_scan_ch_resp));
+ if (!roam_ch) {
+ wma_err("Failed to alloc resp");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ roam_ch->command_resp = 1;
+ roam_ch->num_channels = 0;
+ roam_ch->chan_list = NULL;
+ roam_ch->vdev_id = vdev_id;
+ sme_msg.type = eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT;
+ sme_msg.bodyptr = roam_ch;
+
+ if (scheduler_post_message(QDF_MODULE_ID_WMA,
+ QDF_MODULE_ID_SME,
+ QDF_MODULE_ID_SME, &sme_msg)) {
+ wma_err("Failed to post msg to SME");
+ qdf_mem_free(roam_ch);
+ return QDF_STATUS_E_INVAL;
+ }
+
+ return status;
+}
+#endif
+
bool wma_capability_enhanced_mcast_filter(void)
{
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
diff --git a/os_if/p2p/src/wlan_cfg80211_p2p.c b/os_if/p2p/src/wlan_cfg80211_p2p.c
index 15ee29f..ddeba7b 100644
--- a/os_if/p2p/src/wlan_cfg80211_p2p.c
+++ b/os_if/p2p/src/wlan_cfg80211_p2p.c
@@ -54,10 +54,6 @@
struct vdev_osif_priv *osif_priv;
struct wireless_dev *wdev;
- osif_debug("user data:%pK, vdev id:%d, rssi:%d, buf:%pK, len:%d",
- user_data, rx_frame->vdev_id, rx_frame->rx_rssi,
- rx_frame->buf, rx_frame->frame_len);
-
psoc = user_data;
if (!psoc) {
osif_err("psoc is null");