qcacld-3.0: Add vdev state machine for CSA and radar

Add vdev state machine for Channel change and to handle
radar indication.

Change-Id: Ib5a5476510ffe55611325c98dd9779261c7bd9a3
CRs-Fixed: 2316574
This commit is contained in:
Abhishek Singh
2018-09-12 15:50:44 +05:30
committed by nshrivas
szülő 8371240214
commit 58869c5582
2 fájl változott, egészen pontosan 95 új sor hozzáadva és 9 régi sor törölve

Fájl megtekintése

@@ -23,8 +23,20 @@
#define _WLAN_MLME_VDEV_MGR_INT_API_H_
#ifdef CONFIG_VDEV_SM
#include <wlan_objmgr_vdev_obj.h>
#include "include/wlan_vdev_mlme.h"
/**
* struct mlme_legacy_priv - VDEV MLME legacy priv object
* @chan_switch_in_progress: flag to indicate that channel switch is in progress
* @hidden_ssid_restart_in_progress: flag to indicate hidden ssid restart is
* in progress
*/
struct mlme_legacy_priv {
bool chan_switch_in_progress;
bool hidden_ssid_restart_in_progress;
};
/**
* mlme_register_vdev_mgr_ops() - Register vdev mgr ops
* @vdev_mlme: vdev mlme object
@@ -43,5 +55,24 @@ QDF_STATUS mlme_register_vdev_mgr_ops(void *mlme);
* Return: QDF_STATUS
*/
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
* @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,
bool val);
/**
* ap_mlme_get_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);
#endif
#endif

Fájl megtekintése

@@ -18,7 +18,6 @@
/**
* DOC: define internal APIs related to the mlme component
*/
#include <wlan_objmgr_vdev_obj.h>
#include "wlan_mlme_main.h"
#include "wlan_mlme_vdev_mgr_interface.h"
#include "lim_utils.h"
@@ -460,20 +459,19 @@ static QDF_STATUS ap_mlme_vdev_start_req_failed(struct vdev_mlme_obj *vdev_mlme,
}
/**
* sap_mlme_vdev_restart_send() a callback to send vdev restart
* ap_mlme_vdev_restart_send() a callback to send vdev restart
* @vdev_mlme: vdev mlme object
* @event_data_len: event data length
* @event_data: event data
* @data_len: event data length
* @data: event data
*
* This function is called to initiate and send vdev restart req
*
* Return: QDF_STATUS
*/
static QDF_STATUS ap_mlme_vdev_restart_send(struct vdev_mlme_obj *vdev_mlme,
uint16_t event_data_len,
void *event_data)
uint16_t data_len, void *data)
{
return QDF_STATUS_SUCCESS;
return lim_ap_mlme_vdev_restart_send(vdev_mlme, data_len, data);
}
static QDF_STATUS ap_mlme_vdev_stop_start_send(struct vdev_mlme_obj *vdev_mlme,
@@ -484,15 +482,72 @@ static QDF_STATUS ap_mlme_vdev_stop_start_send(struct vdev_mlme_obj *vdev_mlme,
return QDF_STATUS_SUCCESS;
}
static
QDF_STATUS ap_mlme_vdev_legacy_hdl_create(struct vdev_mlme_obj *vdev_mlme)
QDF_STATUS ap_mlme_set_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev,
bool val)
{
struct vdev_mlme_obj *vdev_mlme;
struct mlme_legacy_priv *mlme_priv;
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
if (!vdev_mlme) {
mlme_err("vdev component object is NULL");
return QDF_STATUS_E_FAILURE;
}
mlme_priv = (struct mlme_legacy_priv *)vdev_mlme->legacy_vdev_ptr;
mlme_priv->chan_switch_in_progress = val;
return QDF_STATUS_SUCCESS;
}
bool ap_mlme_get_chan_switch_in_progress(struct wlan_objmgr_vdev *vdev)
{
struct vdev_mlme_obj *vdev_mlme;
struct mlme_legacy_priv *mlme_priv;
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
if (!vdev_mlme) {
mlme_err("vdev component object is NULL");
return false;
}
mlme_priv = (struct mlme_legacy_priv *)vdev_mlme->legacy_vdev_ptr;
return mlme_priv->chan_switch_in_progress;
}
/**
* ap_mlme_vdev_legacy_hdl_create () - Create sap 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)
{
vdev_mlme->legacy_vdev_ptr =
qdf_mem_malloc(sizeof(struct mlme_legacy_priv));
if (!vdev_mlme->legacy_vdev_ptr) {
mlme_err("failed to allocate meory for legacy_vdev_ptr");
return QDF_STATUS_E_NOMEM;
}
return QDF_STATUS_SUCCESS;
}
/**
* ap_mlme_vdev_legacy_hdl_destroy () - Destroy sap 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_mem_free(vdev_mlme->legacy_vdev_ptr);
vdev_mlme->legacy_vdev_ptr = NULL;
return QDF_STATUS_SUCCESS;
}