qcacld-3.0: Add ini support to configure max ndp sessions in fw
Introduce INI "ndp_max_sessions" to configure max number of ndp sessions host supports. Firmware advertises max number of ndp sessions supported in wmi_service_ready_ext2 event. If the firmware advertises non-zero value of max ndp sessions then host configures max ndp sessions support in firmware using WMI_INIT_CMD. Host uses a minimum of "ndp_max_sessions" value and firmware advertised max ndp session value to configure max number of ndp sessions in firmware. Change-Id: I613815f384f9b0a61711324c85ecfa095d133360 CRs-Fixed: 2673120
This commit is contained in:

committed by
nshrivas

parent
17f0046990
commit
a6afc073d0
@@ -83,6 +83,7 @@ enum nan_disc_state {
|
|||||||
* wait to kickout peer if peer is not reachable
|
* wait to kickout peer if peer is not reachable
|
||||||
* @support_mp0_discovery: To support discovery of NAN cluster with Master
|
* @support_mp0_discovery: To support discovery of NAN cluster with Master
|
||||||
* Preference (MP) as 0 when a new device is enabling NAN
|
* Preference (MP) as 0 when a new device is enabling NAN
|
||||||
|
* @max_ndp_sessions: max ndp sessions host supports
|
||||||
*/
|
*/
|
||||||
struct nan_cfg_params {
|
struct nan_cfg_params {
|
||||||
bool enable;
|
bool enable;
|
||||||
@@ -92,6 +93,7 @@ struct nan_cfg_params {
|
|||||||
bool nan_separate_iface_support;
|
bool nan_separate_iface_support;
|
||||||
uint16_t ndp_keep_alive_period;
|
uint16_t ndp_keep_alive_period;
|
||||||
bool support_mp0_discovery;
|
bool support_mp0_discovery;
|
||||||
|
uint32_t max_ndp_sessions;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -168,6 +168,32 @@
|
|||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"Keep alive timeout of a peer")
|
"Keep alive timeout of a peer")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* ndp_max_sessions - To configure max ndp sessions
|
||||||
|
* supported by host.
|
||||||
|
*
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 8
|
||||||
|
* @Default: 8
|
||||||
|
*
|
||||||
|
* Related: None
|
||||||
|
*
|
||||||
|
* Supported Feature: NAN
|
||||||
|
*
|
||||||
|
* Usage: Internal
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define CFG_NDP_MAX_SESSIONS CFG_INI_UINT( \
|
||||||
|
"ndp_max_sessions", \
|
||||||
|
1, \
|
||||||
|
8, \
|
||||||
|
8, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"max ndp sessions host supports")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* gSupportMp0Discovery - To support discovery of NAN cluster with
|
* gSupportMp0Discovery - To support discovery of NAN cluster with
|
||||||
@@ -204,6 +230,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CFG_NAN_ALL CFG_NAN_DISC \
|
#define CFG_NAN_ALL CFG_NAN_DISC \
|
||||||
CFG_NAN_DP
|
CFG_NAN_DP \
|
||||||
|
CFG(CFG_NDP_MAX_SESSIONS)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -74,6 +74,16 @@ QDF_STATUS cfg_nan_get_ndp_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
|
|||||||
QDF_STATUS cfg_nan_get_ndp_keepalive_period(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS cfg_nan_get_ndp_keepalive_period(struct wlan_objmgr_psoc *psoc,
|
||||||
uint16_t *val);
|
uint16_t *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_nan_get_ndp_max_sessions() - get NDP max sessions host supports
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to hold max ndp sessions
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS
|
||||||
|
*/
|
||||||
|
QDF_STATUS cfg_nan_get_ndp_max_sessions(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cfg_nan_get_support_mp0_discovery() - get value of config support mp0
|
* cfg_nan_get_support_mp0_discovery() - get value of config support mp0
|
||||||
* discovery
|
* discovery
|
||||||
@@ -127,6 +137,13 @@ QDF_STATUS cfg_nan_get_ndp_keepalive_period(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
QDF_STATUS cfg_nan_get_ndp_max_sessions(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static inline bool cfg_nan_get_support_mp0_discovery(
|
static inline bool cfg_nan_get_support_mp0_discovery(
|
||||||
struct wlan_objmgr_psoc *psoc)
|
struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
|
@@ -24,6 +24,8 @@
|
|||||||
#include "cfg_nan_api.h"
|
#include "cfg_nan_api.h"
|
||||||
#include "../../core/src/nan_main_i.h"
|
#include "../../core/src/nan_main_i.h"
|
||||||
#include "wlan_mlme_ucfg_api.h"
|
#include "wlan_mlme_ucfg_api.h"
|
||||||
|
#include "cfg_ucfg_api.h"
|
||||||
|
#include "cfg_nan.h"
|
||||||
|
|
||||||
static inline struct nan_psoc_priv_obj
|
static inline struct nan_psoc_priv_obj
|
||||||
*cfg_nan_get_priv_obj(struct wlan_objmgr_psoc *psoc)
|
*cfg_nan_get_priv_obj(struct wlan_objmgr_psoc *psoc)
|
||||||
@@ -96,6 +98,21 @@ QDF_STATUS cfg_nan_get_ndp_keepalive_period(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS cfg_nan_get_ndp_max_sessions(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val)
|
||||||
|
{
|
||||||
|
struct nan_psoc_priv_obj *nan_obj = cfg_nan_get_priv_obj(psoc);
|
||||||
|
|
||||||
|
if (!nan_obj) {
|
||||||
|
nan_err("NAN obj null");
|
||||||
|
*val = cfg_default(CFG_NDP_MAX_SESSIONS);
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = nan_obj->cfg_param.max_ndp_sessions;
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
bool cfg_nan_get_support_mp0_discovery(struct wlan_objmgr_psoc *psoc)
|
bool cfg_nan_get_support_mp0_discovery(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
struct nan_psoc_priv_obj *nan_obj = cfg_nan_get_priv_obj(psoc);
|
struct nan_psoc_priv_obj *nan_obj = cfg_nan_get_priv_obj(psoc);
|
||||||
|
@@ -54,6 +54,8 @@ static void nan_cfg_init(struct wlan_objmgr_psoc *psoc,
|
|||||||
nan_obj->cfg_param.ndp_keep_alive_period =
|
nan_obj->cfg_param.ndp_keep_alive_period =
|
||||||
cfg_get(psoc,
|
cfg_get(psoc,
|
||||||
CFG_NDP_KEEP_ALIVE_PERIOD);
|
CFG_NDP_KEEP_ALIVE_PERIOD);
|
||||||
|
nan_obj->cfg_param.max_ndp_sessions = cfg_get(psoc,
|
||||||
|
CFG_NDP_MAX_SESSIONS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -347,6 +347,9 @@ static void wma_set_default_tgt_config(tp_wma_handle wma_handle,
|
|||||||
if (cds_get_conparam() == QDF_GLOBAL_MONITOR_MODE)
|
if (cds_get_conparam() == QDF_GLOBAL_MONITOR_MODE)
|
||||||
tgt_cfg->rx_decap_mode = CFG_TGT_RX_DECAP_MODE_RAW;
|
tgt_cfg->rx_decap_mode = CFG_TGT_RX_DECAP_MODE_RAW;
|
||||||
|
|
||||||
|
cfg_nan_get_ndp_max_sessions(wma_handle->psoc,
|
||||||
|
&tgt_cfg->max_ndp_sessions);
|
||||||
|
|
||||||
wma_set_ipa_disable_config(tgt_cfg);
|
wma_set_ipa_disable_config(tgt_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user