qcacld-3.0: Update for converged NAN config params

Update driver to use NAN config params based converged CFG
component. Cleanup hdd config references to nan ini params.

Change-Id: I5af85d68ee53ad557e64523f7a1719e328536926
CRs-fixed: 2290360
This commit is contained in:
Manikandan Mohan
2018-08-02 18:13:37 -07:00
committed by nshrivas
parent 7bab3b4886
commit dcd0fdfcc0
14 changed files with 24 additions and 195 deletions

1
Kbuild
View File

@@ -1195,6 +1195,7 @@ WLAN_NAN_OBJS := $(NAN_CORE_DIR)/nan_main.o \
$(NAN_CORE_DIR)/nan_api.o \
$(NAN_CORE_DIR)/nan_utils.o \
$(NAN_UCFG_DIR)/nan_ucfg_api.o \
$(NAN_UCFG_DIR)/cfg_nan.o \
$(NAN_TGT_DIR)/target_if_nan.o \
$(NAN_OS_IF_DIR)/os_if_nan.o
endif

View File

@@ -31,7 +31,14 @@
#define CFG_TDLS_ALL
#endif
#ifdef WLAN_FEATURE_NAN_CONVERGENCE
#include "cfg_nan.h"
#else
#define CFG_NAN_ALL
#endif
#define CFG_ALL \
CFG_CONVERGED_ALL \
CFG_P2P_ALL \
CFG_TDLS_ALL
CFG_TDLS_ALL \
CFG_NAN_ALL

View File

