qcacld-3.0: Use Vdev mlme target if for hidden ssid restart
Use Vdev mlme target if for hidden ssid restart. Change-Id: I915f7911a1f3e01fd6579ed3e33d65bfe8a6c413 CRs-Fixed: 2522556
This commit is contained in:
parent
28845fbe87
commit
356781e02f
@ -458,9 +458,6 @@ struct sir_cfg_action_frm_tb_ppdu {
|
|||||||
#define SIR_HAL_STATS_EXT_REQUEST (SIR_HAL_ITC_MSG_TYPES_BEGIN + 194)
|
#define SIR_HAL_STATS_EXT_REQUEST (SIR_HAL_ITC_MSG_TYPES_BEGIN + 194)
|
||||||
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 195) is unused */
|
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 195) is unused */
|
||||||
#endif /* WLAN_FEATURE_STATS_EXT */
|
#endif /* WLAN_FEATURE_STATS_EXT */
|
||||||
|
|
||||||
#define SIR_HAL_HIDE_SSID_VDEV_RESTART (SIR_HAL_ITC_MSG_TYPES_BEGIN + 196)
|
|
||||||
|
|
||||||
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 197) is unused */
|
/* (SIR_HAL_ITC_MSG_TYPES_BEGIN + 197) is unused */
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_EXTSCAN
|
#ifdef FEATURE_WLAN_EXTSCAN
|
||||||
|
@ -2516,8 +2516,9 @@ void lim_process_mlm_update_hidden_ssid_rsp(struct mac_context *mac_ctx,
|
|||||||
struct scheduler_msg message = {0};
|
struct scheduler_msg message = {0};
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
session_entry = pe_find_session_by_sme_session_id(mac_ctx, vdev_id);
|
pe_debug("hidden ssid resp for vdev_id:%d ", vdev_id);
|
||||||
|
|
||||||
|
session_entry = pe_find_session_by_sme_session_id(mac_ctx, vdev_id);
|
||||||
if (!session_entry) {
|
if (!session_entry) {
|
||||||
pe_err("vdev_id:%d Session Doesn't exist",
|
pe_err("vdev_id:%d Session Doesn't exist",
|
||||||
vdev_id);
|
vdev_id);
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
#include "lim_process_fils.h"
|
#include "lim_process_fils.h"
|
||||||
#include "wlan_utility.h"
|
#include "wlan_utility.h"
|
||||||
#include <wlan_crypto_global_api.h>
|
#include <wlan_crypto_global_api.h>
|
||||||
|
#include "../../core/src/vdev_mgr_ops.h"
|
||||||
|
|
||||||
/* SME REQ processing function templates */
|
/* SME REQ processing function templates */
|
||||||
static bool __lim_process_sme_sys_ready_ind(struct mac_context *, uint32_t *);
|
static bool __lim_process_sme_sys_ready_ind(struct mac_context *, uint32_t *);
|
||||||
@ -3607,33 +3608,23 @@ void
|
|||||||
lim_send_vdev_restart(struct mac_context *mac,
|
lim_send_vdev_restart(struct mac_context *mac,
|
||||||
struct pe_session *pe_session, uint8_t sessionId)
|
struct pe_session *pe_session, uint8_t sessionId)
|
||||||
{
|
{
|
||||||
tpHalHiddenSsidVdevRestart pHalHiddenSsidVdevRestart = NULL;
|
struct vdev_mlme_obj *mlme_obj;
|
||||||
struct scheduler_msg msgQ = {0};
|
|
||||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
|
||||||
|
|
||||||
if (!pe_session) {
|
if (!pe_session) {
|
||||||
pe_err("Invalid parameters");
|
pe_err("Invalid parameters");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pHalHiddenSsidVdevRestart =
|
mlme_obj = wlan_vdev_mlme_get_cmpt_obj(pe_session->vdev);
|
||||||
qdf_mem_malloc(sizeof(tHalHiddenSsidVdevRestart));
|
if (!mlme_obj) {
|
||||||
if (!pHalHiddenSsidVdevRestart)
|
pe_err("vdev component object is NULL");
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pHalHiddenSsidVdevRestart->ssidHidden = pe_session->ssidHidden;
|
|
||||||
pHalHiddenSsidVdevRestart->sessionId = sessionId;
|
|
||||||
pHalHiddenSsidVdevRestart->pe_session_id = pe_session->peSessionId;
|
|
||||||
|
|
||||||
msgQ.type = WMA_HIDDEN_SSID_VDEV_RESTART;
|
|
||||||
msgQ.bodyptr = pHalHiddenSsidVdevRestart;
|
|
||||||
msgQ.bodyval = 0;
|
|
||||||
|
|
||||||
retCode = wma_post_ctrl_msg(mac, &msgQ);
|
|
||||||
if (QDF_STATUS_SUCCESS != retCode) {
|
|
||||||
pe_err("wma_post_ctrl_msg() failed");
|
|
||||||
qdf_mem_free(pHalHiddenSsidVdevRestart);
|
|
||||||
}
|
}
|
||||||
|
pe_debug("pe_session->ssidHidden %d", pe_session->ssidHidden);
|
||||||
|
|
||||||
|
mlme_obj->mgmt.ap.hidden_ssid = pe_session->ssidHidden ? true : false;
|
||||||
|
|
||||||
|
vdev_mgr_start_send(mlme_obj, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -570,7 +570,6 @@ uint8_t *mac_trace_get_wma_msg_string(uint16_t wma_msg)
|
|||||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
CASE_RETURN_STRING(WMA_ROAM_OFFLOAD_SYNCH_IND);
|
CASE_RETURN_STRING(WMA_ROAM_OFFLOAD_SYNCH_IND);
|
||||||
#endif
|
#endif
|
||||||
CASE_RETURN_STRING(WMA_HIDDEN_SSID_VDEV_RESTART);
|
|
||||||
CASE_RETURN_STRING(WMA_UPDATE_RX_NSS);
|
CASE_RETURN_STRING(WMA_UPDATE_RX_NSS);
|
||||||
#ifdef WLAN_FEATURE_NAN
|
#ifdef WLAN_FEATURE_NAN
|
||||||
CASE_RETURN_STRING(WMA_NAN_REQUEST);
|
CASE_RETURN_STRING(WMA_NAN_REQUEST);
|
||||||
|
@ -665,26 +665,6 @@ typedef struct {
|
|||||||
} wma_igtk_key_t;
|
} wma_igtk_key_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* struct vdev_restart_params_t - vdev restart parameters
|
|
||||||
* @vdev_id: vdev id
|
|
||||||
* @ssid: ssid
|
|
||||||
* @flags: flags
|
|
||||||
* @requestor_id: requestor id
|
|
||||||
* @chan: channel
|
|
||||||
* @hidden_ssid_restart_in_progress: hidden ssid restart flag
|
|
||||||
* @ssidHidden: is ssid hidden or not
|
|
||||||
*/
|
|
||||||
typedef struct {
|
|
||||||
A_UINT32 vdev_id;
|
|
||||||
wmi_ssid ssid;
|
|
||||||
A_UINT32 flags;
|
|
||||||
A_UINT32 requestor_id;
|
|
||||||
A_UINT32 disable_hw_ack;
|
|
||||||
wmi_channel chan;
|
|
||||||
uint8_t ssidHidden;
|
|
||||||
} vdev_restart_params_t;
|
|
||||||
|
|
||||||
struct roam_synch_frame_ind {
|
struct roam_synch_frame_ind {
|
||||||
uint32_t bcn_probe_rsp_len;
|
uint32_t bcn_probe_rsp_len;
|
||||||
uint8_t *bcn_probe_rsp;
|
uint8_t *bcn_probe_rsp;
|
||||||
@ -703,7 +683,6 @@ struct roam_synch_frame_ind {
|
|||||||
* @bssid: bssid
|
* @bssid: bssid
|
||||||
* @handle: wma handle
|
* @handle: wma handle
|
||||||
* @beacon: beacon info
|
* @beacon: beacon info
|
||||||
* @vdev_restart_params: vdev restart parameters
|
|
||||||
* @config: per vdev config parameters
|
* @config: per vdev config parameters
|
||||||
* @scan_info: scan info
|
* @scan_info: scan info
|
||||||
* @type: type
|
* @type: type
|
||||||
@ -769,7 +748,6 @@ struct wma_txrx_node {
|
|||||||
uint8_t bssid[QDF_MAC_ADDR_SIZE];
|
uint8_t bssid[QDF_MAC_ADDR_SIZE];
|
||||||
struct cdp_vdev *handle;
|
struct cdp_vdev *handle;
|
||||||
struct beacon_info *beacon;
|
struct beacon_info *beacon;
|
||||||
vdev_restart_params_t vdev_restart_params;
|
|
||||||
vdev_cli_config_t config;
|
vdev_cli_config_t config;
|
||||||
uint32_t type;
|
uint32_t type;
|
||||||
uint32_t sub_type;
|
uint32_t sub_type;
|
||||||
|
@ -937,18 +937,6 @@ struct send_peer_unmap_conf_params {
|
|||||||
uint16_t *peer_id_list;
|
uint16_t *peer_id_list;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* struct tHalHiddenSsidVdevRestart - hidden ssid vdev restart params
|
|
||||||
* @ssidHidden: is hidden ssid or not
|
|
||||||
* @sessionId: session id
|
|
||||||
*/
|
|
||||||
typedef struct tHalHiddenSsidVdevRestart {
|
|
||||||
uint8_t ssidHidden;
|
|
||||||
uint8_t sessionId;
|
|
||||||
uint16_t pe_session_id;
|
|
||||||
} tHalHiddenSsidVdevRestart, *tpHalHiddenSsidVdevRestart;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct tDisableIntraBssFwd - intra bss forward parameters
|
* struct tDisableIntraBssFwd - intra bss forward parameters
|
||||||
* @sessionId: session id
|
* @sessionId: session id
|
||||||
|
@ -811,9 +811,6 @@ void wma_process_update_membership(tp_wma_handle wma_handle,
|
|||||||
void wma_process_update_userpos(tp_wma_handle wma_handle,
|
void wma_process_update_userpos(tp_wma_handle wma_handle,
|
||||||
tUpdateUserPos *userpos);
|
tUpdateUserPos *userpos);
|
||||||
|
|
||||||
void wma_hidden_ssid_vdev_restart(tp_wma_handle wma_handle,
|
|
||||||
tHalHiddenSsidVdevRestart *pReq);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* wma_power.c functions declarations
|
* wma_power.c functions declarations
|
||||||
*/
|
*/
|
||||||
|
@ -248,8 +248,6 @@
|
|||||||
|
|
||||||
#define WMA_TX_FAIL_MONITOR_IND SIR_HAL_TX_FAIL_MONITOR_IND
|
#define WMA_TX_FAIL_MONITOR_IND SIR_HAL_TX_FAIL_MONITOR_IND
|
||||||
|
|
||||||
#define WMA_HIDDEN_SSID_VDEV_RESTART SIR_HAL_HIDE_SSID_VDEV_RESTART
|
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_GTK_OFFLOAD
|
#ifdef WLAN_FEATURE_GTK_OFFLOAD
|
||||||
#define WMA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
|
#define WMA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
|
||||||
#define WMA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
|
#define WMA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
|
||||||
|
@ -1295,16 +1295,18 @@ QDF_STATUS wma_vdev_start_resp_handler(struct vdev_mlme_obj *vdev_mlme,
|
|||||||
|
|
||||||
iface = &wma->interfaces[rsp->vdev_id];
|
iface = &wma->interfaces[rsp->vdev_id];
|
||||||
|
|
||||||
if (wma_get_hidden_ssid_restart_in_progress(iface) &&
|
|
||||||
wma_is_vdev_in_ap_mode(wma, rsp->vdev_id))
|
|
||||||
wma_handle_hidden_ssid_restart(wma, iface);
|
|
||||||
|
|
||||||
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
|
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
|
||||||
if (rsp->status == QDF_STATUS_SUCCESS
|
if (rsp->status == QDF_STATUS_SUCCESS
|
||||||
&& mac_ctx->sap.sap_channel_avoidance)
|
&& mac_ctx->sap.sap_channel_avoidance)
|
||||||
wma_find_mcc_ap(wma, rsp->vdev_id, true);
|
wma_find_mcc_ap(wma, rsp->vdev_id, true);
|
||||||
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
|
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
|
||||||
|
|
||||||
|
if (wma_get_hidden_ssid_restart_in_progress(iface) &&
|
||||||
|
wma_is_vdev_in_ap_mode(wma, rsp->vdev_id)) {
|
||||||
|
wma_handle_hidden_ssid_restart(wma, iface);
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
if (iface->type == WMI_VDEV_TYPE_STA)
|
if (iface->type == WMI_VDEV_TYPE_STA)
|
||||||
assoc_type = mlme_get_assoc_type(vdev_mlme->vdev);
|
assoc_type = mlme_get_assoc_type(vdev_mlme->vdev);
|
||||||
|
|
||||||
@ -2902,10 +2904,6 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||||||
struct wma_txrx_node *intr = wma->interfaces;
|
struct wma_txrx_node *intr = wma->interfaces;
|
||||||
struct mac_context *mac_ctx = NULL;
|
struct mac_context *mac_ctx = NULL;
|
||||||
uint32_t temp_ssid_len = 0;
|
uint32_t temp_ssid_len = 0;
|
||||||
uint32_t temp_flags = 0;
|
|
||||||
uint32_t temp_chan_info = 0;
|
|
||||||
uint32_t temp_reg_info_1 = 0;
|
|
||||||
uint32_t temp_reg_info_2 = 0;
|
|
||||||
uint16_t bw_val;
|
uint16_t bw_val;
|
||||||
struct wma_txrx_node *iface = &wma->interfaces[req->vdev_id];
|
struct wma_txrx_node *iface = &wma->interfaces[req->vdev_id];
|
||||||
uint32_t chan_mode;
|
uint32_t chan_mode;
|
||||||
@ -3031,18 +3029,10 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||||||
intr[params.vdev_id].channel = wlan_reg_freq_to_chan(wma->pdev,
|
intr[params.vdev_id].channel = wlan_reg_freq_to_chan(wma->pdev,
|
||||||
req->op_chan_freq);
|
req->op_chan_freq);
|
||||||
|
|
||||||
temp_chan_info &= 0xffffffc0;
|
|
||||||
temp_chan_info |= params.channel.phy_mode;
|
|
||||||
|
|
||||||
/* Set half or quarter rate WMI flags */
|
/* Set half or quarter rate WMI flags */
|
||||||
params.channel.half_rate = req->is_half_rate;
|
params.channel.half_rate = req->is_half_rate;
|
||||||
params.channel.quarter_rate = req->is_quarter_rate;
|
params.channel.quarter_rate = req->is_quarter_rate;
|
||||||
|
|
||||||
if (req->is_half_rate)
|
|
||||||
temp_chan_info |= (1 << WMI_CHAN_FLAG_HALF_RATE);
|
|
||||||
else if (req->is_quarter_rate)
|
|
||||||
temp_chan_info |= (1 << WMI_CHAN_FLAG_QUARTER_RATE);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the channel has DFS set, flip on radar reporting.
|
* If the channel has DFS set, flip on radar reporting.
|
||||||
*
|
*
|
||||||
@ -3057,7 +3047,6 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||||||
params.cac_duration_ms = req->cac_duration_ms;
|
params.cac_duration_ms = req->cac_duration_ms;
|
||||||
params.regdomain = req->dfs_regdomain;
|
params.regdomain = req->dfs_regdomain;
|
||||||
if ((QDF_GLOBAL_MONITOR_MODE != cds_get_conparam()) && req->is_dfs) {
|
if ((QDF_GLOBAL_MONITOR_MODE != cds_get_conparam()) && req->is_dfs) {
|
||||||
temp_chan_info |= (1 << WMI_CHAN_FLAG_DFS);
|
|
||||||
params.disable_hw_ack = true;
|
params.disable_hw_ack = true;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3074,7 +3063,6 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||||||
if (req->beacon_tx_rate) {
|
if (req->beacon_tx_rate) {
|
||||||
WMA_LOGD("%s: beacon tx rate [%hu * 100 Kbps]",
|
WMA_LOGD("%s: beacon tx rate [%hu * 100 Kbps]",
|
||||||
__func__, req->beacon_tx_rate);
|
__func__, req->beacon_tx_rate);
|
||||||
temp_flags |= WMI_UNIFIED_VDEV_START_BCN_TX_RATE_PRESENT;
|
|
||||||
/*
|
/*
|
||||||
* beacon_tx_rate is in multiples of 100 Kbps.
|
* beacon_tx_rate is in multiples of 100 Kbps.
|
||||||
* Convert the data rate to hw rate code.
|
* Convert the data rate to hw rate code.
|
||||||
@ -3085,18 +3073,10 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||||||
|
|
||||||
/* FIXME: Find out min, max and regulatory power levels */
|
/* FIXME: Find out min, max and regulatory power levels */
|
||||||
params.channel.maxregpower = req->max_txpow;
|
params.channel.maxregpower = req->max_txpow;
|
||||||
temp_reg_info_1 &= 0xff00ffff;
|
|
||||||
temp_reg_info_1 |= ((req->max_txpow&0xff) << 16);
|
|
||||||
|
|
||||||
temp_reg_info_2 &= 0xffff00ff;
|
|
||||||
temp_reg_info_2 |= ((req->max_txpow&0xff)<<8);
|
|
||||||
|
|
||||||
/* TODO: Handle regulatory class, max antenna */
|
/* TODO: Handle regulatory class, max antenna */
|
||||||
if (!isRestart) {
|
if (!isRestart)
|
||||||
params.pmf_enabled = req->pmf_enabled;
|
params.pmf_enabled = req->pmf_enabled;
|
||||||
if (req->pmf_enabled)
|
|
||||||
temp_flags |= WMI_UNIFIED_VDEV_START_PMF_ENABLED;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Copy the SSID */
|
/* Copy the SSID */
|
||||||
if (req->ssid.length) {
|
if (req->ssid.length) {
|
||||||
@ -3110,8 +3090,6 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||||||
}
|
}
|
||||||
|
|
||||||
params.hidden_ssid = req->hidden_ssid;
|
params.hidden_ssid = req->hidden_ssid;
|
||||||
if (req->hidden_ssid)
|
|
||||||
temp_flags |= WMI_UNIFIED_VDEV_START_HIDDEN_SSID;
|
|
||||||
|
|
||||||
params.num_noa_descriptors = 0;
|
params.num_noa_descriptors = 0;
|
||||||
params.preferred_rx_streams = req->preferred_rx_streams;
|
params.preferred_rx_streams = req->preferred_rx_streams;
|
||||||
@ -3119,32 +3097,6 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||||||
|
|
||||||
wma_copy_vdev_start_he_ops(¶ms, req);
|
wma_copy_vdev_start_he_ops(¶ms, req);
|
||||||
|
|
||||||
/* Store vdev params in SAP mode which can be used in vdev restart */
|
|
||||||
if (intr[req->vdev_id].type == WMI_VDEV_TYPE_AP &&
|
|
||||||
intr[req->vdev_id].sub_type == 0) {
|
|
||||||
intr[req->vdev_id].vdev_restart_params.vdev_id = req->vdev_id;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.ssid.ssid_len =
|
|
||||||
temp_ssid_len;
|
|
||||||
qdf_mem_copy(intr[req->vdev_id].vdev_restart_params.ssid.ssid,
|
|
||||||
params.ssid.mac_ssid, temp_ssid_len);
|
|
||||||
intr[req->vdev_id].vdev_restart_params.flags = temp_flags;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.requestor_id = 0;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.disable_hw_ack =
|
|
||||||
params.disable_hw_ack;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.chan.mhz =
|
|
||||||
params.channel.mhz;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.chan.band_center_freq1 =
|
|
||||||
params.channel.cfreq1;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.chan.band_center_freq2 =
|
|
||||||
params.channel.cfreq2;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.chan.info =
|
|
||||||
temp_chan_info;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.chan.reg_info_1 =
|
|
||||||
temp_reg_info_1;
|
|
||||||
intr[req->vdev_id].vdev_restart_params.chan.reg_info_2 =
|
|
||||||
temp_reg_info_2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isRestart) {
|
if (!isRestart) {
|
||||||
WMA_LOGD("%s, vdev_id: %d, unpausing tx_ll_queue at VDEV_START",
|
WMA_LOGD("%s, vdev_id: %d, unpausing tx_ll_queue at VDEV_START",
|
||||||
__func__, params.vdev_id);
|
__func__, params.vdev_id);
|
||||||
@ -3692,15 +3644,6 @@ void wma_vdev_resp_timer(void *data)
|
|||||||
} else if (tgt_req->msg_type == WMA_ADD_BSS_REQ) {
|
} else if (tgt_req->msg_type == WMA_ADD_BSS_REQ) {
|
||||||
|
|
||||||
wma_handle_add_bss_req_timeout(wma, tgt_req);
|
wma_handle_add_bss_req_timeout(wma, tgt_req);
|
||||||
} else if (tgt_req->msg_type == WMA_HIDDEN_SSID_VDEV_RESTART) {
|
|
||||||
if (wma_get_hidden_ssid_restart_in_progress(
|
|
||||||
&wma->interfaces[tgt_req->vdev_id]) &&
|
|
||||||
wma_is_vdev_in_ap_mode(wma, tgt_req->vdev_id)) {
|
|
||||||
|
|
||||||
WMA_LOGE("Hidden ssid vdev restart Timed Out; vdev_id: %d, type = %d",
|
|
||||||
tgt_req->vdev_id, tgt_req->type);
|
|
||||||
qdf_mem_free(tgt_req->user_data);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
free_tgt_req:
|
free_tgt_req:
|
||||||
qdf_mc_timer_destroy(&tgt_req->event_timeout);
|
qdf_mc_timer_destroy(&tgt_req->event_timeout);
|
||||||
|
@ -8779,11 +8779,6 @@ static QDF_STATUS wma_mc_process_msg(struct scheduler_msg *msg)
|
|||||||
qdf_mem_free(msg->bodyptr);
|
qdf_mem_free(msg->bodyptr);
|
||||||
break;
|
break;
|
||||||
#endif /* WLAN_FEATURE_STATS_EXT */
|
#endif /* WLAN_FEATURE_STATS_EXT */
|
||||||
case WMA_HIDDEN_SSID_VDEV_RESTART:
|
|
||||||
wma_hidden_ssid_vdev_restart(wma_handle,
|
|
||||||
(tHalHiddenSsidVdevRestart *) msg->bodyptr);
|
|
||||||
qdf_mem_free(msg->bodyptr);
|
|
||||||
break;
|
|
||||||
#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
|
#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
|
||||||
case WMA_WLAN_EXT_WOW:
|
case WMA_WLAN_EXT_WOW:
|
||||||
wma_enable_ext_wow(wma_handle,
|
wma_enable_ext_wow(wma_handle,
|
||||||
|
@ -3602,64 +3602,6 @@ QDF_STATUS wma_set_htconfig(uint8_t vdev_id, uint16_t ht_capab, int value)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* wma_hidden_ssid_vdev_restart() - vdev restart for hidden ssid
|
|
||||||
* @wma_handle: wma handle
|
|
||||||
* @pReq: hidden ssid vdev restart request
|
|
||||||
*
|
|
||||||
* Return: none
|
|
||||||
*/
|
|
||||||
void wma_hidden_ssid_vdev_restart(tp_wma_handle wma,
|
|
||||||
tHalHiddenSsidVdevRestart *pReq)
|
|
||||||
{
|
|
||||||
struct wma_txrx_node *intr = wma->interfaces;
|
|
||||||
struct hidden_ssid_vdev_restart_params params;
|
|
||||||
QDF_STATUS status;
|
|
||||||
uint8_t vdev_id;
|
|
||||||
|
|
||||||
vdev_id = pReq->sessionId;
|
|
||||||
if ((vdev_id != intr[vdev_id].vdev_restart_params.vdev_id)
|
|
||||||
|| !((intr[vdev_id].type == WMI_VDEV_TYPE_AP)
|
|
||||||
&& (intr[vdev_id].sub_type == 0))) {
|
|
||||||
WMA_LOGE(FL("invalid vdev_id %d"), vdev_id);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
intr[vdev_id].vdev_restart_params.ssidHidden = pReq->ssidHidden;
|
|
||||||
WMA_LOGD(FL("hidden ssid set using IOCTL for vdev %d ssid_hidden %d"),
|
|
||||||
vdev_id, pReq->ssidHidden);
|
|
||||||
|
|
||||||
params.vdev_id = vdev_id;
|
|
||||||
params.ssid_len = intr[vdev_id].vdev_restart_params.ssid.ssid_len;
|
|
||||||
qdf_mem_copy(params.ssid,
|
|
||||||
intr[vdev_id].vdev_restart_params.ssid.ssid,
|
|
||||||
params.ssid_len);
|
|
||||||
params.flags = intr[vdev_id].vdev_restart_params.flags;
|
|
||||||
if (intr[vdev_id].vdev_restart_params.ssidHidden)
|
|
||||||
params.flags |= WMI_UNIFIED_VDEV_START_HIDDEN_SSID;
|
|
||||||
else
|
|
||||||
params.flags &= (0xFFFFFFFE);
|
|
||||||
params.requestor_id = intr[vdev_id].vdev_restart_params.requestor_id;
|
|
||||||
params.disable_hw_ack =
|
|
||||||
intr[vdev_id].vdev_restart_params.disable_hw_ack;
|
|
||||||
|
|
||||||
params.mhz = intr[vdev_id].vdev_restart_params.chan.mhz;
|
|
||||||
params.band_center_freq1 =
|
|
||||||
intr[vdev_id].vdev_restart_params.chan.band_center_freq1;
|
|
||||||
params.band_center_freq2 =
|
|
||||||
intr[vdev_id].vdev_restart_params.chan.band_center_freq2;
|
|
||||||
params.info = intr[vdev_id].vdev_restart_params.chan.info;
|
|
||||||
params.reg_info_1 = intr[vdev_id].vdev_restart_params.chan.reg_info_1;
|
|
||||||
params.reg_info_2 = intr[vdev_id].vdev_restart_params.chan.reg_info_2;
|
|
||||||
|
|
||||||
status = wmi_unified_hidden_ssid_vdev_restart_send(wma->wmi_handle,
|
|
||||||
¶ms);
|
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
|
||||||
WMA_LOGE(FL("Failed to send vdev restart command"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_11W
|
#ifdef WLAN_FEATURE_11W
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user