qcacld-3.0: Move pre cac success code to pre cac component

Move pre cac success code to pre cac component.

Change-Id: I9d4f6c52ada96905e185fecef6556c59e05ab284
CRs-Fixed: 3199947
This commit is contained in:
Dundi Raviteja
2022-05-22 13:17:11 +05:30
committed by Madan Koyyalamudi
parent 8ed92a56e6
commit 2bbdc1835e
19 changed files with 933 additions and 69 deletions

View File

@@ -28,6 +28,150 @@
struct pre_cac_ops *glbl_pre_cac_ops;
void pre_cac_set_freq(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
struct pre_cac_vdev_priv *vdev_priv;
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return;
vdev_priv->pre_cac_freq = freq;
}
qdf_freq_t pre_cac_get_freq(struct wlan_objmgr_vdev *vdev)
{
struct pre_cac_vdev_priv *vdev_priv;
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return 0;
return vdev_priv->pre_cac_freq;
}
void pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
struct pre_cac_vdev_priv *vdev_priv;
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return;
vdev_priv->freq_before_pre_cac = freq;
}
qdf_freq_t pre_cac_get_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev)
{
struct pre_cac_vdev_priv *vdev_priv;
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return 0;
return vdev_priv->freq_before_pre_cac;
}
void pre_cac_adapter_set(struct wlan_objmgr_vdev *vdev,
bool status)
{
struct pre_cac_vdev_priv *vdev_priv;
if (!vdev) {
pre_cac_debug("vdev is NULL");
return;
}
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return;
vdev_priv->is_pre_cac_adapter = status;
}
bool pre_cac_adapter_is_active(struct wlan_objmgr_vdev *vdev)
{
struct pre_cac_vdev_priv *vdev_priv;
if (!vdev) {
pre_cac_debug("vdev is NULL");
return false;
}
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return false;
return vdev_priv->is_pre_cac_adapter;
}
void pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status)
{
struct pre_cac_vdev_priv *vdev_priv;
if (!vdev) {
pre_cac_debug("vdev is NULL");
return;
}
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return;
vdev_priv->pre_cac_complete = status;
}
bool pre_cac_complete_get(struct wlan_objmgr_vdev *vdev)
{
struct pre_cac_vdev_priv *vdev_priv;
vdev_priv = pre_cac_vdev_get_priv(vdev);
if (!vdev_priv)
return false;
return vdev_priv->pre_cac_complete;
}
static void pre_cac_complete(struct wlan_objmgr_vdev *vdev,
QDF_STATUS status)
{
if (glbl_pre_cac_ops &&
glbl_pre_cac_ops->pre_cac_complete_cb)
glbl_pre_cac_ops->pre_cac_complete_cb(vdev, status);
}
static void pre_cac_handle_success(void *data)
{
struct wlan_objmgr_vdev *vdev = (struct wlan_objmgr_vdev *)data;
pre_cac_complete(vdev, QDF_STATUS_SUCCESS);
}
static void pre_cac_conditional_csa_ind(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, bool status)
{
if (glbl_pre_cac_ops &&
glbl_pre_cac_ops->pre_cac_conditional_csa_ind_cb)
glbl_pre_cac_ops->pre_cac_conditional_csa_ind_cb(psoc,
vdev_id, status);
}
void pre_cac_handle_cac_end(struct wlan_objmgr_vdev *vdev)
{
struct wlan_objmgr_psoc *psoc = wlan_vdev_get_psoc(vdev);
struct pre_cac_psoc_priv *psoc_priv = pre_cac_psoc_get_priv(psoc);
pre_cac_conditional_csa_ind(psoc, vdev->vdev_objmgr.vdev_id, true);
qdf_create_work(0, &psoc_priv->pre_cac_work,
pre_cac_handle_success,
vdev);
qdf_sched_work(0, &psoc_priv->pre_cac_work);
}
static void pre_cac_get_vdev_id_handler(struct wlan_objmgr_psoc *psoc,
void *obj, void *args)
{

View File

@@ -61,9 +61,17 @@
/**
* struct pre_cac_vdev_priv - Private object to be stored in vdev
* @is_pre_cac_on: status of pre_cac
* @pre_cac_complete: pre cac complete status
* @is_pre_cac_adapter: pre cac adapter status
* @freq_before_pre_cac: frequency before pre cac
* @pre_cac_freq: pre cac frequency
*/
struct pre_cac_vdev_priv {
bool is_pre_cac_on;
bool pre_cac_complete;
bool is_pre_cac_adapter;
qdf_freq_t freq_before_pre_cac;
qdf_freq_t pre_cac_freq;
};
/**
@@ -225,4 +233,84 @@ QDF_STATUS pre_cac_set_status(struct wlan_objmgr_vdev *vdev, bool status);
*/
void pre_cac_get_vdev_id(struct wlan_objmgr_psoc *psoc,
uint8_t *vdev_id);
/**
* pre_cac_handle_cac_end() - Handle pre cac end
* @vdev: vdev object manager
*
* Return: None
*/
void pre_cac_handle_cac_end(struct wlan_objmgr_vdev *vdev);
/**
* pre_cac_complete_set() - Set pre cac complete status
* @vdev: vdev object manager
* @status: status
*
* Return: None
*/
void pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status);
/**
* pre_cac_complete_get() - Get pre cac complete status
* @vdev: vdev object manager
*
* Return: pre cac complete status
*/
bool pre_cac_complete_get(struct wlan_objmgr_vdev *vdev);
/**
* pre_cac_adapter_set() - Set pre cac adapter flag
* @vdev: vdev object manager
* @status: status
*
* Return: None
*/
void pre_cac_adapter_set(struct wlan_objmgr_vdev *vdev,
bool status);
/**
* pre_cac_adapter_is_active() - Get pre cac adapter status
* @vdev: vdev object manager
*
* Return: pre cac adapter status
*/
bool pre_cac_adapter_is_active(struct wlan_objmgr_vdev *vdev);
/**
* pre_cac_set_freq_before_pre_cac() - Set frequency before pre cac
* @vdev: vdev object manager
* @freq: frequency before pre cac
*
* Return: None
*/
void pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq);
/**
* pre_cac_get_freq_before_pre_cac() - Get frequency before pre cac
* @vdev: vdev object manager
*
* Return: frequency before pre cac
*/
qdf_freq_t pre_cac_get_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev);
/**
* pre_cac_set_freq() - Set pre cac frequency
* @vdev: vdev object manager
* @freq: pre cac frequency
*
* Return: None
*/
void pre_cac_set_freq(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq);
/**
* pre_cac_get_freq() - Get pre cac frequency
* @vdev: vdev object manager
*
* Return: pre cac frequency
*/
qdf_freq_t pre_cac_get_freq(struct wlan_objmgr_vdev *vdev);
#endif /* end of _WLAN_PRE_CAC_MAIN_H_ */