@@ -634,38 +634,6 @@ bool pmo_core_is_lpass_enabled(struct wlan_objmgr_vdev *vdev)
}
#endif
#ifdef WLAN_FEATURE_NAN
/**
* pmo_is_nan_enabled() - check if NaN is enabled
* @vdev: objmgr vdev handle
*
* WoW is needed if LPASS or NaN feature is enabled in INI because
* target can't wake up itself if its put in PDEV suspend when LPASS
* or NaN features are supported
*
* Return: true if NaN is enabled else false
*/
static inline
bool pmo_core_is_nan_enabled(struct wlan_objmgr_vdev *vdev)
{
bool nan_enable;
struct pmo_vdev_priv_obj *vdev_ctx;
vdev_ctx = pmo_vdev_get_priv(vdev);
qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock);
nan_enable = vdev_ctx->pmo_psoc_ctx->psoc_cfg.nan_enable;
qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock);
return nan_enable;
}
#else
static inline
bool pmo_core_is_nan_enabled(struct wlan_objmgr_vdev *vdev)
{
return false;
}
#endif
/**
* pmo_get_event_bitmap_idx() - get indices for extended wow bitmaps
* @event: wow event

View File

@@ -26,6 +26,7 @@
#include <wlan_scan_ucfg_api.h>
#include "wlan_pmo_static_config.h"
#include "wlan_reg_services_api.h"
#include "cfg_nan_api.h"
void pmo_set_wow_event_bitmap(WOW_WAKE_EVENT_TYPE event,
uint32_t wow_bitmap_size,
@@ -315,7 +316,7 @@ bool pmo_core_is_wow_applicable(struct wlan_objmgr_psoc *psoc)
} else if (pmo_core_is_lpass_enabled(vdev)) {
pmo_debug("LPASS is enabled, enabling WoW");
is_wow_applicable = true;
} else if (pmo_core_is_nan_enabled(vdev)) {
} else if (cfg_nan_get_enable(psoc)) {
pmo_debug("NAN is enabled, enabling WoW");
is_wow_applicable = true;
} else if (pmo_core_get_vdev_op_mode(vdev) == QDF_NDI_MODE) {

View File

@@ -278,7 +278,6 @@ enum pmo_auto_pwr_detect_failure_mode {
* @deauth_enable: true when wake up on deauth is enabled else false
* @disassoc_enable: true when wake up on disassoc is enabled else false
* @bmiss_enable: true when wake up on bmiss is enabled else false
* @nan_enable: true when nan is enabled else false
* @lpass_enable: true when lpass is enabled else false
* @sta_dynamic_dtim: station dynamic DTIM value
* @sta_mod_dtim: station modulated DTIM value
@@ -305,7 +304,6 @@ struct pmo_psoc_cfg {
bool deauth_enable;
bool disassoc_enable;
bool bmiss_enable;
bool nan_enable;
bool lpass_enable;
uint8_t sta_dynamic_dtim;
uint8_t sta_mod_dtim;

View File

@@ -92,7 +92,6 @@ enum active_apf_mode {
* @tx_flow_stop_queue_th: Threshold to stop queue in percentage
* @tx_flow_start_queue_offset: Start queue offset in percentage
* @is_lpass_enabled: Indicate whether LPASS is enabled or not
* @is_nan_enabled: Indicate whether NAN is enabled or not
* @bool apf_packet_filter_enable; Indicate apf filter enabled or not
* @tx_chain_mask_cck: Tx chain mask enabled or not
* @self_gen_frm_pwr: Self gen from power
@@ -149,9 +148,6 @@ struct cds_config_info {
#endif
#ifdef WLAN_FEATURE_LPSS
bool is_lpass_enabled;
#endif
#ifdef WLAN_FEATURE_NAN
bool is_nan_enabled;
#endif
bool apf_packet_filter_enable;
bool tx_chain_mask_cck;

View File

@@ -7489,18 +7489,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_ENABLE_LPASS_SUPPORT_MAX (1)
#endif
/*
* NaN feature support configuration
* gEnableNanSupport = 0 means NaN is not supported
* gEnableNanSupport = 1 means NaN is supported
*/
#ifdef WLAN_FEATURE_NAN
#define CFG_ENABLE_NAN_SUPPORT "gEnableNanSupport"
#define CFG_ENABLE_NAN_SUPPORT_DEFAULT (0)
#define CFG_ENABLE_NAN_SUPPORT_MIN (0)
#define CFG_ENABLE_NAN_SUPPORT_MAX (1)
#endif
#define CFG_ENABLE_SELF_RECOVERY "gEnableSelfRecovery"
#define CFG_ENABLE_SELF_RECOVERY_MIN (0)
#define CFG_ENABLE_SELF_RECOVERY_MAX (1)
@@ -8588,26 +8576,6 @@ enum dot11p_mode {
#define CFG_IGNORE_PEER_HT_MODE_MAX (1)
#define CFG_IGNORE_PEER_HT_MODE_DEFAULT (0)
#ifdef WLAN_FEATURE_NAN_DATAPATH
/*
* Enable NaN data path feature. NaN data path enables
* NaN supported devices to exchange data over traditional
* TCP/UDP network stack.
*/
#define CFG_ENABLE_NAN_DATAPATH_NAME "genable_nan_datapath"
#define CFG_ENABLE_NAN_DATAPATH_MIN (0)
#define CFG_ENABLE_NAN_DATAPATH_MAX (1)
#define CFG_ENABLE_NAN_DATAPATH_DEFAULT (0)
/*
* NAN channel on which NAN data interface to start
*/
#define CFG_ENABLE_NAN_NDI_CHANNEL_NAME "gnan_datapath_ndi_channel"
#define CFG_ENABLE_NAN_NDI_CHANNEL_MIN (6)
#define CFG_ENABLE_NAN_NDI_CHANNEL_MAX (149)
#define CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT (6)
#endif
/*
* Enable/Disable to initiate BUG report in case of fatal event
* Default: Enable
@@ -11540,30 +11508,6 @@ enum hdd_external_acs_policy {
#define CFG_ROAM_NUM_DISALLOWED_APS_MAX (8)
#define CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT (3)
/*
* <ini>
* gEnableNDIMacRandomization - When enabled this will randomize NDI Mac
* @Min: 0
* @Max: 1
* @Default: 1
*
* When enabled this will randomize NDI Mac
*
*
* Related: None
*
* Supported Feature: NAN
*
* Usage: External
*
* </ini>
*/
#define CFG_RANDOMIZE_NDI_MAC_NAME "gEnableNDIMacRandomization"
#define CFG_RANDOMIZE_NDI_MAC_MIN (0)
#define CFG_RANDOMIZE_NDI_MAC_MAX (1)
#define CFG_RANDOMIZE_NDI_MAC_DEFAULT (1)
/*
* <ini>
* gEnableLPRx - Enable/Disable LPRx
@@ -14476,9 +14420,6 @@ struct hdd_config {
#ifdef WLAN_FEATURE_LPSS
bool enable_lpass_support;
#endif
#ifdef WLAN_FEATURE_NAN
bool enable_nan_support;
#endif
bool enableSelfRecovery;
#ifdef FEATURE_WLAN_FORCE_SAP_SCC
@@ -14640,10 +14581,6 @@ struct hdd_config {
bool acs_support_for_dfs_ltecoex;
bool bug_report_for_no_scan_results;
bool bug_on_reinit_failure;
#ifdef WLAN_FEATURE_NAN_DATAPATH
bool enable_nan_datapath;
uint8_t nan_datapath_ndi_channel;
#endif
uint32_t iface_change_wait_time;
/* parameter to control GTX */
uint32_t tgt_gtx_usr_cfg;
@@ -14765,7 +14702,6 @@ struct hdd_config {
uint8_t lower_brssi_thresh;
bool enable_dtim_1chrx;
int8_t rssi_thresh_offset_5g;
bool is_ndi_mac_randomized;
uint32_t scan_11d_interval;
bool chan_switch_hostapd_rate_enabled;
bool is_bssid_hint_priority;

View File

@@ -37,31 +37,6 @@ int wlan_hdd_cfg80211_nan_request(struct wiphy *wiphy,
int data_len);
bool wlan_hdd_nan_is_supported(void);
/**
* hdd_nan_populate_cds_config() - Populate NAN cds configuration
* @cds_cfg: CDS Configuration
* @hdd_ctx: Pointer to hdd context
*
* Return: none
*/
static inline void hdd_nan_populate_cds_config(struct cds_config_info *cds_cfg,
struct hdd_context *hdd_ctx)
{
cds_cfg->is_nan_enabled = hdd_ctx->config->enable_nan_support;
}
/**
* hdd_nan_populate_pmo_config() - Populate NAN pmo configuration
* @pmo_cfg: PMO Configuration
* @hdd_ctx: Pointer to hdd context
*
* Return: none
*/
static inline void hdd_nan_populate_pmo_config(struct pmo_psoc_cfg *pmo_cfg,
struct hdd_context *hdd_ctx)
{
pmo_cfg->nan_enable = hdd_ctx->config->enable_nan_support;
}
/**
* wlan_hdd_cfg80211_nan_callback() - cfg80211 NAN event handler

View File

@@ -2977,15 +2977,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ENABLE_LPASS_SUPPORT_MAX),
#endif
#ifdef WLAN_FEATURE_NAN
REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
struct hdd_config, enable_nan_support,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_NAN_SUPPORT_DEFAULT,
CFG_ENABLE_NAN_SUPPORT_MIN,
CFG_ENABLE_NAN_SUPPORT_MAX),
#endif
REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
struct hdd_config, enableSelfRecovery,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -3781,22 +3772,6 @@ struct reg_table_entry g_registry_table[] = {
VAR_FLAGS_OPTIONAL,
(void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
#ifdef WLAN_FEATURE_NAN_DATAPATH
REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
struct hdd_config, enable_nan_datapath,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_NAN_DATAPATH_DEFAULT,
CFG_ENABLE_NAN_DATAPATH_MIN,
CFG_ENABLE_NAN_DATAPATH_MAX),
REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
struct hdd_config, nan_datapath_ndi_channel,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
#endif
REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
struct hdd_config, bug_report_for_no_scan_results,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4646,13 +4621,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_DTIM_1CHRX_ENABLE_MIN,
CFG_DTIM_1CHRX_ENABLE_MAX),
REG_VARIABLE(CFG_RANDOMIZE_NDI_MAC_NAME, WLAN_PARAM_Integer,
struct hdd_config, is_ndi_mac_randomized,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_RANDOMIZE_NDI_MAC_DEFAULT,
CFG_RANDOMIZE_NDI_MAC_MIN,
CFG_RANDOMIZE_NDI_MAC_MAX),
REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
struct hdd_config, scan_11d_interval,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -6962,7 +6930,6 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
hdd_debug("Name = [%s] Value = [%u]",
CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
hdd_ctx->config->sap_max_inactivity_override);
hdd_ndp_print_ini_config(hdd_ctx);
hdd_debug("Name = [%s] Value = [%s]",
CFG_RM_CAPABILITY_NAME,
hdd_ctx->config->rm_capability);
@@ -7057,9 +7024,6 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
hdd_debug("Name = [%s] value = [%u]",
CFG_DTIM_1CHRX_ENABLE_NAME,
hdd_ctx->config->enable_dtim_1chrx);
hdd_debug("Name = [%s] value = [%u]",
CFG_RANDOMIZE_NDI_MAC_NAME,
hdd_ctx->config->is_ndi_mac_randomized);
hdd_debug("Name = [%s] value = [%u]",
CFG_DOT11P_MODE_NAME,
hdd_ctx->config->dot11p_mode);

View File

@@ -9513,7 +9513,6 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
hdd_ra_populate_cds_config(cds_cfg, hdd_ctx);
hdd_txrx_populate_cds_config(cds_cfg, hdd_ctx);
hdd_nan_populate_cds_config(cds_cfg, hdd_ctx);
hdd_lpass_populate_cds_config(cds_cfg, hdd_ctx);
cds_init_ini_config(cds_cfg);
return 0;
@@ -13380,7 +13379,6 @@ static int hdd_update_pmo_config(struct hdd_context *hdd_ctx)
hdd_ctx->config->auto_pwr_save_fail_mode;
hdd_ra_populate_pmo_config(&psoc_cfg, hdd_ctx);
hdd_nan_populate_pmo_config(&psoc_cfg, hdd_ctx);
hdd_lpass_populate_pmo_config(&psoc_cfg, hdd_ctx);
status = ucfg_pmo_update_psoc_config(hdd_ctx->hdd_psoc, &psoc_cfg);

View File

@@ -32,6 +32,7 @@
#include "wlan_hdd_main.h"
#include "wlan_hdd_nan.h"
#include <qca_vendor.h>
#include "cfg_nan_api.h"
/**
* __wlan_hdd_cfg80211_nan_request() - cfg80211 NAN request handler
@@ -68,7 +69,7 @@ static int __wlan_hdd_cfg80211_nan_request(struct wiphy *wiphy,
return -EPERM;
}
if (!hdd_ctx->config->enable_nan_support) {
if (!cfg_nan_get_enable(hdd_ctx->hdd_psoc)) {
hdd_err("NaN support is not enabled in INI");
return -EPERM;
}

View File

@@ -36,20 +36,7 @@
#include "os_if_nan.h"
#include "wlan_nan_api.h"
#include "nan_public_structs.h"
/**
* hdd_ndp_print_ini_config()- Print nan datapath specific INI configuration
* @hdd_ctx: handle to hdd context
*
* Return: None
*/
void hdd_ndp_print_ini_config(struct hdd_context *hdd_ctx)
{
hdd_debug("Name = [%s] Value = [%u]", CFG_ENABLE_NAN_DATAPATH_NAME,
hdd_ctx->config->enable_nan_datapath);
hdd_debug("Name = [%s] Value = [%u]", CFG_ENABLE_NAN_NDI_CHANNEL_NAME,
hdd_ctx->config->nan_datapath_ndi_channel);
}
#include "cfg_nan_api.h"
/**
* hdd_nan_datapath_target_config() - Configure NAN datapath features
@@ -62,15 +49,15 @@ void hdd_ndp_print_ini_config(struct hdd_context *hdd_ctx)
* Return: None
*/
void hdd_nan_datapath_target_config(struct hdd_context *hdd_ctx,
struct wma_tgt_cfg *cfg)
struct wma_tgt_cfg *tgt_cfg)
{
hdd_ctx->nan_datapath_enabled =
hdd_ctx->config->enable_nan_datapath &&
cfg->nan_datapath_enabled;
hdd_debug("final: %d, host: %d, fw: %d",
cfg_nan_get_datapath_enable(hdd_ctx->hdd_psoc) &&
tgt_cfg->nan_datapath_enabled;
hdd_debug("NAN Datapath Enable: %d (Host: %d FW: %d)",
hdd_ctx->nan_datapath_enabled,
hdd_ctx->config->enable_nan_datapath,
cfg->nan_datapath_enabled);
cfg_nan_get_datapath_enable(hdd_ctx->hdd_psoc),
tgt_cfg->nan_datapath_enabled);
}
/**
@@ -485,7 +472,7 @@ int hdd_ndi_open(char *iface_name)
return -EINVAL;
}
if (hdd_ctx->config->is_ndi_mac_randomized) {
if (cfg_nan_get_ndi_mac_randomize(hdd_ctx->hdd_psoc)) {
if (hdd_get_random_nan_mac_addr(hdd_ctx, &random_ndi_mac)) {
hdd_err("get random mac address failed");
return -EFAULT;
@@ -524,7 +511,7 @@ int hdd_ndi_start(char *iface_name, uint16_t transaction_id)
return -EINVAL;
}
op_channel = hdd_ctx->config->nan_datapath_ndi_channel;
op_channel = cfg_nan_get_ndi_channel(hdd_ctx->hdd_psoc);
adapter = hdd_get_adapter_by_iface_name(hdd_ctx, iface_name);
if (!adapter) {
hdd_err("adapter is null");

View File

@@ -49,7 +49,6 @@ struct wireless_dev;
#endif /* WLAN_FEATURE_NAN_DATAPATH */
#ifdef WLAN_FEATURE_NAN_DATAPATH
void hdd_ndp_print_ini_config(struct hdd_context *hdd_ctx);
void hdd_nan_datapath_target_config(struct hdd_context *hdd_ctx,
struct wma_tgt_cfg *cfg);
void hdd_ndp_event_handler(struct hdd_adapter *adapter,
@@ -61,9 +60,6 @@ int wlan_hdd_cfg80211_process_ndp_cmd(struct wiphy *wiphy,
int hdd_init_nan_data_mode(struct hdd_adapter *adapter);
void hdd_ndp_session_end_handler(struct hdd_adapter *adapter);
#else
static inline void hdd_ndp_print_ini_config(struct hdd_context *hdd_ctx)
{
}
static inline void hdd_nan_datapath_target_config(struct hdd_context *hdd_ctx,
struct wma_tgt_cfg *cfg)
{

View File

@@ -89,6 +89,7 @@
#include "target_if_green_ap.h"
#include "service_ready_param.h"
#include "wlan_cp_stats_mc_ucfg_api.h"
#include "cfg_nan_api.h"
#define WMA_LOG_COMPLETION_TIMER 3000 /* 3 seconds */
#define WMI_TLV_HEADROOM 128
@@ -1814,7 +1815,7 @@ int wma_process_fw_event_handler(void *ctx, void *htc_packet, uint8_t rx_ctx)
static void wma_set_nan_enable(tp_wma_handle wma_handle,
struct cds_config_info *cds_cfg)
{
wma_handle->is_nan_enabled = cds_cfg->is_nan_enabled;
wma_handle->is_nan_enabled = cfg_nan_get_enable(wma_handle->psoc);
}
#else
static void wma_set_nan_enable(tp_wma_handle wma_handle,