mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
qcacld-3.0: Cleanup VDEV_SM legacy code
Legacy code of VDEV SM is no more used, hence this cleanup is done. Change-Id: I8dc649639c4c1afb4ae206a046fe530e172bced9 CRs-Fixed: 2454039
This commit is contained in:
parent
512d6f05ae
commit
7acc2c1609
29 changed files with 4 additions and 1518 deletions
|
|
@ -51,8 +51,6 @@ struct peer_mlme_priv_obj {
|
|||
uint32_t ucast_key_cipher;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
|
||||
/**
|
||||
* enum vdev_assoc_type - VDEV associate/reassociate type
|
||||
* @VDEV_ASSOC: associate
|
||||
|
|
@ -90,48 +88,6 @@ struct mlme_legacy_priv {
|
|||
uint8_t sta_dynamic_oce_value;
|
||||
};
|
||||
|
||||
#else
|
||||
/**
|
||||
* struct vdev_mlme_obj - VDEV MLME component object
|
||||
* @dynamic_cfg: current configuration of nss, chains for vdev.
|
||||
* @ini_cfg: Max configuration of nss, chains supported for vdev.
|
||||
* @sta_dynamic_oce_value: Dyanmic oce flags value for sta
|
||||
*/
|
||||
struct vdev_mlme_priv_obj {
|
||||
struct wlan_mlme_nss_chains dynamic_cfg;
|
||||
struct wlan_mlme_nss_chains ini_cfg;
|
||||
uint8_t sta_dynamic_oce_value;
|
||||
};
|
||||
|
||||
/**
|
||||
* mlme_vdev_object_created_notification(): mlme vdev create handler
|
||||
* @vdev: vdev which is going to created by objmgr
|
||||
* @arg: argument for vdev create handler
|
||||
*
|
||||
* Register this api with objmgr to detect vdev is created
|
||||
*
|
||||
* Return: QDF_STATUS status in case of success else return error
|
||||
*/
|
||||
|
||||
QDF_STATUS
|
||||
mlme_vdev_object_created_notification(struct wlan_objmgr_vdev *vdev,
|
||||
void *arg);
|
||||
|
||||
/**
|
||||
* mlme_vdev_object_destroyed_notification(): mlme vdev delete handler
|
||||
* @psoc: vdev which is going to delete by objmgr
|
||||
* @arg: argument for vdev delete handler
|
||||
*
|
||||
* Register this api with objmgr to detect vdev is deleted
|
||||
*
|
||||
* Return: QDF_STATUS status in case of success else return error
|
||||
*/
|
||||
QDF_STATUS
|
||||
mlme_vdev_object_destroyed_notification(struct wlan_objmgr_vdev *vdev,
|
||||
void *arg);
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef CRYPTO_SET_KEY_CONVERGED
|
||||
/**
|
||||
* wlan_peer_set_unicast_cipher() - set unicast cipher
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
#ifndef _WLAN_MLME_VDEV_MGR_INT_API_H_
|
||||
#define _WLAN_MLME_VDEV_MGR_INT_API_H_
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
#include <wlan_objmgr_vdev_obj.h>
|
||||
#include "include/wlan_vdev_mlme.h"
|
||||
#include "wlan_mlme_main.h"
|
||||
|
|
@ -196,4 +195,3 @@ QDF_STATUS mlme_set_assoc_type(struct wlan_objmgr_vdev *vdev,
|
|||
*/
|
||||
enum vdev_assoc_type mlme_get_assoc_type(struct wlan_objmgr_vdev *vdev);
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ struct wlan_mlme_psoc_obj *mlme_get_psoc_obj_fl(struct wlan_objmgr_psoc *psoc,
|
|||
return mlme_obj;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
struct wlan_mlme_nss_chains *mlme_get_dynamic_vdev_config(
|
||||
struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
|
|
@ -95,131 +94,6 @@ uint8_t *mlme_get_dynamic_oce_flags(struct wlan_objmgr_vdev *vdev)
|
|||
return &mlme_priv->sta_dynamic_oce_value;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static struct vdev_mlme_priv_obj *
|
||||
wlan_vdev_mlme_get_priv_obj(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_priv_obj *vdev_mlme;
|
||||
|
||||
if (!vdev) {
|
||||
mlme_legacy_err("vdev is NULL");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
vdev_mlme = wlan_objmgr_vdev_get_comp_private_obj(vdev,
|
||||
WLAN_UMAC_COMP_MLME);
|
||||
if (!vdev_mlme) {
|
||||
mlme_legacy_err(" MLME component object is NULL");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return vdev_mlme;
|
||||
}
|
||||
|
||||
uint8_t *mlme_get_dynamic_oce_flags(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_priv_obj *vdev_mlme;
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_priv_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_legacy_err("vdev component object is NULL");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return &vdev_mlme->sta_dynamic_oce_value;
|
||||
}
|
||||
|
||||
struct wlan_mlme_nss_chains *mlme_get_dynamic_vdev_config(
|
||||
struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_priv_obj *vdev_mlme;
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_priv_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_legacy_err("vdev component object is NULL");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return &vdev_mlme->dynamic_cfg;
|
||||
}
|
||||
|
||||
struct wlan_mlme_nss_chains *mlme_get_ini_vdev_config(
|
||||
struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_priv_obj *vdev_mlme;
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_priv_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlme_legacy_err("vdev component object is NULL");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return &vdev_mlme->ini_cfg;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
mlme_vdev_object_created_notification(struct wlan_objmgr_vdev *vdev,
|
||||
void *arg)
|
||||
{
|
||||
struct vdev_mlme_priv_obj *vdev_mlme;
|
||||
QDF_STATUS status;
|
||||
|
||||
if (!vdev) {
|
||||
mlme_legacy_err(" VDEV is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
vdev_mlme = qdf_mem_malloc(sizeof(*vdev_mlme));
|
||||
if (!vdev_mlme) {
|
||||
mlme_legacy_err(" MLME component object alloc failed");
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
status = wlan_objmgr_vdev_component_obj_attach(vdev,
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
(void *)vdev_mlme,
|
||||
QDF_STATUS_SUCCESS);
|
||||
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_legacy_err("unable to attach vdev priv obj to vdev obj");
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
mlme_vdev_object_destroyed_notification(struct wlan_objmgr_vdev *vdev,
|
||||
void *arg)
|
||||
{
|
||||
struct vdev_mlme_priv_obj *vdev_mlme;
|
||||
QDF_STATUS status;
|
||||
|
||||
if (!vdev) {
|
||||
mlme_legacy_err(" VDEV is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
vdev_mlme = wlan_objmgr_vdev_get_comp_private_obj(vdev,
|
||||
WLAN_UMAC_COMP_MLME);
|
||||
if (!vdev_mlme) {
|
||||
mlme_legacy_err(" VDEV MLME component object is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
status = wlan_objmgr_vdev_component_obj_detach(vdev,
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
vdev_mlme);
|
||||
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_legacy_err("unable to detach vdev priv obj to vdev obj");
|
||||
|
||||
qdf_mem_free(vdev_mlme);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
QDF_STATUS
|
||||
mlme_psoc_object_created_notification(struct wlan_objmgr_psoc *psoc,
|
||||
void *arg)
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ QDF_STATUS ucfg_mlme_psoc_open(struct wlan_objmgr_psoc *psoc);
|
|||
*/
|
||||
void ucfg_mlme_psoc_close(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* ucfg_mlme_pdev_open() - MLME component pdev Open
|
||||
* @pdev: pointer to pdev object
|
||||
|
|
@ -101,53 +100,6 @@ QDF_STATUS ucfg_mlme_global_init(void);
|
|||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS ucfg_mlme_global_deinit(void);
|
||||
#else
|
||||
/**
|
||||
* ucfg_mlme_pdev_open() - MLME component pdev Open
|
||||
* @pdev: pointer to pdev object
|
||||
*
|
||||
* Open the MLME component and initialize the MLME pdev strucutre
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS ucfg_mlme_pdev_open(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_pdev_close() - MLME component pdev close
|
||||
* @pdev: pointer to pdev object
|
||||
*
|
||||
* close the MLME pdev information
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS ucfg_mlme_pdev_close(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_global_init() - initialize global mlme ops and structure
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS ucfg_mlme_global_init(void)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_global_deinit() - deinitialize global mlme ops and structure
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static inline QDF_STATUS ucfg_mlme_global_deinit(void)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_power_usage() - Get the power usage info
|
||||
|
|
|
|||
|
|
@ -26,21 +26,8 @@
|
|||
#include "wlan_mlme_ucfg_api.h"
|
||||
#include "wlan_objmgr_pdev_obj.h"
|
||||
#include "wlan_mlme_vdev_mgr_interface.h"
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
#include <include/wlan_pdev_mlme.h>
|
||||
#include "wlan_pdev_mlme_api.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS ucfg_mlme_vdev_init(void)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static QDF_STATUS ucfg_mlme_vdev_deinit(void)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_mlme_global_init(void)
|
||||
{
|
||||
|
|
@ -54,56 +41,6 @@ QDF_STATUS ucfg_mlme_global_deinit(void)
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#else
|
||||
static QDF_STATUS ucfg_mlme_vdev_init(void)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
status = wlan_objmgr_register_vdev_create_handler(
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
mlme_vdev_object_created_notification,
|
||||
NULL);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
mlme_legacy_err("unable to register vdev create handle");
|
||||
return status;
|
||||
}
|
||||
|
||||
status = wlan_objmgr_register_vdev_destroy_handler(
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
mlme_vdev_object_destroyed_notification,
|
||||
NULL);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_legacy_err("unable to register vdev create handle");
|
||||
|
||||
return status;
|
||||
|
||||
}
|
||||
|
||||
static QDF_STATUS ucfg_mlme_vdev_deinit(void)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
status = wlan_objmgr_unregister_vdev_destroy_handler(
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
mlme_vdev_object_destroyed_notification,
|
||||
NULL);
|
||||
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_legacy_err("unable to unregister vdev destroy handle");
|
||||
|
||||
status = wlan_objmgr_unregister_vdev_create_handler(
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
mlme_vdev_object_created_notification,
|
||||
NULL);
|
||||
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_legacy_err("unable to unregister vdev create handle");
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
QDF_STATUS ucfg_mlme_init(void)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
|
@ -126,10 +63,6 @@ QDF_STATUS ucfg_mlme_init(void)
|
|||
return status;
|
||||
}
|
||||
|
||||
status = ucfg_mlme_vdev_init();
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
return status;
|
||||
|
||||
status = wlan_objmgr_register_peer_create_handler(
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
mlme_peer_object_created_notification,
|
||||
|
|
@ -169,10 +102,6 @@ QDF_STATUS ucfg_mlme_deinit(void)
|
|||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_legacy_err("unable to unregister peer create handle");
|
||||
|
||||
status = ucfg_mlme_vdev_deinit();
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_legacy_err("unable to unregister vdev destroy handle");
|
||||
|
||||
status = wlan_objmgr_unregister_psoc_destroy_handler(
|
||||
WLAN_UMAC_COMP_MLME,
|
||||
mlme_psoc_object_destroyed_notification,
|
||||
|
|
@ -207,7 +136,6 @@ void ucfg_mlme_psoc_close(struct wlan_objmgr_psoc *psoc)
|
|||
/* Clear the MLME CFG Structure */
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS ucfg_mlme_pdev_open(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
struct pdev_mlme_obj *pdev_mlme;
|
||||
|
|
@ -226,7 +154,6 @@ QDF_STATUS ucfg_mlme_pdev_close(struct wlan_objmgr_pdev *pdev)
|
|||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_mlme_get_sta_keep_alive_period(struct wlan_objmgr_psoc *psoc,
|
||||
|
|
|
|||
|
|
@ -2704,7 +2704,6 @@ lim_del_sta(struct mac_context *mac,
|
|||
*
|
||||
* Return: None
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void lim_set_mbssid_info(struct pe_session *pe_session)
|
||||
{
|
||||
struct scan_mbssid_info *mbssid_info;
|
||||
|
|
@ -2712,11 +2711,6 @@ static void lim_set_mbssid_info(struct pe_session *pe_session)
|
|||
mbssid_info = &pe_session->pLimJoinReq->bssDescription.mbssid_info;
|
||||
mlme_set_mbssid_info(pe_session->vdev, mbssid_info);
|
||||
}
|
||||
#else
|
||||
static void lim_set_mbssid_info(struct pe_session *pe_session)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_add_sta_self()
|
||||
|
|
|
|||
|
|
@ -386,7 +386,6 @@ ibss_coalesce_save(struct mac_context *mac,
|
|||
qdf_mem_copy(mac->lim.ibss_info.beacon, pBeacon, sizeof(*pBeacon));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS lim_ibss_add_bss(
|
||||
struct mac_context *mac,
|
||||
struct pe_session *session,
|
||||
|
|
@ -403,50 +402,6 @@ void lim_ibss_delete(struct mac_context *mac, struct pe_session *session)
|
|||
ibss_coalesce_free(mac);
|
||||
}
|
||||
|
||||
static void lim_ibss_delete_peers(struct mac_context *mac,
|
||||
struct pe_session *session)
|
||||
{}
|
||||
#else
|
||||
/**
|
||||
* lim_ibss_add_bss() - ibss add bss
|
||||
*
|
||||
* @mac: Pointer to Global MAC structure
|
||||
* @session: Pointer to session entry
|
||||
* @mlmStartReq: Pointer to mlme start request
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static QDF_STATUS lim_ibss_add_bss(
|
||||
struct mac_context *mac,
|
||||
struct pe_session *session,
|
||||
tLimMlmStartReq mlmStartReq)
|
||||
{
|
||||
return lim_mlm_add_bss(mac, &mlmStartReq, session) ==
|
||||
eSIR_SME_SUCCESS ? QDF_STATUS_SUCCESS : QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
void lim_ibss_delete(struct mac_context *mac, struct pe_session *session)
|
||||
{
|
||||
lim_ibss_delete_all_peers(mac, session);
|
||||
ibss_coalesce_free(mac);
|
||||
}
|
||||
|
||||
/**
|
||||
* lim_ibss_delete_peers() - Delete ibss peer entries
|
||||
*
|
||||
* @mac: Pointer to Global MAC structure
|
||||
* @session: Pointer to session entry
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static void lim_ibss_delete_peers(struct mac_context *mac,
|
||||
struct pe_session *session)
|
||||
{
|
||||
/* Delete peer entries. */
|
||||
lim_ibss_delete_all_peers(mac, session);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* tries to add a new entry to dph hash node
|
||||
* if necessary, an existing entry is eliminated
|
||||
|
|
@ -1267,7 +1222,6 @@ void lim_ibss_del_bss_rsp_when_coalescing(struct mac_context *mac, void *msg,
|
|||
}
|
||||
|
||||
/* Delete peer entries. */
|
||||
lim_ibss_delete_peers(mac, pe_session);
|
||||
/* add the new bss */
|
||||
ibss_bss_add(mac, pe_session);
|
||||
end:
|
||||
|
|
@ -1389,7 +1343,6 @@ end:
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void lim_ibss_bss_delete(struct mac_context *mac,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
|
|
@ -1403,13 +1356,6 @@ static void lim_ibss_bss_delete(struct mac_context *mac,
|
|||
if (QDF_IS_STATUS_ERROR(status))
|
||||
pe_err("Deliver WLAN_VDEV_SM_EV_DOWN failed");
|
||||
}
|
||||
#else
|
||||
static void lim_ibss_bss_delete(struct mac_context *mac,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
ibss_bss_delete(mac, pe_session);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_ibss_coalesce()
|
||||
|
|
|
|||
|
|
@ -2071,11 +2071,9 @@ static void lim_process_messages(struct mac_context *mac_ctx,
|
|||
qdf_mem_free((void *)msg->bodyptr);
|
||||
msg->bodyptr = NULL;
|
||||
break;
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
case eWNI_SME_CSA_RESTART_REQ:
|
||||
lim_send_csa_restart_req(mac_ctx, msg->bodyval);
|
||||
break;
|
||||
#endif
|
||||
case eWNI_SME_STA_CSA_CONTINUE_REQ:
|
||||
lim_continue_sta_csa_req(mac_ctx, msg->bodyval);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -219,7 +219,6 @@ error:
|
|||
protStatusCode, pe_session, smesessionId);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* lim_process_mlm_reassoc_cnf() - process mlm reassoc cnf msg
|
||||
*
|
||||
|
|
@ -376,120 +375,6 @@ QDF_STATUS lim_sta_reassoc_error_handler(struct reassoc_params *param)
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#else
|
||||
/**
|
||||
* lim_process_mlm_reassoc_cnf() - process mlm reassoc cnf msg
|
||||
*
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
* @msg_buf: A pointer to the MLM message buffer
|
||||
*
|
||||
* This function is called to process MLM_REASSOC_CNF message from MLM State
|
||||
* machine.
|
||||
*
|
||||
* @Return: void
|
||||
*/
|
||||
void lim_process_mlm_reassoc_cnf(struct mac_context *mac_ctx, uint32_t *msg_buf)
|
||||
{
|
||||
struct pe_session *session;
|
||||
tLimMlmReassocCnf *lim_mlm_reassoc_cnf;
|
||||
|
||||
if (!msg_buf) {
|
||||
pe_err("Buffer is Pointing to NULL");
|
||||
return;
|
||||
}
|
||||
lim_mlm_reassoc_cnf = (tLimMlmReassocCnf *) msg_buf;
|
||||
session = pe_find_session_by_session_id(mac_ctx,
|
||||
lim_mlm_reassoc_cnf->sessionId);
|
||||
if (!session) {
|
||||
pe_err("session Does not exist for given session Id");
|
||||
return;
|
||||
}
|
||||
if ((session->limSmeState != eLIM_SME_WT_REASSOC_STATE) ||
|
||||
LIM_IS_AP_ROLE(session)) {
|
||||
/*
|
||||
* Should not have received Reassocication confirm
|
||||
* from MLM in other states OR on AP.
|
||||
*/
|
||||
pe_err("Rcv unexpected MLM_REASSOC_CNF role: %d sme 0x%X",
|
||||
GET_LIM_SYSTEM_ROLE(session), session->limSmeState);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Upon Reassoc success or failure, freeup the cached preauth request,
|
||||
* to ensure that channel switch is now allowed following any change in
|
||||
* HT params.
|
||||
*/
|
||||
if (session->ftPEContext.pFTPreAuthReq) {
|
||||
pe_debug("Freeing pFTPreAuthReq: %pK",
|
||||
session->ftPEContext.pFTPreAuthReq);
|
||||
if (session->ftPEContext.pFTPreAuthReq->pbssDescription) {
|
||||
qdf_mem_free(
|
||||
session->ftPEContext.pFTPreAuthReq->pbssDescription);
|
||||
session->ftPEContext.pFTPreAuthReq->pbssDescription =
|
||||
NULL;
|
||||
}
|
||||
qdf_mem_free(session->ftPEContext.pFTPreAuthReq);
|
||||
session->ftPEContext.pFTPreAuthReq = NULL;
|
||||
session->ftPEContext.ftPreAuthSession = false;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
if (session->bRoamSynchInProgress) {
|
||||
pe_debug("LFR3:Re-set the LIM Ctxt Roam Synch In Progress");
|
||||
session->bRoamSynchInProgress = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
pe_debug("Rcv MLM_REASSOC_CNF with result code: %d",
|
||||
lim_mlm_reassoc_cnf->resultCode);
|
||||
if (lim_mlm_reassoc_cnf->resultCode == eSIR_SME_SUCCESS) {
|
||||
/* Successful Reassociation */
|
||||
pe_debug("*** Reassociated with new BSS ***");
|
||||
|
||||
session->limSmeState = eLIM_SME_LINK_EST_STATE;
|
||||
MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE,
|
||||
session->peSessionId, session->limSmeState));
|
||||
|
||||
/* Need to send Reassoc rsp with Reassoc success to Host. */
|
||||
lim_send_sme_join_reassoc_rsp(mac_ctx, eWNI_SME_REASSOC_RSP,
|
||||
lim_mlm_reassoc_cnf->resultCode,
|
||||
lim_mlm_reassoc_cnf->protStatusCode,
|
||||
session, session->smeSessionId);
|
||||
} else if (lim_mlm_reassoc_cnf->resultCode
|
||||
== eSIR_SME_REASSOC_REFUSED) {
|
||||
/*
|
||||
* Reassociation failure With the New AP but we still have the
|
||||
* link with the Older AP
|
||||
*/
|
||||
session->limSmeState = eLIM_SME_LINK_EST_STATE;
|
||||
MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE,
|
||||
session->peSessionId, session->limSmeState));
|
||||
|
||||
/* Need to send Reassoc rsp with Assoc failure to Host. */
|
||||
lim_send_sme_join_reassoc_rsp(mac_ctx, eWNI_SME_REASSOC_RSP,
|
||||
lim_mlm_reassoc_cnf->resultCode,
|
||||
lim_mlm_reassoc_cnf->protStatusCode,
|
||||
session, session->smeSessionId);
|
||||
} else {
|
||||
/* Reassociation failure */
|
||||
session->limSmeState = eLIM_SME_JOIN_FAILURE_STATE;
|
||||
MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE,
|
||||
session->peSessionId, session->limSmeState));
|
||||
/* Need to send Reassoc rsp with Assoc failure to Host. */
|
||||
lim_handle_sme_reaasoc_result(mac_ctx,
|
||||
lim_mlm_reassoc_cnf->resultCode,
|
||||
lim_mlm_reassoc_cnf->protStatusCode,
|
||||
session);
|
||||
}
|
||||
|
||||
if (session->pLimReAssocReq) {
|
||||
qdf_mem_free(session->pLimReAssocReq);
|
||||
session->pLimReAssocReq = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_process_sta_mlm_add_bss_rsp_ft() - Handle the ADD BSS response
|
||||
* @mac: Global MAC context
|
||||
|
|
|
|||
|
|
@ -1271,7 +1271,6 @@ static void lim_join_result_callback(struct mac_context *mac, void *param,
|
|||
qdf_mem_free(link_state_params);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS lim_sta_send_down_link(join_params *param)
|
||||
{
|
||||
struct pe_session *session;
|
||||
|
|
@ -1405,85 +1404,6 @@ void lim_handle_sme_join_result(struct mac_context *mac_ctx,
|
|||
sizeof(param), ¶m);
|
||||
return;
|
||||
}
|
||||
#else
|
||||
void lim_handle_sme_join_result(struct mac_context *mac_ctx,
|
||||
tSirResultCodes result_code, uint16_t prot_status_code,
|
||||
struct pe_session *session_entry)
|
||||
{
|
||||
tpDphHashNode sta_ds = NULL;
|
||||
uint8_t sme_session_id;
|
||||
join_params *param = NULL;
|
||||
|
||||
if (!session_entry) {
|
||||
pe_err("pe_session is NULL");
|
||||
return;
|
||||
}
|
||||
sme_session_id = session_entry->smeSessionId;
|
||||
/*
|
||||
* When associations is failed , delete the session created
|
||||
* and pass NULL to limsendsmeJoinReassocRsp()
|
||||
*/
|
||||
if (result_code != eSIR_SME_SUCCESS) {
|
||||
sta_ds =
|
||||
dph_get_hash_entry(mac_ctx, DPH_STA_HASH_INDEX_PEER,
|
||||
&session_entry->dph.dphHashTable);
|
||||
if (sta_ds) {
|
||||
sta_ds->mlmStaContext.disassocReason =
|
||||
eSIR_MAC_UNSPEC_FAILURE_REASON;
|
||||
sta_ds->mlmStaContext.cleanupTrigger =
|
||||
eLIM_JOIN_FAILURE;
|
||||
sta_ds->mlmStaContext.resultCode = result_code;
|
||||
sta_ds->mlmStaContext.protStatusCode = prot_status_code;
|
||||
/*
|
||||
* FIX_ME: at the end of lim_cleanup_rx_path,
|
||||
* make sure PE is sending eWNI_SME_JOIN_RSP
|
||||
* to SME
|
||||
*/
|
||||
lim_cleanup_rx_path(mac_ctx, sta_ds, session_entry);
|
||||
qdf_mem_free(session_entry->pLimJoinReq);
|
||||
session_entry->pLimJoinReq = NULL;
|
||||
/* Cleanup if add bss failed */
|
||||
if (session_entry->add_bss_failed) {
|
||||
dph_delete_hash_entry(mac_ctx,
|
||||
sta_ds->staAddr, sta_ds->assocId,
|
||||
&session_entry->dph.dphHashTable);
|
||||
goto error;
|
||||
}
|
||||
return;
|
||||
}
|
||||
qdf_mem_free(session_entry->pLimJoinReq);
|
||||
session_entry->pLimJoinReq = NULL;
|
||||
}
|
||||
error:
|
||||
/* Delete the session if JOIN failure occurred.
|
||||
* if the peer is not created, then there is no
|
||||
* need to send down the set link state which will
|
||||
* try to delete the peer. Instead a join response
|
||||
* failure should be sent to the upper layers.
|
||||
*/
|
||||
if (result_code != eSIR_SME_SUCCESS &&
|
||||
result_code != eSIR_SME_PEER_CREATE_FAILED) {
|
||||
param = qdf_mem_malloc(sizeof(join_params));
|
||||
if (param) {
|
||||
param->result_code = result_code;
|
||||
param->prot_status_code = prot_status_code;
|
||||
param->pe_session_id = session_entry->peSessionId;
|
||||
}
|
||||
if (lim_set_link_state(mac_ctx, eSIR_LINK_DOWN_STATE,
|
||||
session_entry->bssId,
|
||||
session_entry->selfMacAddr,
|
||||
lim_join_result_callback,
|
||||
param) != QDF_STATUS_SUCCESS) {
|
||||
qdf_mem_free(param);
|
||||
pe_err("Failed to set the LinkState");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
lim_send_sme_join_reassoc_rsp(mac_ctx, eWNI_SME_JOIN_RSP, result_code,
|
||||
prot_status_code, session_entry, sme_session_id);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -477,7 +477,6 @@ lim_configure_ap_start_bss_session(struct mac_context *mac_ctx,
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS
|
||||
lim_send_start_vdev_req(struct pe_session *session, tLimMlmStartReq *mlm_start_req)
|
||||
{
|
||||
|
|
@ -486,15 +485,6 @@ lim_send_start_vdev_req(struct pe_session *session, tLimMlmStartReq *mlm_start_r
|
|||
sizeof(*mlm_start_req),
|
||||
mlm_start_req);
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS
|
||||
lim_send_start_vdev_req(struct pe_session *session, tLimMlmStartReq *mlm_start_req)
|
||||
{
|
||||
lim_process_mlm_start_req(session->mac_ctx, mlm_start_req);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* __lim_handle_sme_start_bss_request() - process SME_START_BSS_REQ message
|
||||
|
|
@ -1074,8 +1064,6 @@ static inline void lim_update_sae_config(struct pe_session *session,
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS lim_send_join_req(struct pe_session *session,
|
||||
tLimMlmJoinReq *mlm_join_req)
|
||||
{
|
||||
|
|
@ -1090,15 +1078,6 @@ static QDF_STATUS lim_send_join_req(struct pe_session *session,
|
|||
sizeof(*mlm_join_req),
|
||||
mlm_join_req);
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS lim_send_join_req(struct pe_session *session,
|
||||
tLimMlmJoinReq *mlm_join_req)
|
||||
{
|
||||
lim_process_mlm_join_req(session->mac_ctx, mlm_join_req);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_send_reassoc_req() - send vdev start request for reassoc
|
||||
|
|
@ -1107,8 +1086,6 @@ static QDF_STATUS lim_send_join_req(struct pe_session *session,
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS lim_send_reassoc_req(struct pe_session *session,
|
||||
tLimMlmReassocReq *reassoc_req)
|
||||
{
|
||||
|
|
@ -1123,15 +1100,6 @@ static QDF_STATUS lim_send_reassoc_req(struct pe_session *session,
|
|||
sizeof(*reassoc_req),
|
||||
reassoc_req);
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS lim_send_reassoc_req(struct pe_session *session,
|
||||
tLimMlmReassocReq *reassoc_req)
|
||||
{
|
||||
lim_process_mlm_reassoc_req(session->mac_ctx, reassoc_req);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_send_ft_reassoc_req() - send vdev start request for ft_reassoc
|
||||
|
|
@ -1140,8 +1108,6 @@ static QDF_STATUS lim_send_reassoc_req(struct pe_session *session,
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS lim_send_ft_reassoc_req(struct pe_session *session,
|
||||
tLimMlmReassocReq *reassoc_req)
|
||||
{
|
||||
|
|
@ -1156,15 +1122,6 @@ static QDF_STATUS lim_send_ft_reassoc_req(struct pe_session *session,
|
|||
sizeof(*reassoc_req),
|
||||
reassoc_req);
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS lim_send_ft_reassoc_req(struct pe_session *session,
|
||||
tLimMlmReassocReq *reassoc_req)
|
||||
{
|
||||
lim_process_mlm_ft_reassoc_req(session->mac_ctx, reassoc_req);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11W
|
||||
#ifdef WLAN_CONV_CRYPTO_IE_SUPPORT
|
||||
|
|
@ -2887,7 +2844,6 @@ QDF_STATUS lim_send_vdev_stop(struct pe_session *session)
|
|||
*
|
||||
* Return None
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void lim_delete_peers_and_send_vdev_stop(struct pe_session *session)
|
||||
{
|
||||
struct mac_context *mac_ctx = session->mac_ctx;
|
||||
|
|
@ -2907,14 +2863,6 @@ static void lim_delete_peers_and_send_vdev_stop(struct pe_session *session)
|
|||
if (QDF_IS_STATUS_ERROR(status))
|
||||
lim_send_stop_bss_failure_resp(mac_ctx, session);
|
||||
}
|
||||
#else
|
||||
static void lim_delete_peers_and_send_vdev_stop(struct pe_session *session)
|
||||
{
|
||||
lim_delete_all_peers(session);
|
||||
/* send a delBss to HAL and wait for a response */
|
||||
lim_send_vdev_stop(session);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
__lim_handle_sme_stop_bss_request(struct mac_context *mac, uint32_t *pMsgBuf)
|
||||
|
|
@ -3799,7 +3747,6 @@ static void lim_process_roam_invoke(struct mac_context *mac_ctx,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void lim_handle_update_ssid_hidden(struct mac_context *mac_ctx,
|
||||
struct pe_session *session, uint8_t ssid_hidden)
|
||||
{
|
||||
|
|
@ -3818,37 +3765,7 @@ static void lim_handle_update_ssid_hidden(struct mac_context *mac_ctx,
|
|||
WLAN_VDEV_SM_EV_FW_VDEV_RESTART,
|
||||
sizeof(*session), session);
|
||||
}
|
||||
#else
|
||||
/*
|
||||
* lim_handle_update_ssid_hidden() - Processes SSID hidden update
|
||||
* @mac_ctx: Pointer to global mac context
|
||||
* @session: Pointer to PE session
|
||||
* @ssid_hidden: SSID hidden value to set; 0 - Broadcast SSID,
|
||||
* 1 - Disable broadcast SSID
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void lim_handle_update_ssid_hidden(
|
||||
struct mac_context *mac_ctx,
|
||||
struct pe_session *session,
|
||||
uint8_t ssid_hidden)
|
||||
{
|
||||
pe_debug("rcvd HIDE_SSID message old HIDE_SSID: %d new HIDE_SSID: %d",
|
||||
session->ssidHidden, ssid_hidden);
|
||||
|
||||
if (ssid_hidden != session->ssidHidden) {
|
||||
session->ssidHidden = ssid_hidden;
|
||||
} else {
|
||||
pe_debug("Dont process HIDE_SSID msg with existing setting");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Send vdev restart */
|
||||
lim_send_vdev_restart(mac_ctx, session, session->smeSessionId);
|
||||
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
/**
|
||||
* __lim_process_sme_session_update - process SME session update msg
|
||||
*
|
||||
|
|
@ -4582,7 +4499,6 @@ static void lim_process_sme_update_access_policy_vendor_ie(
|
|||
pe_session_entry->access_policy = update_vendor_ie->access_policy;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS lim_sta_mlme_vdev_disconnect_bss(struct vdev_mlme_obj *vdev_mlme,
|
||||
uint16_t data_len, void *data)
|
||||
{
|
||||
|
|
@ -4730,55 +4646,6 @@ static void lim_process_sme_deauth_req(struct mac_context *mac_ctx,
|
|||
__lim_process_sme_deauth_req(mac_ctx,
|
||||
(uint32_t *)msg->bodyptr);
|
||||
}
|
||||
#else
|
||||
/**
|
||||
* lim_process_sme_disassoc_cnf() - process sme disassoc cnf message
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
* @msg: pointer to message buffer
|
||||
*
|
||||
* This function is called to process SME_DISASSOC_CNF message
|
||||
* from HDD or upper layer application.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void lim_process_sme_disassoc_cnf(struct mac_context *mac_ctx,
|
||||
struct scheduler_msg *msg)
|
||||
{
|
||||
__lim_process_sme_disassoc_cnf(mac_ctx, (uint32_t *)msg->bodyptr);
|
||||
}
|
||||
|
||||
/**
|
||||
* lim_process_sme_disassoc_req() - process sme deauth req
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
* @msg: pointer to message buffer
|
||||
*
|
||||
* This function is called to process SME_DISASSOC_REQ message
|
||||
* from HDD or upper layer application.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void lim_process_sme_disassoc_req(struct mac_context *mac_ctx,
|
||||
struct scheduler_msg *msg)
|
||||
{
|
||||
__lim_process_sme_disassoc_req(mac_ctx, (uint32_t *)msg->bodyptr);
|
||||
}
|
||||
|
||||
/**
|
||||
* lim_process_sme_deauth_req() - process sme deauth req
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
* @msg: pointer to message buffer
|
||||
*
|
||||
* This function is called to process SME_DEAUTH_REQ message
|
||||
* from HDD or upper layer application.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void lim_process_sme_deauth_req(struct mac_context *mac_ctx,
|
||||
struct scheduler_msg *msg)
|
||||
{
|
||||
__lim_process_sme_deauth_req(mac_ctx, (uint32_t *)msg->bodyptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_process_sme_req_messages()
|
||||
|
|
@ -5089,7 +4956,6 @@ static void lim_process_sme_start_beacon_req(struct mac_context *mac, uint32_t *
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void lim_change_channel(
|
||||
struct mac_context *mac_ctx,
|
||||
struct pe_session *session_entry)
|
||||
|
|
@ -5107,31 +4973,6 @@ static void lim_change_channel(
|
|||
sizeof(*session_entry),
|
||||
session_entry);
|
||||
}
|
||||
#else
|
||||
/**
|
||||
* lim_change_channel() - lim change channel api
|
||||
*
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
* @session_entry: pointer to the SME message buffer
|
||||
*
|
||||
* This function is called to process SME_CHANNEL_CHANGE_REQ message
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void lim_change_channel(
|
||||
struct mac_context *mac_ctx,
|
||||
struct pe_session *session_entry)
|
||||
{
|
||||
lim_set_channel(mac_ctx, session_entry->currentOperChannel,
|
||||
session_entry->ch_center_freq_seg0,
|
||||
session_entry->ch_center_freq_seg1,
|
||||
session_entry->ch_width,
|
||||
session_entry->maxTxPower,
|
||||
session_entry->peSessionId,
|
||||
session_entry->cac_duration_ms,
|
||||
session_entry->dfs_regdomain);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_process_sme_channel_change_request() - process sme ch change req
|
||||
|
|
@ -6412,7 +6253,6 @@ void lim_process_obss_color_collision_info(struct mac_context *mac_ctx,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
void lim_send_csa_restart_req(struct mac_context *mac_ctx, uint8_t vdev_id)
|
||||
{
|
||||
struct pe_session *session;
|
||||
|
|
@ -6428,7 +6268,6 @@ void lim_send_csa_restart_req(struct mac_context *mac_ctx, uint8_t vdev_id)
|
|||
WLAN_VDEV_SM_EV_CSA_RESTART,
|
||||
sizeof(*session), session);
|
||||
}
|
||||
#endif
|
||||
|
||||
void lim_continue_sta_csa_req(struct mac_context *mac_ctx, uint8_t vdev_id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1123,7 +1123,6 @@ void lim_process_mlm_join_req(struct mac_context *mac_ctx,
|
|||
*/
|
||||
void lim_process_mlm_deauth_req(struct mac_context *mac_ctx, uint32_t *msg_buf);
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* lim_sta_mlme_vdev_disconnect_bss() - Disconnect from BSS
|
||||
* @vdev_mlme_obj: VDEV MLME comp object
|
||||
|
|
@ -1137,7 +1136,7 @@ void lim_process_mlm_deauth_req(struct mac_context *mac_ctx, uint32_t *msg_buf);
|
|||
*/
|
||||
QDF_STATUS lim_sta_mlme_vdev_disconnect_bss(struct vdev_mlme_obj *vdev_mlme,
|
||||
uint16_t data_len, void *data);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_process_assoc_cleanup() - frees up resources used in function
|
||||
* lim_process_assoc_req_frame()
|
||||
|
|
|
|||
|
|
@ -1909,7 +1909,6 @@ static void __lim_process_channel_switch_timeout(struct pe_session *pe_session)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
void lim_disconnect_complete(struct pe_session *session, bool del_bss)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
|
@ -1956,34 +1955,6 @@ void lim_process_channel_switch_timeout(struct mac_context *mac_ctx)
|
|||
if (QDF_IS_STATUS_ERROR(status))
|
||||
mlme_set_chan_switch_in_progress(session_entry->vdev, false);
|
||||
}
|
||||
#else
|
||||
void lim_disconnect_complete(struct pe_session *session, bool del_bss)
|
||||
{
|
||||
if (del_bss)
|
||||
lim_sta_send_del_bss(session);
|
||||
}
|
||||
|
||||
/**
|
||||
* lim_process_channel_switch_timeout() - process chanel switch timeout
|
||||
* @mac: pointer to Global MAC structure
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void lim_process_channel_switch_timeout(struct mac_context *mac_ctx)
|
||||
{
|
||||
struct pe_session *session_entry;
|
||||
|
||||
session_entry = pe_find_session_by_session_id(
|
||||
mac_ctx,
|
||||
mac_ctx->lim.limTimers.gLimChannelSwitchTimer.sessionId);
|
||||
if (!session_entry) {
|
||||
pe_err("Session does not exist for given sessionID");
|
||||
return;
|
||||
}
|
||||
|
||||
__lim_process_channel_switch_timeout(session_entry);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_update_channel_switch() - This Function updates channel switch
|
||||
|
|
@ -2176,7 +2147,6 @@ lim_util_count_sta_del(struct mac_context *mac,
|
|||
sch_edca_profile_update(mac, pe_session);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* lim_switch_channel_vdev_started() - Send vdev started when switch channel
|
||||
*
|
||||
|
|
@ -2195,9 +2165,6 @@ static void lim_switch_channel_vdev_started(struct pe_session *pe_session)
|
|||
WLAN_VDEV_SM_EV_START_SUCCESS,
|
||||
sizeof(*pe_session), pe_session);
|
||||
}
|
||||
#else
|
||||
static void lim_switch_channel_vdev_started(struct pe_session *pe_session) {}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_switch_channel_cback()
|
||||
|
|
@ -3865,7 +3832,6 @@ QDF_STATUS lim_tx_complete(void *context, qdf_nbuf_t buf, bool free)
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void lim_ht_width_switch_cback(struct mac_context *mac,
|
||||
QDF_STATUS status, uint32_t *data,
|
||||
struct pe_session *pe_session)
|
||||
|
|
@ -3875,15 +3841,6 @@ static void lim_ht_width_switch_cback(struct mac_context *mac,
|
|||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
lim_switch_channel_vdev_started(pe_session);
|
||||
}
|
||||
#else
|
||||
static void lim_ht_width_switch_cback(struct mac_context *mac,
|
||||
QDF_STATUS status, uint32_t *data,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
pe_debug("status %d for ht width switch for vdev %d", status,
|
||||
pe_session->smeSessionId);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void lim_ht_switch_chnl_params(struct pe_session *pe_session)
|
||||
{
|
||||
|
|
@ -3928,7 +3885,6 @@ static void lim_ht_switch_chnl_params(struct pe_session *pe_session)
|
|||
true, 0, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void lim_ht_switch_chnl_req(struct pe_session *session)
|
||||
{
|
||||
struct mac_context *mac;
|
||||
|
|
@ -3954,13 +3910,6 @@ static void lim_ht_switch_chnl_req(struct pe_session *session)
|
|||
mlme_set_chan_switch_in_progress(session->vdev, false);
|
||||
}
|
||||
}
|
||||
#else
|
||||
static void lim_ht_switch_chnl_req(struct pe_session *session)
|
||||
{
|
||||
lim_ht_switch_chnl_params(session);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* \brief This function updates lim global structure, if CB parameters in the BSS
|
||||
|
|
@ -7858,7 +7807,6 @@ void lim_process_ap_ecsa_timeout(void *data)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS lim_sta_mlme_vdev_start_send(struct vdev_mlme_obj *vdev_mlme,
|
||||
uint16_t data_len, void *data)
|
||||
{
|
||||
|
|
@ -8192,25 +8140,6 @@ void lim_send_start_bss_confirm(struct mac_context *mac_ctx,
|
|||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void lim_send_start_bss_confirm(struct mac_context *mac_ctx,
|
||||
tLimMlmStartCnf *start_cnf)
|
||||
{
|
||||
lim_post_sme_message(mac_ctx, LIM_MLM_START_CNF,
|
||||
(uint32_t *)start_cnf);
|
||||
}
|
||||
|
||||
void lim_send_beacon(struct mac_context *mac_ctx, struct pe_session *session)
|
||||
{
|
||||
lim_send_beacon_ind(mac_ctx, session, REASON_DEFAULT);
|
||||
}
|
||||
|
||||
void lim_ndi_mlme_vdev_up_transition(struct pe_session *session)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* lim_get_dot11d_transmit_power() - regulatory max transmit power
|
||||
* @mac: pointer to mac data
|
||||
|
|
|
|||
|
|
@ -1548,7 +1548,6 @@ void lim_ndi_mlme_vdev_up_transition(struct pe_session *session);
|
|||
*/
|
||||
void lim_disconnect_complete(struct pe_session *session, bool del_bss);
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* lim_sta_mlme_vdev_stop_send() - send VDEV stop
|
||||
* @vdev_mlme_obj: VDEV MLME comp object
|
||||
|
|
@ -1690,8 +1689,6 @@ QDF_STATUS lim_ap_mlme_vdev_restart_send(struct vdev_mlme_obj *vdev_mlme,
|
|||
QDF_STATUS lim_ap_mlme_vdev_start_req_failed(struct vdev_mlme_obj *vdev_mlme,
|
||||
uint16_t data_len, void *data);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CRYPTO_SET_KEY_CONVERGED
|
||||
static inline bool lim_is_set_key_req_converged(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2281,7 +2281,6 @@ static QDF_STATUS sap_goto_starting(struct sap_context *sap_ctx,
|
|||
return qdf_status;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* sap_move_to_cac_wait_state() - move to cac wait state
|
||||
* @sap_ctx: SAP context
|
||||
|
|
@ -2298,12 +2297,6 @@ static QDF_STATUS sap_move_to_cac_wait_state(struct sap_context *sap_ctx)
|
|||
0, NULL);
|
||||
return status;
|
||||
}
|
||||
#else
|
||||
static inline QDF_STATUS sap_move_to_cac_wait_state(struct sap_context *sap_ctx)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sap_fsm_cac_start() - start cac wait timer
|
||||
|
|
@ -2313,7 +2306,6 @@ static inline QDF_STATUS sap_move_to_cac_wait_state(struct sap_context *sap_ctx)
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS sap_fsm_cac_start(struct sap_context *sap_ctx,
|
||||
struct mac_context *mac_ctx,
|
||||
mac_handle_t mac_handle)
|
||||
|
|
@ -2333,29 +2325,6 @@ static QDF_STATUS sap_fsm_cac_start(struct sap_context *sap_ctx,
|
|||
|
||||
return sap_cac_start_notify(mac_handle);
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS sap_fsm_cac_start(struct sap_context *sap_ctx,
|
||||
struct mac_context *mac_ctx,
|
||||
mac_handle_t mac_handle)
|
||||
{
|
||||
/*
|
||||
* No need of state check here, caller is expected to perform
|
||||
* the checks before sending the event
|
||||
*/
|
||||
sap_ctx->fsm_state = SAP_DFS_CAC_WAIT;
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
|
||||
FL("Move sap state to SAP_DFS_CAC_WAIT"));
|
||||
if (!mac_ctx->sap.SapDfsInfo.is_dfs_cac_timer_running) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
|
||||
FL("sapdfs: starting dfs cac timer on sapctx[%pK]"),
|
||||
sap_ctx);
|
||||
sap_start_dfs_cac_timer(sap_ctx);
|
||||
}
|
||||
|
||||
return sap_cac_start_notify(mac_handle);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sap_fsm_state_init() - utility function called from sap fsm
|
||||
|
|
@ -2471,15 +2440,6 @@ static QDF_STATUS sap_fsm_handle_radar_during_cac(struct sap_context *sap_ctx,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS sap_fsm_state_dfs_cac_wait(struct sap_context *sap_ctx,
|
||||
struct sap_sm_event *sap_event,
|
||||
struct mac_context *mac_ctx,
|
||||
mac_handle_t mac_handle)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* sap_fsm_handle_start_failure() - handle start failure or stop during cac wait
|
||||
* @sap_ctx: SAP context
|
||||
|
|
@ -2537,88 +2497,6 @@ static QDF_STATUS sap_fsm_handle_start_failure(struct sap_context *sap_ctx,
|
|||
|
||||
return qdf_status;
|
||||
}
|
||||
#else
|
||||
|
||||
/**
|
||||
* sap_fsm_state_dfs_cac_wait() - utility function called from sap fsm
|
||||
* @sap_ctx: SAP context
|
||||
* @sap_event: SAP event buffer
|
||||
* @mac_ctx: global MAC context
|
||||
* @mac_handle: Opaque handle to the global MAC context
|
||||
*
|
||||
* This function is called for state transition from "SAP_DFS_CAC_WAIT"
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static QDF_STATUS sap_fsm_state_dfs_cac_wait(struct sap_context *sap_ctx,
|
||||
struct sap_sm_event *sap_event,
|
||||
struct mac_context *mac_ctx,
|
||||
mac_handle_t mac_handle)
|
||||
{
|
||||
uint32_t msg = sap_event->event;
|
||||
struct csr_roam_info *roam_info =
|
||||
(struct csr_roam_info *) (sap_event->params);
|
||||
QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE;
|
||||
|
||||
if (msg == eSAP_DFS_CHANNEL_CAC_START) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
FL("from state %s => %s"),
|
||||
"SAP_STARTING", "SAP_DFS_CAC_WAIT");
|
||||
if (mac_ctx->sap.SapDfsInfo.is_dfs_cac_timer_running != true)
|
||||
sap_start_dfs_cac_timer(sap_ctx);
|
||||
qdf_status = sap_cac_start_notify(mac_handle);
|
||||
} else if (msg == eSAP_DFS_CHANNEL_CAC_RADAR_FOUND) {
|
||||
qdf_status = sap_fsm_handle_radar_during_cac(sap_ctx, mac_ctx);
|
||||
} else if (msg == eSAP_DFS_CHANNEL_CAC_END) {
|
||||
qdf_status = sap_cac_end_notify(mac_handle, roam_info);
|
||||
} else if (msg == eSAP_HDD_STOP_INFRA_BSS) {
|
||||
/* Transition from SAP_DFS_CAC_WAIT to SAP_STOPPING */
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
FL("from state %s => %s"),
|
||||
"SAP_DFS_CAC_WAIT", "SAP_STOPPING");
|
||||
|
||||
/*
|
||||
* Stop the CAC timer only in following conditions
|
||||
* single AP: if there is a single AP then stop the timer
|
||||
* mulitple APs: incase of multiple APs, make sure that
|
||||
* all APs are down.
|
||||
*/
|
||||
if (!sap_find_valid_concurrent_session(mac_handle)) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP,
|
||||
QDF_TRACE_LEVEL_INFO_MED,
|
||||
FL("sapdfs: no sessions are valid, stopping timer"));
|
||||
sap_stop_dfs_cac_timer(sap_ctx);
|
||||
}
|
||||
|
||||
sap_ctx->fsm_state = SAP_STOPPING;
|
||||
qdf_status = sap_goto_stopping(sap_ctx);
|
||||
} else {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("in state %s, invalid event msg %d"),
|
||||
"SAP_DFS_CAC_WAIT", msg);
|
||||
}
|
||||
|
||||
return qdf_status;
|
||||
}
|
||||
|
||||
static QDF_STATUS sap_fsm_handle_start_failure(struct sap_context *sap_ctx,
|
||||
uint32_t msg,
|
||||
mac_handle_t mac_handle)
|
||||
{
|
||||
/*
|
||||
* Transition from SAP_STARTING to SAP_INIT
|
||||
* (both without substates)
|
||||
*/
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
FL("from state %s => %s"),
|
||||
"SAP_STARTING", "SAP_INIT");
|
||||
/* Advance outer statevar */
|
||||
sap_ctx->fsm_state = SAP_INIT;
|
||||
sap_signal_hdd_event(sap_ctx, NULL, eSAP_START_BSS_EVENT,
|
||||
(void *)eSAP_STATUS_FAILURE);
|
||||
return sap_goto_init(sap_ctx);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sap_fsm_state_starting() - utility function called from sap fsm
|
||||
|
|
@ -2740,7 +2618,6 @@ static QDF_STATUS sap_fsm_state_starting(struct sap_context *sap_ctx,
|
|||
return qdf_status;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* sap_fsm_send_csa_restart_req() - send csa start event
|
||||
* @mac_ctx: mac ctx
|
||||
|
|
@ -2755,50 +2632,6 @@ sap_fsm_send_csa_restart_req(struct mac_context *mac_ctx,
|
|||
return sme_csa_restart(mac_ctx, sap_ctx->sessionId);
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
sap_handle_csa_anouncement_start(struct mac_context *mac_ctx,
|
||||
struct sap_context *sap_ctx)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#else
|
||||
static inline QDF_STATUS
|
||||
sap_fsm_send_csa_restart_req(struct mac_context *mac_ctx,
|
||||
struct sap_context *sap_ctx)
|
||||
{
|
||||
return wlansap_dfs_send_csa_ie_request(sap_ctx);
|
||||
}
|
||||
|
||||
/**
|
||||
* sap_handle_csa_anouncement_start() - start csa IE announcement request
|
||||
* @mac_ctx: mac ctx
|
||||
* @sap_ctx: SAP context
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline QDF_STATUS
|
||||
sap_handle_csa_anouncement_start(struct mac_context *mac_ctx,
|
||||
struct sap_context *sap_ctx)
|
||||
{
|
||||
enum QDF_OPMODE persona;
|
||||
QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE;
|
||||
|
||||
if (!sap_ctx) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("Invalid sap_ctx"));
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
persona = mac_ctx->sap.sapCtxList[sap_ctx->sessionId].sapPersona;
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
|
||||
FL("app trigger chan switch: mode:%d vdev:%d"),
|
||||
persona, sap_ctx->sessionId);
|
||||
if ((QDF_SAP_MODE == persona) || (QDF_P2P_GO_MODE == persona))
|
||||
qdf_status = wlansap_dfs_send_csa_ie_request(sap_ctx);
|
||||
|
||||
return qdf_status;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sap_fsm_state_started() - utility function called from sap fsm
|
||||
* @sap_ctx: SAP context
|
||||
|
|
@ -2869,8 +2702,6 @@ static QDF_STATUS sap_fsm_state_started(struct sap_context *sap_ctx,
|
|||
temp_sap_ctx);
|
||||
}
|
||||
}
|
||||
} else if (msg == eSAP_CHANNEL_SWITCH_ANNOUNCEMENT_START) {
|
||||
qdf_status = sap_handle_csa_anouncement_start(mac_ctx, sap_ctx);
|
||||
} else {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("in state %s, invalid event msg %d"),
|
||||
|
|
@ -2961,11 +2792,6 @@ QDF_STATUS sap_fsm(struct sap_context *sap_ctx, struct sap_sm_event *sap_event)
|
|||
mac_ctx, mac_handle);
|
||||
break;
|
||||
|
||||
case SAP_DFS_CAC_WAIT:
|
||||
qdf_status = sap_fsm_state_dfs_cac_wait(sap_ctx, sap_event,
|
||||
mac_ctx, mac_handle);
|
||||
break;
|
||||
|
||||
case SAP_STARTING:
|
||||
qdf_status = sap_fsm_state_starting(sap_ctx, sap_event,
|
||||
mac_ctx, mac_handle);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014, 2018 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2014, 2018-2019 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,7 +42,6 @@ typedef enum {
|
|||
eSAP_DFS_CHANNEL_CAC_END,
|
||||
eSAP_DFS_CHNL_SWITCH_ANNOUNCEMENT_START,
|
||||
eSAP_OPERATING_CHANNEL_CHANGED,
|
||||
eSAP_CHANNEL_SWITCH_ANNOUNCEMENT_START,
|
||||
eSAP_NO_MSG
|
||||
} eSapMsg_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -90,14 +90,12 @@
|
|||
/**
|
||||
* enum sap_fsm_state - SAP FSM states for Access Point role
|
||||
* @SAP_INIT: init state
|
||||
* @SAP_DFS_CAC_WAIT: cac wait
|
||||
* @SAP_STARTING: starting phase
|
||||
* @SAP_STARTED: up and running
|
||||
* @SAP_STOPPING: about to stop and transitions to init
|
||||
*/
|
||||
enum sap_fsm_state {
|
||||
SAP_INIT,
|
||||
SAP_DFS_CAC_WAIT,
|
||||
SAP_STARTING,
|
||||
SAP_STARTED,
|
||||
SAP_STOPPING
|
||||
|
|
@ -462,7 +460,6 @@ uint8_t sap_select_default_oper_chan(struct sap_acs_cfg *acs_cfg);
|
|||
*
|
||||
* Return: true if sap is in cac wait state
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static inline bool sap_is_dfs_cac_wait_state(struct sap_context *sap_ctx)
|
||||
{
|
||||
if (!sap_ctx)
|
||||
|
|
@ -470,15 +467,6 @@ static inline bool sap_is_dfs_cac_wait_state(struct sap_context *sap_ctx)
|
|||
|
||||
return QDF_IS_STATUS_SUCCESS(wlan_vdev_is_dfs_cac_wait(sap_ctx->vdev));
|
||||
}
|
||||
#else
|
||||
static inline bool sap_is_dfs_cac_wait_state(struct sap_context *sap_ctx)
|
||||
{
|
||||
if (!sap_ctx)
|
||||
return false;
|
||||
|
||||
return (sap_ctx->fsm_state == SAP_DFS_CAC_WAIT);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sap_channel_in_acs_channel_list() - check if channel in acs channel list
|
||||
|
|
|
|||
|
|
@ -1322,32 +1322,12 @@ wlansap_update_csa_channel_params(struct sap_context *sap_context,
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static inline void sap_start_csa_restart(struct mac_context *mac,
|
||||
struct sap_context *sap_ctx)
|
||||
{
|
||||
sme_csa_restart(mac, sap_ctx->sessionId);
|
||||
}
|
||||
#else
|
||||
static void sap_start_csa_restart(struct mac_context *mac,
|
||||
struct sap_context *sap_ctx)
|
||||
{
|
||||
struct sap_sm_event sap_event;
|
||||
|
||||
/*
|
||||
* Post the eSAP_CHANNEL_SWITCH_ANNOUNCEMENT_START
|
||||
* to SAP state machine to process the channel
|
||||
* request with CSA IE set in the beacons.
|
||||
*/
|
||||
sap_event.event =
|
||||
eSAP_CHANNEL_SWITCH_ANNOUNCEMENT_START;
|
||||
sap_event.params = 0;
|
||||
sap_event.u1 = 0;
|
||||
sap_event.u2 = 0;
|
||||
|
||||
sap_fsm(sap_ctx, &sap_event);
|
||||
}
|
||||
#endif
|
||||
/**
|
||||
* wlansap_set_channel_change_with_csa() - Set channel change with CSA
|
||||
* @sap_ctx: Pointer to SAP context
|
||||
|
|
@ -1772,7 +1752,6 @@ void wlansap_get_sec_channel(uint8_t sec_ch_offset,
|
|||
__func__, sec_ch_offset, *sec_channel);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void
|
||||
wlansap_set_cac_required_for_chan(struct mac_context *mac_ctx,
|
||||
struct sap_context *sap_ctx)
|
||||
|
|
@ -1811,13 +1790,6 @@ wlansap_set_cac_required_for_chan(struct mac_context *mac_ctx,
|
|||
|
||||
mlme_set_cac_required(sap_ctx->vdev, cac_required);
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
wlansap_set_cac_required_for_chan(struct mac_context *mac_ctx,
|
||||
struct sap_context *sap_ctx)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS wlansap_channel_change_request(struct sap_context *sap_ctx,
|
||||
uint8_t target_channel)
|
||||
|
|
|
|||
|
|
@ -956,7 +956,6 @@ QDF_STATUS sme_roam_start_beacon_req(mac_handle_t mac_handle,
|
|||
struct qdf_mac_addr bssid,
|
||||
uint8_t dfsCacWaitStatus);
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* sme_csa_restart() - request CSA IE transmission from PE
|
||||
* @mac_ctx: mac context
|
||||
|
|
@ -965,7 +964,6 @@ QDF_STATUS sme_roam_start_beacon_req(mac_handle_t mac_handle,
|
|||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS sme_csa_restart(struct mac_context *mac_ctx, uint8_t session_id);
|
||||
#endif
|
||||
|
||||
QDF_STATUS sme_roam_csa_ie_request(mac_handle_t mac_handle,
|
||||
struct qdf_mac_addr bssid,
|
||||
|
|
|
|||
|
|
@ -8967,7 +8967,6 @@ QDF_STATUS sme_roam_start_beacon_req(mac_handle_t mac_handle,
|
|||
return status;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS sme_csa_restart(struct mac_context *mac_ctx, uint8_t session_id)
|
||||
{
|
||||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -8980,7 +8979,6 @@ QDF_STATUS sme_csa_restart(struct mac_context *mac_ctx, uint8_t session_id)
|
|||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sme_roam_csa_ie_request() - request CSA IE transmission from PE
|
||||
|
|
|
|||
|
|
@ -20871,7 +20871,6 @@ QDF_STATUS csr_send_ext_change_channel(struct mac_context *mac_ctx, uint32_t cha
|
|||
return status;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS csr_csa_restart(struct mac_context *mac_ctx, uint8_t session_id)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
|
@ -20889,7 +20888,6 @@ QDF_STATUS csr_csa_restart(struct mac_context *mac_ctx, uint8_t session_id)
|
|||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* csr_roam_send_chan_sw_ie_request() - Request to transmit CSA IE
|
||||
|
|
|
|||
|
|
@ -832,7 +832,7 @@ QDF_STATUS csr_roam_del_pmkid_from_cache(struct mac_context *mac,
|
|||
|
||||
QDF_STATUS csr_send_ext_change_channel(struct mac_context *mac_ctx,
|
||||
uint32_t channel, uint8_t session_id);
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
|
||||
/**
|
||||
* csr_csa_start() - request CSA IE transmission from PE
|
||||
* @mac_ctx: handle returned by mac_open
|
||||
|
|
@ -841,7 +841,6 @@ QDF_STATUS csr_send_ext_change_channel(struct mac_context *mac_ctx,
|
|||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS csr_csa_restart(struct mac_context *mac_ctx, uint8_t session_id);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* csr_sta_continue_csa() - Continue for CSA for STA after HW mode change
|
||||
|
|
|
|||
|
|
@ -680,9 +680,6 @@ 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;
|
||||
|
||||
|
|
@ -803,9 +800,6 @@ 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;
|
||||
|
|
@ -1968,69 +1962,6 @@ static inline void wma_mgmt_nbuf_unmap_cb(struct wlan_objmgr_pdev *pdev,
|
|||
int wma_chan_info_event_handler(void *handle, uint8_t *event_buf,
|
||||
uint32_t len);
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static inline
|
||||
void wma_vdev_set_mlme_state_stop(tp_wma_handle wma, uint8_t vdev_id) {}
|
||||
|
||||
static inline
|
||||
void wma_vdev_set_mlme_state_run(tp_wma_handle wma, uint8_t vdev_id) {}
|
||||
#else
|
||||
/**
|
||||
* wma_vdev_set_mlme_state() - Set vdev mlme state
|
||||
* @wma: wma handle
|
||||
* @vdev_id: the Id of the vdev to configure
|
||||
* @state: vdev state
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline
|
||||
void wma_vdev_set_mlme_state(tp_wma_handle wma, uint8_t vdev_id,
|
||||
enum wlan_vdev_state state)
|
||||
{
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
|
||||
if (!wma) {
|
||||
WMA_LOGE("%s: WMA context is invald!", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(wma->psoc, vdev_id,
|
||||
WLAN_LEGACY_WMA_ID);
|
||||
if (vdev) {
|
||||
wlan_vdev_obj_lock(vdev);
|
||||
wlan_vdev_mlme_set_state(vdev, state);
|
||||
wlan_vdev_obj_unlock(vdev);
|
||||
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_WMA_ID);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* wma_vdev_set_mlme_state_stop() - Set vdev mlme state to stop
|
||||
* @wma: wma handle
|
||||
* @vdev_id: the Id of the vdev to configure
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline
|
||||
void wma_vdev_set_mlme_state_stop(tp_wma_handle wma, uint8_t vdev_id)
|
||||
{
|
||||
wma_vdev_set_mlme_state(wma, vdev_id, WLAN_VDEV_S_STOP);
|
||||
}
|
||||
|
||||
/**
|
||||
* wma_vdev_set_mlme_state_run() - Set vdev mlme state to run
|
||||
* @wma: wma handle
|
||||
* @vdev_id: the Id of the vdev to configure
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline
|
||||
void wma_vdev_set_mlme_state_run(tp_wma_handle wma, uint8_t vdev_id)
|
||||
{
|
||||
wma_vdev_set_mlme_state(wma, vdev_id, WLAN_VDEV_S_RUN);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_update_vdev_pause_bitmap() - update vdev pause bitmap
|
||||
* @vdev_id: the Id of the vdev to configure
|
||||
|
|
|
|||
|
|
@ -451,16 +451,6 @@ bool wma_get_hidden_ssid_restart_in_progress(struct wma_txrx_node *iface);
|
|||
*/
|
||||
bool wma_get_channel_switch_in_progress(struct wma_txrx_node *iface);
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static inline
|
||||
void wma_set_hidden_ssid_restart_in_progress(struct wma_txrx_node *iface,
|
||||
int val)
|
||||
{}
|
||||
|
||||
static inline
|
||||
void wma_set_channel_switch_in_progress(struct wma_txrx_node *iface)
|
||||
{}
|
||||
|
||||
/**
|
||||
* wma_sta_mlme_vdev_start_continue - VDEV start response handling
|
||||
* @vdev_mlme_obj: VDEV MLME comp object
|
||||
|
|
@ -589,27 +579,6 @@ QDF_STATUS wma_ap_mlme_vdev_stop_start_send(struct vdev_mlme_obj *vdev_mlme,
|
|||
*/
|
||||
QDF_STATUS wma_sta_mlme_vdev_down_send(struct vdev_mlme_obj *vdev_mlme,
|
||||
uint16_t data_len, void *data);
|
||||
#else
|
||||
/**
|
||||
* wma_set_hidden_ssid_restart_in_progress() - set hidden ssid restart is
|
||||
* in progress
|
||||
* @iface: iface pointer
|
||||
* @val: value to be set
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void wma_set_hidden_ssid_restart_in_progress(struct wma_txrx_node *iface,
|
||||
int val);
|
||||
|
||||
/**
|
||||
* wma_set_channel_switch_in_progress() - set channel switch is in progress
|
||||
* @iface: iface pointer
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void wma_set_channel_switch_in_progress(struct wma_txrx_node *iface);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_WLM_STATS
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1058,7 +1058,6 @@ send_rsp:
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static void wma_send_start_resp(tp_wma_handle wma,
|
||||
tpAddBssParams add_bss,
|
||||
wmi_vdev_start_response_event_fixed_param *
|
||||
|
|
@ -1090,26 +1089,6 @@ static void wma_send_start_resp(tp_wma_handle wma,
|
|||
resp_event->vdev_id, add_bss->status);
|
||||
wma_send_msg_high_priority(wma, WMA_ADD_BSS_RSP, (void *)add_bss, 0);
|
||||
}
|
||||
#else
|
||||
static void wma_send_start_resp(tp_wma_handle wma,
|
||||
tpAddBssParams add_bss,
|
||||
wmi_vdev_start_response_event_fixed_param *
|
||||
resp_event)
|
||||
{
|
||||
/* Send vdev stop if vdev start was success */
|
||||
if (QDF_IS_STATUS_ERROR(add_bss->status)) {
|
||||
if (!resp_event->status)
|
||||
if (wma_send_vdev_stop_to_fw(wma, resp_event->vdev_id))
|
||||
WMA_LOGE(FL("Failed to send vdev stop"));
|
||||
|
||||
wma_remove_peer_on_add_bss_failure(add_bss);
|
||||
}
|
||||
|
||||
WMA_LOGD(FL("Sending add bss rsp to umac(vdev %d status %d)"),
|
||||
resp_event->vdev_id, add_bss->status);
|
||||
wma_send_msg_high_priority(wma, WMA_ADD_BSS_RSP, (void *)add_bss, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_vdev_start_rsp() - send vdev start response to upper layer
|
||||
|
|
@ -1235,7 +1214,6 @@ static void wma_find_mcc_ap(tp_wma_handle wma, uint8_t vdev_id, bool add)
|
|||
}
|
||||
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* wma_handle_hidden_ssid_restart() - handle hidden ssid restart
|
||||
* @wma: wma handle
|
||||
|
|
@ -1339,101 +1317,6 @@ wma_handle_channel_switch_resp(tp_wma_handle wma,
|
|||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#else
|
||||
static void wma_handle_hidden_ssid_restart(tp_wma_handle wma,
|
||||
struct wma_txrx_node *iface,
|
||||
struct wma_target_req *req)
|
||||
{
|
||||
tpHalHiddenSsidVdevRestart hidden_ssid_restart =
|
||||
(tpHalHiddenSsidVdevRestart)req->user_data;
|
||||
WMA_LOGE("%s: vdev restart event recevied for hidden ssid set using IOCTL",
|
||||
__func__);
|
||||
|
||||
wma_set_hidden_ssid_restart_in_progress(iface, 0);
|
||||
wma_send_msg(wma, WMA_HIDDEN_SSID_RESTART_RSP,
|
||||
(void *)hidden_ssid_restart, 0);
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
wma_handle_channel_switch_resp(tp_wma_handle wma,
|
||||
wmi_vdev_start_response_event_fixed_param
|
||||
*resp_event,
|
||||
struct wma_target_req *req)
|
||||
{
|
||||
struct wma_txrx_node *iface;
|
||||
tpSwitchChannelParams params = (tpSwitchChannelParams)req->user_data;
|
||||
|
||||
if (!params) {
|
||||
WMA_LOGE("%s: channel switch params is NULL for vdev %d",
|
||||
__func__, resp_event->vdev_id);
|
||||
policy_mgr_set_do_hw_mode_change_flag(wma->psoc, false);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
iface = &wma->interfaces[resp_event->vdev_id];
|
||||
WMA_LOGD("%s: Send channel switch resp vdev %d status %d",
|
||||
__func__, resp_event->vdev_id, resp_event->status);
|
||||
params->chainMask = resp_event->chain_mask;
|
||||
if ((resp_event->cfgd_rx_streams != 2) ||
|
||||
(resp_event->cfgd_tx_streams != 2))
|
||||
params->nss = 1;
|
||||
|
||||
params->smpsMode = host_map_smps_mode(resp_event->smps_mode);
|
||||
params->status = resp_event->status;
|
||||
|
||||
if (wma->interfaces[resp_event->vdev_id].is_channel_switch)
|
||||
wma->interfaces[resp_event->vdev_id].is_channel_switch = false;
|
||||
|
||||
if ((QDF_IS_STATUS_SUCCESS(resp_event->status) &&
|
||||
(resp_event->resp_type == WMI_VDEV_RESTART_RESP_EVENT) &&
|
||||
((iface->type == WMI_VDEV_TYPE_STA) ||
|
||||
(iface->type == WMI_VDEV_TYPE_MONITOR))) ||
|
||||
((resp_event->resp_type == WMI_VDEV_START_RESP_EVENT) &&
|
||||
(iface->type == WMI_VDEV_TYPE_MONITOR))) {
|
||||
wmi_host_channel_width chanwidth;
|
||||
struct vdev_up_params vdev_up_param = {0};
|
||||
QDF_STATUS status;
|
||||
int err;
|
||||
|
||||
/* for CSA case firmware expects phymode before ch_wd */
|
||||
err = wma_set_peer_param(wma, iface->bssid,
|
||||
WMI_PEER_PHYMODE, iface->chanmode,
|
||||
resp_event->vdev_id);
|
||||
WMA_LOGD("%s:vdev_id %d chanmode %d status %d",
|
||||
__func__, resp_event->vdev_id, iface->chanmode, err);
|
||||
|
||||
chanwidth = wmi_get_ch_width_from_phy_mode(wma->wmi_handle,
|
||||
iface->chanmode);
|
||||
err = wma_set_peer_param(wma, iface->bssid, WMI_PEER_CHWIDTH,
|
||||
chanwidth, resp_event->vdev_id);
|
||||
WMA_LOGD("%s:vdev_id %d chanwidth %d status %d",
|
||||
__func__, resp_event->vdev_id, chanwidth, err);
|
||||
vdev_up_param.vdev_id = resp_event->vdev_id;
|
||||
vdev_up_param.assoc_id = iface->aid;
|
||||
status = wma_send_vdev_up_to_fw(wma,
|
||||
&vdev_up_param, iface->bssid);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
WMA_LOGE("%s:vdev_up failed vdev_id %d",
|
||||
__func__, resp_event->vdev_id);
|
||||
|
||||
wma_vdev_set_mlme_state_stop(wma, resp_event->vdev_id);
|
||||
|
||||
policy_mgr_set_do_hw_mode_change_flag(wma->psoc, false);
|
||||
} else {
|
||||
wma_vdev_set_mlme_state_run(wma, resp_event->vdev_id);
|
||||
if (iface->beacon_filter_enabled)
|
||||
wma_add_beacon_filter(wma,
|
||||
&iface->beacon_filter);
|
||||
}
|
||||
}
|
||||
|
||||
wma_send_msg_high_priority(wma, WMA_SWITCH_CHANNEL_RSP,
|
||||
(void *)params, 0);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_vdev_start_resp_handler() - vdev start response handler
|
||||
|
|
@ -1580,7 +1463,6 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info,
|
|||
wma->psoc, false);
|
||||
return -EEXIST;
|
||||
}
|
||||
wma_vdev_set_mlme_state_run(wma, resp_event->vdev_id);
|
||||
ucfg_ocb_config_channel(wma->pdev);
|
||||
}
|
||||
if ((wma->interfaces[resp_event->vdev_id].type == WMI_VDEV_TYPE_AP) &&
|
||||
|
|
@ -2479,7 +2361,6 @@ void wma_send_del_bss_response(tp_wma_handle wma, struct wma_target_req *req)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
void wma_send_vdev_down(tp_wma_handle wma, struct wma_target_req *req)
|
||||
{
|
||||
uint8_t vdev_id;
|
||||
|
|
@ -2537,51 +2418,6 @@ static void wma_handle_set_link_down_rsp(tp_wma_handle wma,
|
|||
WLAN_VDEV_SM_EV_MLME_DOWN_REQ,
|
||||
sizeof(*req), req);
|
||||
}
|
||||
#else
|
||||
void wma_send_vdev_down(tp_wma_handle wma, struct wma_target_req *req)
|
||||
{
|
||||
uint8_t vdev_id;
|
||||
tpDeleteBssParams params = (tpDeleteBssParams)req->user_data;
|
||||
|
||||
if (!req) {
|
||||
WMA_LOGE("%s req is NULL", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
vdev_id = req->vdev_id;
|
||||
|
||||
if (req->msg_type == WMA_DELETE_BSS_HO_FAIL_REQ) {
|
||||
params->status = QDF_STATUS_SUCCESS;
|
||||
wma_send_msg_high_priority(wma, WMA_DELETE_BSS_HO_FAIL_RSP,
|
||||
(void *)params, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (wma_send_vdev_down_to_fw(wma, vdev_id) != QDF_STATUS_SUCCESS) {
|
||||
WMA_LOGE("Failed to send vdev down cmd: vdev %d", vdev_id);
|
||||
} else {
|
||||
wma_vdev_set_mlme_state_stop(wma, vdev_id);
|
||||
wma_check_and_find_mcc_ap(wma, vdev_id);
|
||||
}
|
||||
|
||||
wma_send_del_bss_response(wma, req);
|
||||
}
|
||||
|
||||
static void wma_send_vdev_down_bss(tp_wma_handle wma,
|
||||
struct wma_target_req *req)
|
||||
{
|
||||
wma_send_vdev_down(wma, req);
|
||||
}
|
||||
|
||||
static void wma_handle_set_link_down_rsp(tp_wma_handle wma,
|
||||
struct wma_target_req *req)
|
||||
{
|
||||
if (wma_send_vdev_down_to_fw(wma, req->vdev_id) != QDF_STATUS_SUCCESS)
|
||||
WMA_LOGE("Failed to send vdev down cmd: vdev %d", req->vdev_id);
|
||||
|
||||
wma_send_set_link_response(wma, req);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11W
|
||||
static void wma_clear_iface_key(struct wma_txrx_node *iface)
|
||||
|
|
@ -2782,7 +2618,6 @@ free_req_msg:
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static QDF_STATUS
|
||||
wma_handle_vdev_stop_rsp(tp_wma_handle wma,
|
||||
wmi_vdev_stopped_event_fixed_param *resp_event)
|
||||
|
|
@ -2794,14 +2629,6 @@ wma_handle_vdev_stop_rsp(tp_wma_handle wma,
|
|||
WLAN_VDEV_SM_EV_STOP_RESP,
|
||||
sizeof(*resp_event), resp_event);
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS
|
||||
wma_handle_vdev_stop_rsp(tp_wma_handle wma,
|
||||
wmi_vdev_stopped_event_fixed_param *resp_event)
|
||||
{
|
||||
return __wma_handle_vdev_stop_rsp(resp_event);
|
||||
}
|
||||
#endif
|
||||
|
||||
int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info,
|
||||
uint32_t len)
|
||||
|
|
@ -3553,14 +3380,7 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||
temp_reg_info_2;
|
||||
}
|
||||
|
||||
if (isRestart) {
|
||||
/*
|
||||
* Marking the VDEV UP STATUS to false
|
||||
* since, VDEV RESTART will do a VDEV DOWN
|
||||
* in the firmware.
|
||||
*/
|
||||
wma_vdev_set_mlme_state_stop(wma, params.vdev_id);
|
||||
} else {
|
||||
if (!isRestart) {
|
||||
WMA_LOGD("%s, vdev_id: %d, unpausing tx_ll_queue at VDEV_START",
|
||||
__func__, params.vdev_id);
|
||||
cdp_fc_vdev_unpause(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
|
|
@ -4040,7 +3860,6 @@ void wma_remove_req(tp_wma_handle wma, uint8_t vdev_id,
|
|||
qdf_mem_free(req_msg);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* wma_handle_channel_switch_req_timeout() - handle channel switch req timeout
|
||||
* @wma: wma handler
|
||||
|
|
@ -4099,51 +3918,6 @@ wma_handle_add_bss_req_timeout(tp_wma_handle wma, struct wma_target_req *req)
|
|||
WLAN_VDEV_SM_EV_DOWN,
|
||||
sizeof(*params), params);
|
||||
}
|
||||
#else
|
||||
static
|
||||
void wma_handle_channel_switch_req_timeout(tp_wma_handle wma,
|
||||
struct wma_target_req *req)
|
||||
{
|
||||
tpSwitchChannelParams params = (tpSwitchChannelParams)req->user_data;
|
||||
|
||||
params->status = QDF_STATUS_E_TIMEOUT;
|
||||
WMA_LOGA("%s: WMA_SWITCH_CHANNEL_REQ timedout", __func__);
|
||||
|
||||
/*
|
||||
* Trigger host crash if the flag is set or if the timeout
|
||||
* is not due to fw down
|
||||
*/
|
||||
if (wma_crash_on_fw_timeout(wma->fw_timeout_crash))
|
||||
wma_trigger_recovery_assert_on_fw_timeout(
|
||||
WMA_CHNL_SWITCH_REQ);
|
||||
|
||||
if (wma->interfaces[req->vdev_id].is_channel_switch)
|
||||
wma->interfaces[req->vdev_id].is_channel_switch = false;
|
||||
|
||||
wma_send_msg_high_priority(wma, WMA_SWITCH_CHANNEL_RSP,
|
||||
(void *)params, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
wma_handle_add_bss_req_timeout(tp_wma_handle wma, struct wma_target_req *req)
|
||||
{
|
||||
tpAddBssParams params = (tpAddBssParams) req->user_data;
|
||||
|
||||
params->status = QDF_STATUS_E_TIMEOUT;
|
||||
WMA_LOGA("%s: WMA_ADD_BSS_REQ timedout", __func__);
|
||||
WMA_LOGD("%s: bssid %pM vdev_id %d", __func__, params->bssId,
|
||||
req->vdev_id);
|
||||
|
||||
if (wma_crash_on_fw_timeout(wma->fw_timeout_crash))
|
||||
wma_trigger_recovery_assert_on_fw_timeout(WMA_ADD_BSS_REQ);
|
||||
|
||||
if (wma_send_vdev_stop_to_fw(wma, req->vdev_id))
|
||||
WMA_LOGE("%s: Failed to send vdev stop to fw", __func__);
|
||||
|
||||
wma_remove_peer_on_add_bss_failure(params);
|
||||
wma_send_msg_high_priority(wma, WMA_ADD_BSS_RSP, (void *)params, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_vdev_resp_timer() - wma response timeout function
|
||||
|
|
@ -4259,7 +4033,6 @@ void wma_vdev_resp_timer(void *data)
|
|||
WMA_LOGE("Failed to send vdev down cmd: vdev %d",
|
||||
tgt_req->vdev_id);
|
||||
} else {
|
||||
wma_vdev_set_mlme_state_stop(wma, tgt_req->vdev_id);
|
||||
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
|
||||
if (mac_ctx->sap.sap_channel_avoidance)
|
||||
wma_find_mcc_ap(wma, tgt_req->vdev_id, false);
|
||||
|
|
@ -4335,8 +4108,6 @@ void wma_vdev_resp_timer(void *data)
|
|||
|
||||
WMA_LOGE("Hidden ssid vdev restart Timed Out; vdev_id: %d, type = %d",
|
||||
tgt_req->vdev_id, tgt_req->type);
|
||||
wma_set_hidden_ssid_restart_in_progress(
|
||||
&wma->interfaces[tgt_req->vdev_id], 0);
|
||||
qdf_mem_free(tgt_req->user_data);
|
||||
}
|
||||
} else if (tgt_req->msg_type == WMA_SET_LINK_STATE) {
|
||||
|
|
@ -5582,41 +5353,6 @@ static void wma_send_bss_color_change_enable(tp_wma_handle wma,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
static inline QDF_STATUS wma_indicate_start_success(tp_wma_handle wma,
|
||||
struct wma_txrx_node *iface,
|
||||
tpAddStaParams params)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS wma_indicate_start_success(tp_wma_handle wma,
|
||||
struct wma_txrx_node *iface,
|
||||
tpAddStaParams params)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
struct vdev_up_params param = {0};
|
||||
|
||||
param.vdev_id = params->smesessionId;
|
||||
param.assoc_id = params->assocId;
|
||||
param.profile_idx = params->mbssid_info.profile_num;
|
||||
param.profile_num = params->mbssid_info.profile_count;
|
||||
qdf_mem_copy(¶m.trans_bssid, ¶ms->mbssid_info.trans_bssid,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
status = wma_send_vdev_up_to_fw(wma, ¶m, params->bssId);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
WMA_LOGE("%s: Failed to send vdev up cmd: vdev %d bssid %pM",
|
||||
__func__, params->smesessionId, params->bssId);
|
||||
policy_mgr_set_do_hw_mode_change_flag(wma->psoc, false);
|
||||
} else {
|
||||
wma_set_vdev_mgmt_rate(wma, params->smesessionId);
|
||||
wma_vdev_set_mlme_state_run(wma, params->smesessionId);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_add_sta_req_sta_mode() - process add sta request in sta mode
|
||||
* @wma: wma handle
|
||||
|
|
@ -5789,7 +5525,6 @@ static void wma_add_sta_req_sta_mode(tp_wma_handle wma, tpAddStaParams params)
|
|||
params->smesessionId);
|
||||
}
|
||||
}
|
||||
wma_indicate_start_success(wma, iface, params);
|
||||
qdf_atomic_set(&iface->bss_status, WMA_BSS_STATUS_STARTED);
|
||||
WMA_LOGD("%s: STA mode (type %d subtype %d) BSS is started",
|
||||
__func__, iface->type, iface->sub_type);
|
||||
|
|
@ -6288,7 +6023,6 @@ void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
qdf_atomic_set(&iface->bss_status, WMA_BSS_STATUS_STOPPED);
|
||||
WMA_LOGD("%s: (type %d subtype %d) BSS is stopped",
|
||||
__func__, iface->type, iface->sub_type);
|
||||
wma_vdev_set_mlme_state_stop(wma, params->smesessionId);
|
||||
params->status = QDF_STATUS_SUCCESS;
|
||||
|
||||
msg = wma_fill_vdev_req(wma, params->smesessionId,
|
||||
|
|
@ -6455,7 +6189,6 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
WMA_LOGD("LFR3:%s: Setting vdev_up to FALSE for session %d",
|
||||
__func__, params->smesessionId);
|
||||
|
||||
wma_vdev_set_mlme_state_stop(wma, params->smesessionId);
|
||||
goto detach_peer;
|
||||
}
|
||||
msg = wma_fill_vdev_req(wma, params->smesessionId, WMA_DELETE_BSS_REQ,
|
||||
|
|
|
|||
|
|
@ -1268,8 +1268,6 @@ int wma_csa_offload_handler(void *handle, uint8_t *event, uint32_t len)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
wma_set_channel_switch_in_progress(&wma->interfaces[vdev_id]);
|
||||
|
||||
wma_send_msg(wma, WMA_CSA_OFFLOAD_EVENT, (void *)csa_offload_event, 0);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3043,7 +3043,6 @@ 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};
|
||||
|
|
@ -3065,54 +3064,6 @@ QDF_STATUS wma_set_ap_vdev_up(tp_wma_handle wma, uint8_t vdev_id)
|
|||
return status;
|
||||
}
|
||||
|
||||
static inline
|
||||
QDF_STATUS wma_ap_vdev_up(tp_wma_handle wma, uint8_t vdev_id)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#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;
|
||||
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_vdev_set_mlme_state_run(wma, vdev_id);
|
||||
wma_set_sap_keepalive(wma, vdev_id);
|
||||
wma_set_vdev_mgmt_rate(wma, vdev_id);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* wma_ap_vdev_up() - wrapper for vdev up req
|
||||
* @wma: wma handle
|
||||
* @vdev_id: vdev id
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline
|
||||
QDF_STATUS wma_ap_vdev_up(tp_wma_handle wma, uint8_t vdev_id)
|
||||
{
|
||||
return wma_set_ap_vdev_up(wma, vdev_id);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_send_beacon() - send beacon template
|
||||
* @wma: wma handle
|
||||
|
|
@ -3168,7 +3119,6 @@ void wma_send_beacon(tp_wma_handle wma, tpSendbeaconParams bcn_info)
|
|||
WMA_LOGE("%s : wma_store_bcn_tmpl Failed", __func__);
|
||||
goto send_rsp;
|
||||
}
|
||||
wma_ap_vdev_up(wma, vdev_id);
|
||||
|
||||
send_rsp:
|
||||
bcn_info->status = status;
|
||||
|
|
@ -3620,7 +3570,6 @@ void wma_hidden_ssid_vdev_restart(tp_wma_handle wma,
|
|||
}
|
||||
|
||||
intr[vdev_id].vdev_restart_params.ssidHidden = pReq->ssidHidden;
|
||||
wma_set_hidden_ssid_restart_in_progress(&intr[vdev_id], 1);
|
||||
WMA_LOGD(FL("hidden ssid set using IOCTL for vdev %d ssid_hidden %d"),
|
||||
vdev_id, pReq->ssidHidden);
|
||||
|
||||
|
|
@ -3632,7 +3581,6 @@ 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);
|
||||
wma_set_hidden_ssid_restart_in_progress(&intr[vdev_id], 0);
|
||||
qdf_mem_free(pReq);
|
||||
return;
|
||||
}
|
||||
|
|
@ -3660,12 +3608,10 @@ void wma_hidden_ssid_vdev_restart(tp_wma_handle wma,
|
|||
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;
|
||||
|
||||
wma_vdev_set_mlme_state_stop(wma, vdev_id);
|
||||
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"));
|
||||
wma_set_hidden_ssid_restart_in_progress(&intr[vdev_id], 0);
|
||||
wma_remove_vdev_req(wma, vdev_id,
|
||||
WMA_TARGET_REQ_TYPE_VDEV_START);
|
||||
qdf_mem_free(pReq);
|
||||
|
|
|
|||
|
|
@ -2648,7 +2648,6 @@ static void wma_roam_update_vdev(tp_wma_handle wma,
|
|||
roam_synch_ind_ptr->bssid.bytes);
|
||||
wma_add_bss(wma, (tpAddBssParams)roam_synch_ind_ptr->add_bss_params);
|
||||
wma_add_sta(wma, add_sta_params);
|
||||
wma_vdev_set_mlme_state_run(wma, vdev_id);
|
||||
qdf_mem_copy(wma->interfaces[vdev_id].bssid,
|
||||
roam_synch_ind_ptr->bssid.bytes, QDF_MAC_ADDR_SIZE);
|
||||
qdf_mem_free(del_bss_params);
|
||||
|
|
@ -3043,7 +3042,6 @@ int wma_roam_synch_frame_event_handler(void *handle, uint8_t *event,
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
/**
|
||||
* __wma_roam_synch_event_handler() - roam synch event handler
|
||||
* @handle: wma handle
|
||||
|
|
@ -3099,15 +3097,6 @@ int wma_roam_synch_event_handler(void *handle, uint8_t *event,
|
|||
wma_debug("Posted EV_ROAM to VDEV SM");
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int wma_roam_synch_event_handler(void *handle, uint8_t *event,
|
||||
uint32_t len)
|
||||
{
|
||||
wma_mlme_roam_synch_event_handler_cb(handle, event, len);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define RSN_CAPS_SHIFT 16
|
||||
/**
|
||||
|
|
@ -3475,8 +3464,6 @@ 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)) {
|
||||
wma_set_channel_switch_in_progress(
|
||||
&wma->interfaces[req.vdev_id]);
|
||||
req.hidden_ssid = intr[vdev_id].vdev_restart_params.ssidHidden;
|
||||
}
|
||||
|
||||
|
|
@ -3516,8 +3503,6 @@ 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);
|
||||
wma_set_channel_switch_in_progress(
|
||||
&wma->interfaces[req.vdev_id]);
|
||||
}
|
||||
|
||||
msg = wma_fill_vdev_req(wma, req.vdev_id, WMA_CHNL_SWITCH_REQ,
|
||||
|
|
|
|||
|
|
@ -4547,7 +4547,6 @@ static void wma_update_roam_offload_flag(tp_wma_handle wma, uint8_t vdev_id,
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS wma_send_vdev_up_to_fw(t_wma_handle *wma,
|
||||
struct vdev_up_params *params,
|
||||
uint8_t bssid[QDF_MAC_ADDR_SIZE])
|
||||
|
|
@ -4567,33 +4566,6 @@ QDF_STATUS wma_send_vdev_up_to_fw(t_wma_handle *wma,
|
|||
|
||||
return status;
|
||||
}
|
||||
#else
|
||||
QDF_STATUS wma_send_vdev_up_to_fw(t_wma_handle *wma,
|
||||
struct vdev_up_params *params,
|
||||
uint8_t bssid[QDF_MAC_ADDR_SIZE])
|
||||
{
|
||||
QDF_STATUS status;
|
||||
struct wma_txrx_node *vdev;
|
||||
|
||||
if (!wma_is_vdev_valid(params->vdev_id)) {
|
||||
WMA_LOGE("%s: Invalid vdev id:%d", __func__, params->vdev_id);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (wma_is_vdev_up(params->vdev_id)) {
|
||||
WMA_LOGD("vdev %d is already up for bssid %pM. Do not send",
|
||||
params->vdev_id, bssid);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
wma_update_roam_offload_flag(wma, params->vdev_id, true);
|
||||
vdev = &wma->interfaces[params->vdev_id];
|
||||
|
||||
status = wmi_unified_vdev_up_send(wma->wmi_handle, bssid, params);
|
||||
wma_release_wakelock(&vdev->vdev_start_wakelock);
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS wma_send_vdev_down_to_fw(t_wma_handle *wma, uint8_t vdev_id)
|
||||
{
|
||||
|
|
@ -4863,7 +4835,6 @@ void wma_remove_peer_on_add_bss_failure(tpAddBssParams add_bss_params)
|
|||
peer, false);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VDEV_SM
|
||||
QDF_STATUS wma_sta_vdev_up_send(struct vdev_mlme_obj *vdev_mlme,
|
||||
uint16_t data_len, void *data)
|
||||
{
|
||||
|
|
@ -5063,45 +5034,6 @@ QDF_STATUS wma_ap_mlme_vdev_stop_start_send(struct vdev_mlme_obj *vdev_mlme,
|
|||
|
||||
return wma_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;
|
||||
}
|
||||
|
||||
void wma_set_hidden_ssid_restart_in_progress(struct wma_txrx_node *iface,
|
||||
int val)
|
||||
{
|
||||
if (!iface)
|
||||
return;
|
||||
|
||||
qdf_atomic_set(
|
||||
&iface->vdev_restart_params.hidden_ssid_restart_in_progress, val);
|
||||
}
|
||||
|
||||
bool wma_get_channel_switch_in_progress(struct wma_txrx_node *iface)
|
||||
{
|
||||
if (!iface)
|
||||
return false;
|
||||
|
||||
return iface->is_channel_switch;
|
||||
}
|
||||
|
||||
void wma_set_channel_switch_in_progress(struct wma_txrx_node *iface)
|
||||
{
|
||||
if (!iface)
|
||||
return;
|
||||
|
||||
iface->is_channel_switch = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_WLM_STATS
|
||||
int wma_wlm_stats_req(int vdev_id, uint32_t bitmask, uint32_t max_size,
|
||||
|
|
|
|||
Loading…
Reference in a new issue