View File

@@ -40,6 +40,51 @@ bool wlan_pre_cac_get_status(struct wlan_objmgr_psoc *psoc);
* Return: QDF_STATUS
*/
QDF_STATUS wlan_pre_cac_set_status(struct wlan_objmgr_vdev *vdev, bool status);
/**
* wlan_pre_cac_handle_cac_end() - Handle pre cac end
* @vdev: vdev object manager
*
* Return: None
*/
void wlan_pre_cac_handle_cac_end(struct wlan_objmgr_vdev *vdev);
/**
* wlan_pre_cac_complete_set() - Set pre cac complete status
* @vdev: vdev object manager
* @status: status
*
* Return: None
*/
void wlan_pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status);
/**
* wlan_pre_cac_complete_get() - Get pre cac complete status
* @vdev: vdev object manager
*
* Return: pre cac complete status
*/
bool wlan_pre_cac_complete_get(struct wlan_objmgr_vdev *vdev);
/**
* pre_cac_set_freq_before_pre_cac() - Set frequency before pre cac
* @vdev: vdev object manager
* @freq: frequency
*
* Return: None
*/
void wlan_pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq);
/**
* pre_cac_get_freq_before_pre_cac() - Get frequency before pre cac
* @vdev: vdev object manager
*
* Return: Frequency before pre cac
*/
qdf_freq_t
wlan_pre_cac_get_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev);
#else
static inline bool wlan_pre_cac_get_status(struct wlan_objmgr_psoc *psoc)
{
@@ -51,5 +96,34 @@ wlan_pre_cac_set_status(struct wlan_objmgr_vdev *vdev, bool status)
{
return false;
}
static inline void
wlan_pre_cac_handle_cac_end(struct wlan_objmgr_vdev *vdev)
{
}
static inline void
wlan_pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status)
{
}
static inline bool
wlan_pre_cac_complete_get(struct wlan_objmgr_vdev *vdev)
{
return false;
}
static inline void
wlan_pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
}
static inline qdf_freq_t
wlan_pre_cac_get_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev)
{
return 0;
}
#endif /* PRE_CAC_SUPPORT */
#endif /* _WLAN_PRE_CAC_API_H_ */

View File

@@ -17,10 +17,19 @@
#ifndef _WLAN_PRE_CAC_PUBLIC_STRUCT_H_
#define _WLAN_PRE_CAC_PUBLIC_STRUCT_H_
#include "wlan_objmgr_psoc_obj.h"
/**
* pre_cac_ops: pre cac osif callbacks
* @pre_cac_send_conditional_freq_switch_status: send conditional frequency
* switch status
* @pre_cac_complete_cb: Pre cac complete callback
*/
struct pre_cac_ops {
void (*pre_cac_conditional_csa_ind_cb)(
struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
bool status);
void (*pre_cac_complete_cb)(struct wlan_objmgr_vdev *vdev,
QDF_STATUS status);
};
#endif /* _WLAN_PRE_CAC_PUBLIC_STRUCT_H_ */

View File

@@ -106,6 +106,70 @@ ucfg_pre_cac_set_status(struct wlan_objmgr_vdev *vdev, bool status)
*/
void ucfg_pre_cac_get_vdev_id(struct wlan_objmgr_psoc *psoc,
uint8_t *vdev_id);
/**
* ucfg_pre_cac_adapter_set() - Set pre cac adapter flag
* @vdev: vdev object manager
* @status: status
*
* Return: None
*/
void ucfg_pre_cac_adapter_set(struct wlan_objmgr_vdev *vdev,
bool status);
/**
* ucfg_pre_cac_adapter_is_active() - Get pre cac adapter status
* @vdev: vdev object manager
*
* Return: pre cac complete status
*/
bool ucfg_pre_cac_adapter_is_active(struct wlan_objmgr_vdev *vdev);
#if defined(FEATURE_SAP_COND_CHAN_SWITCH)
/**
* pre_cac_set_freq_before_pre_cac() - Set frequency before pre cac
* @vdev: vdev object manager
* @freq: frequency
*
* Return: None
*/
void ucfg_pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq);
#else
static inline void
ucfg_pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
}
#endif
/**
* ucfg_pre_cac_set_freq() - Set pre cac frequency
* @vdev: vdev object manager
* @freq: pre cac frequency
*
* Return: None
*/
void ucfg_pre_cac_set_freq(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq);
/**
* ucfg_pre_cac_get_freq() - Get pre cac frequency
* @vdev: vdev object manager
*
* Return: pre cac frequency
*/
qdf_freq_t ucfg_pre_cac_get_freq(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_pre_cac_complete_set() - Set pre cac complete status
* @vdev: vdev object manager
* @status: status
*
* Return: None
*/
void ucfg_pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status);
#else
static inline
QDF_STATUS ucfg_pre_cac_init(void)
@@ -148,5 +212,23 @@ ucfg_pre_cac_get_vdev_id(struct wlan_objmgr_psoc *psoc,
uint8_t *vdev_id)
{
}
static inline void
ucfg_pre_cac_set_freq(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
}
static inline qdf_freq_t
ucfg_pre_cac_get_freq(struct wlan_objmgr_vdev *vdev)
{
return 0;
}
static inline void
ucfg_pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status)
{
}
#endif /* PRE_CAC_SUPPORT */
#endif /* _WLAN_PRE_CAC_UCFG_API_H_ */

View File

@@ -30,3 +30,31 @@ QDF_STATUS wlan_pre_cac_set_status(struct wlan_objmgr_vdev *vdev, bool status)
{
return pre_cac_set_status(vdev, status);
}
void wlan_pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
pre_cac_set_freq_before_pre_cac(vdev, freq);
}
qdf_freq_t wlan_pre_cac_get_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev)
{
return pre_cac_get_freq_before_pre_cac(vdev);
}
void wlan_pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status)
{
pre_cac_complete_set(vdev, status);
}
bool wlan_pre_cac_complete_get(struct wlan_objmgr_vdev *vdev)
{
return pre_cac_complete_get(vdev);
}
void wlan_pre_cac_handle_cac_end(struct wlan_objmgr_vdev *vdev)
{
pre_cac_handle_cac_end(vdev);
}

View File

@@ -21,6 +21,40 @@
#include "../../core/src/wlan_pre_cac_main.h"
#include "wlan_pre_cac_ucfg_api.h"
void ucfg_pre_cac_complete_set(struct wlan_objmgr_vdev *vdev,
bool status)
{
pre_cac_complete_set(vdev, status);
}
void ucfg_pre_cac_set_freq(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
pre_cac_set_freq(vdev, freq);
}
qdf_freq_t ucfg_pre_cac_get_freq(struct wlan_objmgr_vdev *vdev)
{
return pre_cac_get_freq(vdev);
}
void ucfg_pre_cac_set_freq_before_pre_cac(struct wlan_objmgr_vdev *vdev,
qdf_freq_t freq)
{
return pre_cac_set_freq_before_pre_cac(vdev, freq);
}
void ucfg_pre_cac_adapter_set(struct wlan_objmgr_vdev *vdev,
bool status)
{
pre_cac_adapter_set(vdev, status);
}
bool ucfg_pre_cac_adapter_is_active(struct wlan_objmgr_vdev *vdev)
{
return pre_cac_adapter_is_active(vdev);
}
void ucfg_pre_cac_get_vdev_id(struct wlan_objmgr_psoc *psoc,
uint8_t *vdev_id)
{
@@ -35,10 +69,12 @@ int ucfg_pre_cac_validate_and_get_freq(struct wlan_objmgr_pdev *pdev,
pre_cac_chan_freq);
}
#if defined(FEATURE_SAP_COND_CHAN_SWITCH)
QDF_STATUS ucfg_pre_cac_set_status(struct wlan_objmgr_vdev *vdev, bool status)
{
return pre_cac_set_status(vdev, status);
}
#endif
bool ucfg_pre_cac_is_active(struct wlan_objmgr_psoc *psoc)
{