mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
qcacld-3.0: Remove legacy vdev restart and hidden ssid restart flags
Remove legacy vdev restart and hidden ssid restart flags as vdev mlme new vdev mlme priv flags. Change-Id: I31a1541fe4504bfb635b3151ea3afd05ffce7cea CRs-Fixed: 2319427
This commit is contained in:
parent
c5a5408b00
commit
a063f1c658
11 changed files with 129 additions and 45 deletions
|
|
@ -59,22 +59,22 @@ QDF_STATUS mlme_register_vdev_mgr_ops(void *mlme);
|
|||
QDF_STATUS mlme_unregister_vdev_mgr_ops(struct vdev_mlme_obj *vdev_mlme);
|
||||
|
||||
/**
|
||||
* ap_mlme_set_chan_switch_in_progress() - set mlme priv restart in progress
|
||||
* mlme_set_chan_switch_in_progress() - set mlme priv restart in progress
|
||||
* @vdev: vdev pointer
|
||||
* @val: value to be set
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS ap_mlme_set_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS mlme_set_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev,
|
||||
bool val);
|
||||
|
||||
/**
|
||||
* ap_mlme_get_chan_switch_in_progress() - get mlme priv restart in progress
|
||||
* mlme_is_chan_switch_in_progress() - get mlme priv restart in progress
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: value of mlme priv restart in progress
|
||||
*/
|
||||
bool ap_mlme_get_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev);
|
||||
bool mlme_is_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ap_mlme_set_hidden_ssid_restart_in_progress() - set mlme priv hidden ssid
|
||||
|
|
@ -89,31 +89,31 @@ ap_mlme_set_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev,
|
|||
bool val);
|
||||
|
||||
/**
|
||||
* ap_mlme_get_hidden_ssid_restart_in_progress() - get mlme priv hidden ssid
|
||||
* ap_mlme_is_hidden_ssid_restart_in_progress() - get mlme priv hidden ssid
|
||||
* restart in progress
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: value of mlme priv hidden ssid restart in progress
|
||||
*/
|
||||
bool ap_mlme_get_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev);
|
||||
bool ap_mlme_is_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ap_mlme_set_vdev_start_failed() - set mlme priv vdev restart fail flag
|
||||
* mlme_set_vdev_start_failed() - set mlme priv vdev restart fail flag
|
||||
* @vdev: vdev pointer
|
||||
* @val: value to be set
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
ap_mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val);
|
||||
mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val);
|
||||
|
||||
/**
|
||||
* ap_mlme_get_vdev_start_failed() - get mlme priv vdev restart fail flag
|
||||
* mlme_get_vdev_start_failed() - get mlme priv vdev restart fail flag
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: value of mlme priv vdev restart fail flag
|
||||
*/
|
||||
bool ap_mlme_get_vdev_start_failed(struct wlan_objmgr_vdev *vdev);
|
||||
bool mlme_get_vdev_start_failed(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -492,7 +492,7 @@ static QDF_STATUS ap_mlme_vdev_stop_start_send(struct vdev_mlme_obj *vdev_mlme,
|
|||
data_len, data);
|
||||
}
|
||||
|
||||
QDF_STATUS ap_mlme_set_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev,
|
||||
QDF_STATUS mlme_set_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev,
|
||||
bool val)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
|
|
@ -511,7 +511,7 @@ QDF_STATUS ap_mlme_set_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
bool ap_mlme_get_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev)
|
||||
bool mlme_is_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
struct mlme_legacy_priv *mlme_priv;
|
||||
|
|
@ -547,7 +547,7 @@ ap_mlme_set_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
bool ap_mlme_get_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev)
|
||||
bool ap_mlme_is_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
struct mlme_legacy_priv *mlme_priv;
|
||||
|
|
@ -564,7 +564,7 @@ bool ap_mlme_get_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev)
|
|||
}
|
||||
|
||||
QDF_STATUS
|
||||
ap_mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val)
|
||||
mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
struct mlme_legacy_priv *mlme_priv;
|
||||
|
|
@ -582,7 +582,7 @@ ap_mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val)
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
bool ap_mlme_get_vdev_start_failed(struct wlan_objmgr_vdev *vdev)
|
||||
bool mlme_get_vdev_start_failed(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
struct mlme_legacy_priv *mlme_priv;
|
||||
|
|
@ -598,14 +598,15 @@ bool ap_mlme_get_vdev_start_failed(struct wlan_objmgr_vdev *vdev)
|
|||
return mlme_priv->vdev_start_failed;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ap_mlme_vdev_legacy_hdl_create () - Create sap mlme legacy priv object
|
||||
* mlme_legacy_hdl_create () - Create mlme legacy priv object
|
||||
* @vdev_mlme: vdev mlme object
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static
|
||||
QDF_STATUS ap_mlme_vdev_legacy_hdl_create(struct vdev_mlme_obj *vdev_mlme)
|
||||
QDF_STATUS mlme_legacy_hdl_create(struct vdev_mlme_obj *vdev_mlme)
|
||||
{
|
||||
vdev_mlme->legacy_vdev_ptr =
|
||||
qdf_mem_malloc(sizeof(struct mlme_legacy_priv));
|
||||
|
|
@ -618,13 +619,13 @@ QDF_STATUS ap_mlme_vdev_legacy_hdl_create(struct vdev_mlme_obj *vdev_mlme)
|
|||
}
|
||||
|
||||
/**
|
||||
* ap_mlme_vdev_legacy_hdl_destroy () - Destroy sap mlme legacy priv object
|
||||
* mlme_legacy_hdl_destroy () - Destroy mlme legacy priv object
|
||||
* @vdev_mlme: vdev mlme object
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static
|
||||
QDF_STATUS ap_mlme_vdev_legacy_hdl_destroy(struct vdev_mlme_obj *vdev_mlme)
|
||||
QDF_STATUS mlme_legacy_hdl_destroy(struct vdev_mlme_obj *vdev_mlme)
|
||||
{
|
||||
qdf_mem_free(vdev_mlme->legacy_vdev_ptr);
|
||||
vdev_mlme->legacy_vdev_ptr = NULL;
|
||||
|
|
@ -696,6 +697,8 @@ static struct vdev_mlme_ops sta_mlme_ops = {
|
|||
.mlme_vdev_stop_continue = sta_mlme_vdev_stop_continue,
|
||||
.mlme_vdev_down_send = sta_mlme_vdev_down_send,
|
||||
.mlme_vdev_notify_down_complete = sta_vdev_notify_down_complete,
|
||||
.mlme_vdev_legacy_hdl_create = mlme_legacy_hdl_create,
|
||||
.mlme_vdev_legacy_hdl_destroy = mlme_legacy_hdl_destroy,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -745,6 +748,6 @@ static struct vdev_mlme_ops ap_mlme_ops = {
|
|||
.mlme_vdev_stop_continue = ap_mlme_vdev_stop_continue,
|
||||
.mlme_vdev_down_send = ap_mlme_vdev_down_send,
|
||||
.mlme_vdev_notify_down_complete = ap_vdev_notify_down_complete,
|
||||
.mlme_vdev_legacy_hdl_create = ap_mlme_vdev_legacy_hdl_create,
|
||||
.mlme_vdev_legacy_hdl_destroy = ap_mlme_vdev_legacy_hdl_destroy,
|
||||
.mlme_vdev_legacy_hdl_create = mlme_legacy_hdl_create,
|
||||
.mlme_vdev_legacy_hdl_destroy = mlme_legacy_hdl_destroy,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5066,7 +5066,7 @@ static void lim_process_sme_channel_change_request(tpAniSirGlobal mac_ctx,
|
|||
sizeof(session_entry->extRateSet));
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
ap_mlme_set_chan_switch_in_progress(session_entry->vdev, true);
|
||||
mlme_set_chan_switch_in_progress(session_entry->vdev, true);
|
||||
if (wlan_vdev_mlme_get_state(session_entry->vdev) ==
|
||||
WLAN_VDEV_S_DFS_CAC_WAIT)
|
||||
wlan_vdev_mlme_sm_deliver_evt(session_entry->vdev,
|
||||
|
|
|
|||
|
|
@ -8537,7 +8537,7 @@ QDF_STATUS lim_ap_mlme_vdev_restart_send(struct vdev_mlme_obj *vdev_mlme,
|
|||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
if (ap_mlme_get_hidden_ssid_restart_in_progress(vdev_mlme->vdev))
|
||||
if (ap_mlme_is_hidden_ssid_restart_in_progress(vdev_mlme->vdev))
|
||||
lim_send_vdev_restart(session->mac_ctx, session,
|
||||
session->smeSessionId);
|
||||
else
|
||||
|
|
@ -8585,7 +8585,7 @@ void lim_send_start_bss_confirm(tpAniSirGlobal mac_ctx,
|
|||
pe_err("session is NULL");
|
||||
return;
|
||||
}
|
||||
ap_mlme_set_vdev_start_failed(session->vdev, true);
|
||||
mlme_set_vdev_start_failed(session->vdev, true);
|
||||
wlan_vdev_mlme_sm_deliver_evt(session->vdev,
|
||||
WLAN_VDEV_SM_EV_START_REQ_FAIL,
|
||||
sizeof(*start_cnf), start_cnf);
|
||||
|
|
|
|||
|
|
@ -761,7 +761,9 @@ typedef struct {
|
|||
A_UINT32 requestor_id;
|
||||
A_UINT32 disable_hw_ack;
|
||||
wmi_channel chan;
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
qdf_atomic_t hidden_ssid_restart_in_progress;
|
||||
#endif
|
||||
uint8_t ssidHidden;
|
||||
} vdev_restart_params_t;
|
||||
|
||||
|
|
@ -890,7 +892,9 @@ struct wma_txrx_node {
|
|||
qdf_atomic_t bss_status;
|
||||
uint8_t rate_flags;
|
||||
uint8_t nss;
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
bool is_channel_switch;
|
||||
#endif
|
||||
uint16_t pause_bitmap;
|
||||
int8_t tx_power;
|
||||
int8_t max_tx_power;
|
||||
|
|
|
|||
|
|
@ -409,6 +409,16 @@ void wma_wmi_stop(void);
|
|||
*/
|
||||
uint8_t wma_get_mcs_idx(uint16_t max_rate, uint8_t rate_flags,
|
||||
uint8_t *nss, uint8_t *mcs_rate_flag);
|
||||
|
||||
/**
|
||||
* wma_get_hidden_ssid_restart_in_progress() - check if hidden ssid restart is
|
||||
* in progress
|
||||
* @iface: iface pointer
|
||||
*
|
||||
* Return: true if hidden ssid restart is in progress else false
|
||||
*/
|
||||
bool wma_get_hidden_ssid_restart_in_progress(struct wma_txrx_node *iface);
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1217,22 +1217,21 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info,
|
|||
}
|
||||
qdf_mc_timer_stop(&req_msg->event_timeout);
|
||||
|
||||
if ((qdf_atomic_read(&iface->vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress)) &&
|
||||
if (wma_get_hidden_ssid_restart_in_progress(iface) &&
|
||||
wma_is_vdev_in_ap_mode(wma, resp_event->vdev_id) &&
|
||||
(req_msg->msg_type == WMA_HIDDEN_SSID_VDEV_RESTART)) {
|
||||
tpHalHiddenSsidVdevRestart hidden_ssid_restart =
|
||||
(tpHalHiddenSsidVdevRestart)req_msg->user_data;
|
||||
WMA_LOGE("%s: vdev restart event recevied for hidden ssid set using IOCTL",
|
||||
__func__);
|
||||
qdf_atomic_set(&iface->vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress, 0);
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
wlan_vdev_mlme_sm_deliver_evt(iface->vdev,
|
||||
WLAN_VDEV_SM_EV_RESTART_RESP,
|
||||
sizeof(*hidden_ssid_restart),
|
||||
hidden_ssid_restart);
|
||||
#else
|
||||
qdf_atomic_set(&iface->vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress, 0);
|
||||
wma_send_msg(wma, WMA_HIDDEN_SSID_RESTART_RSP,
|
||||
(void *)hidden_ssid_restart, 0);
|
||||
#endif
|
||||
|
|
@ -1265,10 +1264,12 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info,
|
|||
}
|
||||
params->smpsMode = host_map_smps_mode(resp_event->smps_mode);
|
||||
params->status = resp_event->status;
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
if (wma->interfaces[resp_event->vdev_id].is_channel_switch) {
|
||||
wma->interfaces[resp_event->vdev_id].is_channel_switch =
|
||||
false;
|
||||
}
|
||||
#endif
|
||||
if (((resp_event->resp_type == WMI_VDEV_RESTART_RESP_EVENT) &&
|
||||
((iface->type == WMI_VDEV_TYPE_STA) ||
|
||||
(iface->type == WMI_VDEV_TYPE_MONITOR))) ||
|
||||
|
|
@ -3556,13 +3557,24 @@ void wma_vdev_resp_timer(void *data)
|
|||
wma_trigger_recovery_assert_on_fw_timeout(
|
||||
WMA_CHNL_SWITCH_REQ);
|
||||
} else {
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
struct wma_txrx_node *iface =
|
||||
&wma->interfaces[tgt_req->vdev_id];
|
||||
|
||||
wlan_vdev_mlme_sm_deliver_evt(iface->vdev,
|
||||
WLAN_VDEV_SM_EV_RESTART_RESP,
|
||||
sizeof(*params), params);
|
||||
#else
|
||||
wma_send_msg_high_priority(wma, WMA_SWITCH_CHANNEL_RSP,
|
||||
(void *)params, 0);
|
||||
#endif
|
||||
}
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
if (wma->interfaces[tgt_req->vdev_id].is_channel_switch) {
|
||||
wma->interfaces[tgt_req->vdev_id].is_channel_switch =
|
||||
false;
|
||||
}
|
||||
#endif
|
||||
} else if (tgt_req->msg_type == WMA_DELETE_BSS_REQ) {
|
||||
tpDeleteBssParams params =
|
||||
(tpDeleteBssParams) tgt_req->user_data;
|
||||
|
|
@ -3716,16 +3728,17 @@ void wma_vdev_resp_timer(void *data)
|
|||
#endif
|
||||
wma_ocb_set_config_resp(wma, QDF_STATUS_E_TIMEOUT);
|
||||
} else if (tgt_req->msg_type == WMA_HIDDEN_SSID_VDEV_RESTART) {
|
||||
if ((qdf_atomic_read(
|
||||
&wma->interfaces[tgt_req->vdev_id].vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress)) &&
|
||||
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);
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
qdf_atomic_set(&wma->interfaces[tgt_req->vdev_id].
|
||||
vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress, 0);
|
||||
#endif
|
||||
qdf_mem_free(tgt_req->user_data);
|
||||
}
|
||||
} else if (tgt_req->msg_type == WMA_SET_LINK_STATE) {
|
||||
|
|
|
|||
|
|
@ -1395,7 +1395,9 @@ int wma_csa_offload_handler(void *handle, uint8_t *event, uint32_t len)
|
|||
qdf_mem_free(csa_offload_event);
|
||||
return -EINVAL;
|
||||
}
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
wma->interfaces[vdev_id].is_channel_switch = true;
|
||||
#endif
|
||||
wma_send_msg(wma, WMA_CSA_OFFLOAD_EVENT, (void *)csa_offload_event, 0);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2880,19 +2880,38 @@ void wma_send_probe_rsp_tmpl(tp_wma_handle wma,
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS wma_set_ap_vdev_up(tp_wma_handle wma, uint8_t vdev_id)
|
||||
{
|
||||
struct vdev_up_params param = {0};
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
if (!((qdf_atomic_read(
|
||||
&wma->interfaces[vdev_id].vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress)) ||
|
||||
(wma->interfaces[vdev_id].is_channel_switch))) {
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
param.vdev_id = vdev_id;
|
||||
param.assoc_id = 0;
|
||||
status = wma_send_vdev_up_to_fw(wma, ¶m,
|
||||
wma->interfaces[vdev_id].bssid);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
WMA_LOGE(FL("failed to send vdev up"));
|
||||
policy_mgr_set_do_hw_mode_change_flag(
|
||||
wma->psoc, false);
|
||||
return status;
|
||||
}
|
||||
wma_set_sap_keepalive(wma, vdev_id);
|
||||
wma_set_vdev_mgmt_rate(wma, vdev_id);
|
||||
|
||||
return status;
|
||||
}
|
||||
#else
|
||||
QDF_STATUS wma_set_ap_vdev_up(tp_wma_handle wma, uint8_t vdev_id)
|
||||
{
|
||||
struct vdev_up_params param = {0};
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
if (!wma_get_hidden_ssid_restart_in_progress(
|
||||
&wma->interfaces[vdev_id]) ||
|
||||
(wma->interfaces[vdev_id].is_channel_switch)) {
|
||||
if (wma_is_vdev_up(vdev_id))
|
||||
return status;
|
||||
#endif
|
||||
param.vdev_id = vdev_id;
|
||||
param.assoc_id = 0;
|
||||
status = wma_send_vdev_up_to_fw(wma, ¶m,
|
||||
|
|
@ -2903,15 +2922,14 @@ QDF_STATUS wma_set_ap_vdev_up(tp_wma_handle wma, uint8_t vdev_id)
|
|||
wma->psoc, false);
|
||||
return status;
|
||||
}
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
wma_vdev_set_mlme_state(wma, vdev_id, WLAN_VDEV_S_RUN);
|
||||
#endif
|
||||
wma_set_sap_keepalive(wma, vdev_id);
|
||||
wma_set_vdev_mgmt_rate(wma, vdev_id);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_send_beacon() - send beacon template
|
||||
|
|
@ -3394,9 +3412,10 @@ void wma_hidden_ssid_vdev_restart(tp_wma_handle wma,
|
|||
}
|
||||
|
||||
intr[vdev_id].vdev_restart_params.ssidHidden = pReq->ssidHidden;
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
qdf_atomic_set(&intr[vdev_id].vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress, 1);
|
||||
|
||||
#endif
|
||||
WMA_LOGD(FL("hidden ssid set using IOCTL for vdev %d ssid_hidden %d"),
|
||||
vdev_id, pReq->ssidHidden);
|
||||
|
||||
|
|
@ -3408,8 +3427,10 @@ void wma_hidden_ssid_vdev_restart(tp_wma_handle wma,
|
|||
if (!msg) {
|
||||
WMA_LOGE(FL("Failed to fill vdev request, vdev_id %d"),
|
||||
vdev_id);
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
qdf_atomic_set(&intr[vdev_id].vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress, 0);
|
||||
#endif
|
||||
qdf_mem_free(pReq);
|
||||
return;
|
||||
}
|
||||
|
|
@ -3444,8 +3465,10 @@ void wma_hidden_ssid_vdev_restart(tp_wma_handle wma,
|
|||
¶ms);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
WMA_LOGE(FL("Failed to send vdev restart command"));
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
qdf_atomic_set(&intr[vdev_id].vdev_restart_params.
|
||||
hidden_ssid_restart_in_progress, 0);
|
||||
#endif
|
||||
wma_remove_vdev_req(wma, vdev_id,
|
||||
WMA_TARGET_REQ_TYPE_VDEV_START);
|
||||
qdf_mem_free(pReq);
|
||||
|
|
|
|||
|
|
@ -3102,7 +3102,9 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params)
|
|||
*/
|
||||
if ((wma_is_vdev_in_ap_mode(wma, req.vdev_id) == true) ||
|
||||
(params->restart_on_chan_switch == true)) {
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
wma->interfaces[req.vdev_id].is_channel_switch = true;
|
||||
#endif
|
||||
req.hidden_ssid = intr[vdev_id].vdev_restart_params.ssidHidden;
|
||||
}
|
||||
|
||||
|
|
@ -3142,7 +3144,9 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params)
|
|||
wma_is_vdev_up(vdev_id)) {
|
||||
WMA_LOGD("%s: setting channel switch to true for vdev_id:%d",
|
||||
__func__, req.vdev_id);
|
||||
#ifndef CONFIG_VDEV_SM
|
||||
wma->interfaces[req.vdev_id].is_channel_switch = true;
|
||||
#endif
|
||||
}
|
||||
|
||||
msg = wma_fill_vdev_req(wma, req.vdev_id, WMA_CHNL_SWITCH_REQ,
|
||||
|
|
@ -3154,8 +3158,14 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params)
|
|||
status = QDF_STATUS_E_NOMEM;
|
||||
goto send_resp;
|
||||
}
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
status = wma_vdev_start(wma, &req,
|
||||
mlme_is_chan_switch_in_progress(
|
||||
wma->interfaces[req.vdev_id].vdev));
|
||||
#else
|
||||
status = wma_vdev_start(wma, &req,
|
||||
wma->interfaces[req.vdev_id].is_channel_switch);
|
||||
#endif
|
||||
if (status != QDF_STATUS_SUCCESS) {
|
||||
wma_remove_vdev_req(wma, req.vdev_id,
|
||||
WMA_TARGET_REQ_TYPE_VDEV_START);
|
||||
|
|
|
|||
|
|
@ -4798,6 +4798,13 @@ QDF_STATUS wma_get_roam_scan_stats(WMA_HANDLE handle,
|
|||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
bool wma_get_hidden_ssid_restart_in_progress(struct wma_txrx_node *iface)
|
||||
{
|
||||
if (!iface)
|
||||
return false;
|
||||
|
||||
return ap_mlme_is_hidden_ssid_restart_in_progress(iface->vdev);
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
wma_ap_vdev_send_start_resp(tp_wma_handle wma, tpAddBssParams add_bss)
|
||||
|
|
@ -4816,11 +4823,11 @@ QDF_STATUS wma_ap_mlme_vdev_start_continue(struct vdev_mlme_obj *vdev_mlme,
|
|||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
struct wlan_objmgr_vdev *vdev = vdev_mlme->vdev;
|
||||
|
||||
if (ap_mlme_get_chan_switch_in_progress(vdev)) {
|
||||
if (mlme_is_chan_switch_in_progress(vdev)) {
|
||||
wma_send_msg_high_priority(wma, WMA_SWITCH_CHANNEL_RSP,
|
||||
data, 0);
|
||||
ap_mlme_set_chan_switch_in_progress(vdev, false);
|
||||
} else if (ap_mlme_get_hidden_ssid_restart_in_progress(vdev)) {
|
||||
mlme_set_chan_switch_in_progress(vdev, false);
|
||||
} else if (ap_mlme_is_hidden_ssid_restart_in_progress(vdev)) {
|
||||
wma_send_msg(wma, WMA_HIDDEN_SSID_RESTART_RSP, data, 0);
|
||||
ap_mlme_set_hidden_ssid_restart_in_progress(vdev, false);
|
||||
} else {
|
||||
|
|
@ -4853,10 +4860,10 @@ wma_ap_mlme_vdev_notify_down_complete(struct vdev_mlme_obj *vdev_mlme,
|
|||
{
|
||||
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
|
||||
|
||||
if (!ap_mlme_get_vdev_start_failed(vdev_mlme->vdev))
|
||||
if (!mlme_get_vdev_start_failed(vdev_mlme->vdev))
|
||||
wma_send_del_bss_response(wma, (struct wma_target_req *)data);
|
||||
else
|
||||
ap_mlme_set_vdev_start_failed(vdev_mlme->vdev, false);
|
||||
mlme_set_vdev_start_failed(vdev_mlme->vdev, false);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
@ -4875,4 +4882,16 @@ QDF_STATUS wma_ap_mlme_vdev_stop_start_send(struct vdev_mlme_obj *vdev_mlme,
|
|||
return wma_ap_vdev_send_start_resp(wma, bss_params);
|
||||
}
|
||||
|
||||
#else
|
||||
bool wma_get_hidden_ssid_restart_in_progress(struct wma_txrx_node *iface)
|
||||
{
|
||||
if (!iface)
|
||||
return false;
|
||||
|
||||
if (qdf_atomic_read(
|
||||
&iface->vdev_restart_params.hidden_ssid_restart_in_progress))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue