qcacld-3.0: Move NAN cfg params init to PSOC open

NAN config param initialization from CFG component is done
during PSOC object created notification. But as per component
design it must be done at psoc open to avoid CFG component
not initialized case. Thus update nan component to reorganize
NAN cfg params init.

Change-Id: I9636b527b796202e55a57c28d604795a705de026
CRs-fixed: 2489286
This commit is contained in:
Manikandan Mohan 2019-07-12 14:55:17 -07:00 committed by nshrivas
parent 2fa572f8ff
commit 4e66c9a73a
4 changed files with 96 additions and 50 deletions

View File

@ -29,54 +29,6 @@
#include "wlan_objmgr_psoc_obj.h"
#include "wlan_objmgr_pdev_obj.h"
#include "wlan_objmgr_vdev_obj.h"
#include "cfg_nan.h"
#include "cfg_ucfg_api.h"
#ifdef WLAN_FEATURE_NAN
/**
* nan_cfg_init() - Initialize NAN config params
* @psoc: Pointer to PSOC Object
* @nan_obj: Pointer to NAN private object
*
* This function initialize NAN config params
*/
static void nan_cfg_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
if (!psoc || !nan_obj)
return;
nan_obj->cfg_param.enable = cfg_get(psoc, CFG_NAN_ENABLE);
}
/**
* nan_cfg_dp_init() - Initialize NAN Datapath config params
* @psoc: Pointer to PSOC Object
* @nan_obj: Pointer to NAN private object
*
* This function initialize NAN config params
*/
static void nan_cfg_dp_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
if (!psoc || !nan_obj)
return;
nan_obj->cfg_param.dp_enable = cfg_get(psoc,
CFG_NAN_DATAPATH_ENABLE);
nan_obj->cfg_param.ndi_mac_randomize =
cfg_get(psoc, CFG_NAN_RANDOMIZE_NDI_MAC);
}
#else
static void nan_cfg_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
}
static void nan_cfg_dp_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
}
#endif
static QDF_STATUS nan_psoc_obj_created_notification(
struct wlan_objmgr_psoc *psoc, void *arg_list)
@ -100,8 +52,6 @@ static QDF_STATUS nan_psoc_obj_created_notification(
goto nan_psoc_notif_failed;
}
nan_cfg_init(psoc, nan_obj);
nan_cfg_dp_init(psoc, nan_obj);
target_if_nan_register_tx_ops(&nan_obj->tx_ops);
target_if_nan_register_rx_ops(&nan_obj->rx_ops);

View File

@ -37,6 +37,22 @@
QDF_STATUS ucfg_nan_set_ndi_state(struct wlan_objmgr_vdev *vdev,
uint32_t state);
/**
* ucfg_nan_psoc_open: Setup NAN priv object params on PSOC open
* @psoc: Pointer to PSOC object
*
* Return: QDF Status of operation
*/
QDF_STATUS ucfg_nan_psoc_open(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_nan_psoc_close: Clean up NAN priv data on PSOC close
* @psoc: Pointer to PSOC object
*
* Return: None
*/
void ucfg_nan_psoc_close(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_nan_get_ndi_state: get ndi state from vdev obj
* @vdev: pointer to vdev object
@ -321,5 +337,15 @@ ucfg_nan_check_and_disable_unsupported_ndi(struct wlan_objmgr_psoc *psoc)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS ucfg_nan_psoc_open(struct wlan_objmgr_psoc *psoc)
{
return QDF_STATUS_SUCCESS;
}
static inline void ucfg_nan_psoc_close(struct wlan_objmgr_psoc *psoc)
{
}
#endif /* WLAN_FEATURE_NAN */
#endif /* _NAN_UCFG_API_H_ */

View File

@ -30,10 +30,73 @@
#include "wlan_objmgr_vdev_obj.h"
#include "wlan_osif_request_manager.h"
#include "wlan_policy_mgr_api.h"
#include "cfg_ucfg_api.h"
#include "cfg_nan.h"
struct wlan_objmgr_psoc;
struct wlan_objmgr_vdev;
#ifdef WLAN_FEATURE_NAN
/**
* nan_cfg_init() - Initialize NAN config params
* @psoc: Pointer to PSOC Object
* @nan_obj: Pointer to NAN private object
*
* This function initialize NAN config params
*/
static void nan_cfg_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
nan_obj->cfg_param.enable = cfg_get(psoc, CFG_NAN_ENABLE);
}
/**
* nan_cfg_dp_init() - Initialize NAN Datapath config params
* @psoc: Pointer to PSOC Object
* @nan_obj: Pointer to NAN private object
*
* This function initialize NAN config params
*/
static void nan_cfg_dp_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
nan_obj->cfg_param.dp_enable = cfg_get(psoc,
CFG_NAN_DATAPATH_ENABLE);
nan_obj->cfg_param.ndi_mac_randomize =
cfg_get(psoc, CFG_NAN_RANDOMIZE_NDI_MAC);
}
#else
static void nan_cfg_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
}
static void nan_cfg_dp_init(struct wlan_objmgr_psoc *psoc,
struct nan_psoc_priv_obj *nan_obj)
{
}
#endif
QDF_STATUS ucfg_nan_psoc_open(struct wlan_objmgr_psoc *psoc)
{
struct nan_psoc_priv_obj *nan_obj = nan_get_psoc_priv_obj(psoc);
if (!nan_obj) {
nan_err("nan psoc priv object is NULL");
return QDF_STATUS_E_NULL_VALUE;
}
nan_cfg_init(psoc, nan_obj);
nan_cfg_dp_init(psoc, nan_obj);
return QDF_STATUS_SUCCESS;
}
void ucfg_nan_psoc_close(struct wlan_objmgr_psoc *psoc)
{
/* No cleanup required on psoc close for NAN */
}
inline QDF_STATUS ucfg_nan_set_ndi_state(struct wlan_objmgr_vdev *vdev,
uint32_t state)
{

View File

@ -172,6 +172,7 @@
#include <wlan_hdd_debugfs_coex.h>
#include "wlan_blm_ucfg_api.h"
#include "ol_txrx.h"
#include "nan_ucfg_api.h"
#ifdef MODULE
#define WLAN_MODULE_NAME module_name(THIS_MODULE)
@ -13661,8 +13662,14 @@ QDF_STATUS hdd_component_psoc_open(struct wlan_objmgr_psoc *psoc)
if (QDF_IS_STATUS_ERROR(status))
goto err_tdls;
status = ucfg_nan_psoc_open(psoc);
if (QDF_IS_STATUS_ERROR(status))
goto err_nan;
return status;
err_nan:
ucfg_nan_psoc_close(psoc);
err_tdls:
ucfg_tdls_psoc_close(psoc);
err_p2p: