qcacld-3.0: Move offload ini params to converged CFG

Move misc offload ini params to converged CFG component and
cleanup HDD ini config.

Change-Id: I14b3d95dc1577d02230168d305d1d1c4c7fef2fd
CRs-fixed: 2358489
This commit is contained in:
Manikandan Mohan
2018-11-29 14:01:12 -08:00
committed by nshrivas
parent aed4e3d88d
commit d350c194b4
10 changed files with 460 additions and 215 deletions

View File

@@ -154,6 +154,12 @@ struct wlan_fwol_neighbor_report_cfg {
* @enable_fw_module_log_level_num: enablefw module log level num
* @is_rate_limit_enabled: Enable/disable RA rate limited
* @tsf_gpio_pin: TSF GPIO Pin config
* @tsf_ptp_options: TSF Plus feature options config
* @lprx_enable: LPRx feature enable config
* @sae_enable: SAE feature enable config
* @gcmp_enable: GCMP feature enable config
* @enable_tx_sch_delay: Enable TX SCH delay value config
* @enable_secondary_rate: Enable secondary retry rate config
* @enable_dhcp_server_offload: DHCP Offload is enabled or not
* @dhcp_max_num_clients: Max number of DHCP client supported
*/
@@ -183,7 +189,17 @@ struct wlan_fwol_cfg {
#endif
#ifdef WLAN_FEATURE_TSF
uint32_t tsf_gpio_pin;
#ifdef WLAN_FEATURE_TSF_PLUS
uint32_t tsf_ptp_options;
#endif
#endif
bool lprx_enable;
#ifdef WLAN_FEATURE_SAE
bool sae_enable;
#endif
bool gcmp_enable;
uint8_t enable_tx_sch_delay;
uint32_t enable_secondary_rate;
#ifdef DHCP_SERVER_OFFLOAD
bool enable_dhcp_server_offload;
uint32_t dhcp_max_num_clients;

View File

@@ -271,6 +271,46 @@ static void ucfg_fwol_fetch_tsf_gpio_pin(struct wlan_objmgr_psoc *psoc,
}
#endif
/**
* ucfg_fwol_init_tsf_ptp_options: Populate the tsf_ptp_options from cfg
* @psoc: The global psoc handler
* @fwol_cfg: The cfg structure
*
* Return: none
*/
#if defined(WLAN_FEATURE_TSF) && defined(WLAN_FEATURE_TSF_PLUS)
static void ucfg_fwol_init_tsf_ptp_options(struct wlan_objmgr_psoc *psoc,
struct wlan_fwol_cfg *fwol_cfg)
{
fwol_cfg->tsf_ptp_options = cfg_get(psoc, CFG_SET_TSF_PTP_OPT);
}
#else
static void ucfg_fwol_init_tsf_ptp_options(struct wlan_objmgr_psoc *psoc,
struct wlan_fwol_cfg *fwol_cfg)
{
}
#endif
/**
* ucfg_fwol_init_sae_cfg: Populate the sae control config from cfg
* @psoc: The global psoc handler
* @fwol_cfg: The cfg structure
*
* Return: none
*/
#ifdef WLAN_FEATURE_SAE
static void ucfg_fwol_init_sae_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_fwol_cfg *fwol_cfg)
{
fwol_cfg->sae_enable = cfg_get(psoc, CFG_IS_SAE_ENABLED);
}
#else
static void ucfg_fwol_init_sae_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_fwol_cfg *fwol_cfg)
{
}
#endif
/**
* ucfg_fwol_fetch_ra_filter: Populate the RA filter enabled or not from cfg
* @psoc: The global psoc handler
@@ -333,6 +373,13 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
&enable_fw_module_log_level_num);
fwol_cfg->enable_fw_module_log_level_num =
(uint8_t)enable_fw_module_log_level_num;
ucfg_fwol_init_tsf_ptp_options(psoc, fwol_cfg);
ucfg_fwol_init_sae_cfg(psoc, fwol_cfg);
fwol_cfg->lprx_enable = cfg_get(psoc, CFG_LPRX);
fwol_cfg->gcmp_enable = cfg_get(psoc, CFG_ENABLE_GCMP);
fwol_cfg->enable_tx_sch_delay = cfg_get(psoc, CFG_TX_SCH_DELAY);
fwol_cfg->enable_secondary_rate = cfg_get(psoc,
CFG_ENABLE_SECONDARY_RATE);
ucfg_fwol_fetch_ra_filter(psoc, fwol_cfg);
ucfg_fwol_fetch_tsf_gpio_pin(psoc, fwol_cfg);
ucfg_fwol_fetch_dhcp_server_settings(psoc, fwol_cfg);

View File

@@ -432,6 +432,41 @@
CFG_VALUE_OR_DEFAULT, \
"GPIO pin to toggle when capture tsf")
#if defined(WLAN_FEATURE_TSF) && defined(WLAN_FEATURE_TSF_PLUS)
/* <ini>
* gtsf_ptp_options: TSF Plus feature options
* @Min: 0
* @Max: 0xff
* @Default: 0xf
*
* CFG_SET_TSF_PTP_OPT_RX (0x1)
* CFG_SET_TSF_PTP_OPT_TX (0x2)
* CFG_SET_TSF_PTP_OPT_RAW (0x4)
* CFG_SET_TSF_DBG_FS (0x8)
*
* Related: None
*
* Usage: Internal
*
* </ini>
*/
#define CFG_SET_TSF_PTP_OPT_RX (0x1)
#define CFG_SET_TSF_PTP_OPT_TX (0x2)
#define CFG_SET_TSF_PTP_OPT_RAW (0x4)
#define CFG_SET_TSF_DBG_FS (0x8)
#define CFG_SET_TSF_PTP_OPT CFG_INI_UINT( \
"gtsf_ptp_options", \
0, \
0xff, \
0xf, \
CFG_VALUE_OR_DEFAULT, \
"TSF Plus feature options")
#define __CFG_SET_TSF_PTP_OPT CFG(CFG_SET_TSF_PTP_OPT)
#else
#define __CFG_SET_TSF_PTP_OPT
#endif
#ifdef DHCP_SERVER_OFFLOAD
/* <ini>
* gDHCPServerOffloadEnable
@@ -482,6 +517,124 @@
#define CFG_FWOL_DHCP
#endif
/*
* <ini>
* gEnableLPRx - Enable/Disable LPRx
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini Enables or disables the LPRx in FW
*
* Usage: External
*
* </ini>
*/
#define CFG_LPRX CFG_INI_BOOL( \
"gEnableLPRx", \
1, \
"LPRx control")
#ifdef WLAN_FEATURE_SAE
/*
* <ini>
* sae_enabled - Enable/Disable SAE support in driver
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini is used to enable/disable SAE support in driver
* Driver will update config to supplicant based on this config.
*
* Related: None
*
* Supported Feature: SAE
* Usage: External
*
* </ini>
*/
#define CFG_IS_SAE_ENABLED CFG_INI_BOOL( \
"sae_enabled", \
1, \
"SAE feature control")
#define __CFG_IS_SAE_ENABLED CFG(CFG_IS_SAE_ENABLED)
#else
#define __CFG_IS_SAE_ENABLED
#endif
/*
* <ini>
* gcmp_enabled - ini to enable/disable GCMP
* @Min: 0
* @Max: 1
* @Default: 1
*
* Currently Firmware update the sequence number for each TID with 2^3
* because of security issues. But with this PN mechanism, throughput drop
* is observed. With this ini FW takes the decision to trade off between
* security and throughput
*
* Supported Feature: STA/SAP/P2P
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_GCMP CFG_INI_BOOL( \
"gcmp_enabled", \
1, \
"GCMP Feature control param")
/*
* <ini>
* gTxSchDelay - Enable/Disable Tx sch delay
* @Min: 0
* @Max: 5
* @Default: 0
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_TX_SCH_DELAY CFG_INI_UINT( \
"gTxSchDelay", \
0, \
5, \
0, \
CFG_VALUE_OR_DEFAULT, \
"Enable/Disable Tx sch delay")
/*
* <ini>
* gEnableSecondaryRate - Enable/Disable Secondary Retry Rate feature subset
*
* @Min: 0x0
* @Max: 0x3F
* @Default: 0x17
*
* It is a 32 bit value such that the various bits represent as below -
* Bit-0 : is Enable/Disable Control for "PPDU Secondary Retry Support"
* Bit-1 : is Enable/Disable Control for "RTS Black/White-listing Support"
* Bit-2 : is Enable/Disable Control for "Higher MCS retry restriction
* on XRETRY failures"
* Bit 3-5 : is "Xretry threshold" to use
* Bit 3~31 : reserved for future use.
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_SECONDARY_RATE CFG_INI_UINT( \
"gEnableSecondaryRate", \
0, \
0x3f, \
0x17, \
CFG_VALUE_OR_DEFAULT, \
"Secondary Retry Rate feature subset control")
#define CFG_FWOL_GENERIC_ALL \
CFG_FWOL_DHCP \
CFG(CFG_ENABLE_ANI) \
@@ -499,6 +652,12 @@
CFG(CFG_ENABLE_FW_LOG_TYPE) \
CFG(CFG_ENABLE_FW_MODULE_LOG_LEVEL) \
CFG(CFG_RA_FILTER_ENABLE) \
CFG(CFG_SET_TSF_GPIO_PIN)
CFG(CFG_SET_TSF_GPIO_PIN) \
__CFG_SET_TSF_PTP_OPT \
CFG(CFG_LPRX) \
__CFG_IS_SAE_ENABLED \
CFG(CFG_ENABLE_GCMP) \
CFG(CFG_TX_SCH_DELAY) \
CFG(CFG_ENABLE_SECONDARY_RATE)
#endif

View File

@@ -323,6 +323,64 @@ ucfg_fwol_get_enable_dhcp_server_offload(struct wlan_objmgr_psoc *psoc,
*/
QDF_STATUS ucfg_fwol_get_dhcp_max_num_clients(struct wlan_objmgr_psoc *psoc,
uint32_t *dhcp_max_num_clients);
#endif
/**
* ucfg_fwol_get_tsf_ptp_options() - Get TSF Plus feature options
* @psoc: pointer to the psoc object
* @tsf_ptp_options: Pointer to return tsf ptp options
*
* Return: QDF Status
*/
QDF_STATUS ucfg_fwol_get_tsf_ptp_options(struct wlan_objmgr_psoc *psoc,
uint32_t *tsf_ptp_options);
/**
* ucfg_fwol_get_lprx_enable() - Get LPRx feature enable status
* @psoc: pointer to the psoc object
* @lprx_enable: Pointer to return LPRX feature enable status
*
* Return: QDF Status
*/
QDF_STATUS ucfg_fwol_get_lprx_enable(struct wlan_objmgr_psoc *psoc,
bool *lprx_enable);
/**
* ucfg_fwol_get_sae_enable() - Get SAE feature enable status
* @psoc: pointer to the psoc object
* @sae_enable: Pointer to return SAE feature enable status
*
* Return: QDF Status
*/
QDF_STATUS ucfg_fwol_get_sae_enable(struct wlan_objmgr_psoc *psoc,
bool *sae_enable);
/**
* ucfg_fwol_get_gcmp_enable() - Get GCMP feature enable status
* @psoc: pointer to the psoc object
* @gcmp_enable: Pointer to return GCMP feature enable status
*
* Return: QDF Status
*/
QDF_STATUS ucfg_fwol_get_gcmp_enable(struct wlan_objmgr_psoc *psoc,
bool *gcmp_enable);
/**
* ucfg_fwol_get_enable_tx_sch_delay() - Get enable tx sch delay
* @psoc: pointer to the psoc object
* @enable_tx_sch_delay: Pointer to return enable_tx_sch_delay value
*
* Return: QDF Status
*/
QDF_STATUS ucfg_fwol_get_enable_tx_sch_delay(struct wlan_objmgr_psoc *psoc,
uint8_t *enable_tx_sch_delay);
/**
* ucfg_fwol_get_enable_secondary_rate() - Get enable secondary rate
* @psoc: pointer to the psoc object
* @enable_tx_sch_delay: Pointer to return enable secondary rate value
*
* Return: QDF Status
*/
QDF_STATUS ucfg_fwol_get_enable_secondary_rate(struct wlan_objmgr_psoc *psoc,
uint32_t *enable_secondary_rate);
#endif /* _WLAN_FWOL_UCFG_API_H_ */

View File

@@ -540,14 +540,120 @@ QDF_STATUS ucfg_fwol_get_tsf_gpio_pin(struct wlan_objmgr_psoc *psoc,
*tsf_gpio_pin = fwol_obj->cfg.tsf_gpio_pin;
return QDF_STATUS_SUCCESS;
}
#ifdef WLAN_FEATURE_TSF_PLUS
QDF_STATUS ucfg_fwol_get_tsf_ptp_options(struct wlan_objmgr_psoc *psoc,
uint32_t *tsf_ptp_options)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
fwol_err("Failed to get FWOL obj");
return QDF_STATUS_E_FAILURE;
}
*tsf_ptp_options = fwol_obj->cfg.tsf_ptp_options;
return QDF_STATUS_SUCCESS;
}
#endif
#else
QDF_STATUS ucfg_fwol_get_tsf_gpio_pin(struct wlan_objmgr_psoc *psoc,
uint32_t *tsf_gpio_pin)
{
return QDF_STATUS_SUCCESS;
}
QDF_STATUS ucfg_fwol_get_tsf_ptp_options(struct wlan_objmgr_psoc *psoc,
uint32_t *tsf_ptp_options)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
QDF_STATUS ucfg_fwol_get_lprx_enable(struct wlan_objmgr_psoc *psoc,
bool *lprx_enable)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
fwol_err("Failed to get FWOL obj");
return QDF_STATUS_E_FAILURE;
}
*lprx_enable = fwol_obj->cfg.lprx_enable;
return QDF_STATUS_SUCCESS;
}
#ifdef WLAN_FEATURE_SAE
QDF_STATUS ucfg_fwol_get_sae_enable(struct wlan_objmgr_psoc *psoc,
bool *sae_enable)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
fwol_err("Failed to get FWOL obj");
return QDF_STATUS_E_FAILURE;
}
*sae_enable = fwol_obj->cfg.sae_enable;
return QDF_STATUS_SUCCESS;
}
#else
QDF_STATUS ucfg_fwol_get_sae_enable(struct wlan_objmgr_psoc *psoc,
bool *sae_enable)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
QDF_STATUS ucfg_fwol_get_gcmp_enable(struct wlan_objmgr_psoc *psoc,
bool *gcmp_enable)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
fwol_err("Failed to get FWOL obj");
return QDF_STATUS_E_FAILURE;
}
*gcmp_enable = fwol_obj->cfg.gcmp_enable;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS ucfg_fwol_get_enable_tx_sch_delay(struct wlan_objmgr_psoc *psoc,
uint8_t *enable_tx_sch_delay)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
fwol_err("Failed to get FWOL obj");
return QDF_STATUS_E_FAILURE;
}
*enable_tx_sch_delay = fwol_obj->cfg.enable_tx_sch_delay;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS ucfg_fwol_get_enable_secondary_rate(struct wlan_objmgr_psoc *psoc,
uint32_t *enable_secondary_rate)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
fwol_err("Failed to get FWOL obj");
return QDF_STATUS_E_FAILURE;
}
*enable_secondary_rate = fwol_obj->cfg.enable_secondary_rate;
return QDF_STATUS_SUCCESS;
}
#ifdef DHCP_SERVER_OFFLOAD
QDF_STATUS
ucfg_fwol_get_enable_dhcp_server_offload(struct wlan_objmgr_psoc *psoc,

View File

@@ -1235,18 +1235,6 @@ enum hdd_dot11_mode {
#define CFG_STATIONARY_THRESHOLD_MAX (100)
#define CFG_STATIONARY_THRESHOLD_DEFAULT (10)
#ifdef WLAN_FEATURE_TSF_PLUS
/* PTP options */
#define CFG_SET_TSF_PTP_OPT_NAME "gtsf_ptp_options"
#define CFG_SET_TSF_PTP_OPT_MIN (0)
#define CFG_SET_TSF_PTP_OPT_MAX (0xff)
#define CFG_SET_TSF_PTP_OPT_RX (0x1)
#define CFG_SET_TSF_PTP_OPT_TX (0x2)
#define CFG_SET_TSF_PTP_OPT_RAW (0x4)
#define CFG_SET_TSF_DBG_FS (0x8)
#define CFG_SET_TSF_PTP_OPT_DEFAULT (0xf)
#endif
#ifdef CONFIG_DP_TRACE
/* Max length of gDptraceConfig string. e.g.- "1, 6, 1, 62" */
#define DP_TRACE_CONFIG_STRING_LENGTH (20)
@@ -1586,89 +1574,6 @@ enum hdd_dot11_mode {
#define CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MAX (0xFFFFFFFF)
#define CFG_MAWC_NLO_MAX_SCAN_INTERVAL_DEFAULT (60000)
/*
* <ini>
* gEnableLPRx - Enable/Disable LPRx
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini Enables or disables the LPRx in FW
*
* Usage: External
*
* </ini>
*/
#define CFG_LPRx_NAME "gEnableLPRx"
#define CFG_LPRx_MIN (0)
#define CFG_LPRx_MAX (1)
#define CFG_LPRx_DEFAULT (1)
/*
* <ini>
* sae_enabled - Enable/Disable SAE support in driver
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable/disable SAE support in driver
* Driver will update config to supplicant based on this config.
*
* Related: None
*
* Supported Feature: SAE
* Usage: External
*
* </ini>
*/
#define CFG_IS_SAE_ENABLED_NAME "sae_enabled"
#define CFG_IS_SAE_ENABLED_DEFAULT (1)
#define CFG_IS_SAE_ENABLED_MIN (0)
#define CFG_IS_SAE_ENABLED_MAX (1)
/*
* <ini>
* gcmp_enabled - ini to enable/disable GCMP
* @Min: 0
* @Max: 1
* @Default: 0
*
* Currently Firmware update the sequence number for each TID with 2^3
* because of security issues. But with this PN mechanism, throughput drop
* is observed. With this ini FW takes the decision to trade off between
* security and throughput
*
* Supported Feature: STA/SAP/P2P
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_GCMP_NAME "gcmp_enabled"
#define CFG_ENABLE_GCMP_MIN (0)
#define CFG_ENABLE_GCMP_MAX (1)
#define CFG_ENABLE_GCMP_DEFAULT (1)
/*
* <ini>
* gTxSchDelay - Enable/Disable Tx sch delay
* @Min: 0
* @Max: 5
* @Default: 0
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_TX_SCH_DELAY_NAME "gTxSchDelay"
#define CFG_TX_SCH_DELAY_MIN (0)
#define CFG_TX_SCH_DELAY_MAX (5)
#define CFG_TX_SCH_DELAY_DEFAULT (0)
/*
* <ini>
* gEnableUnitTestFramework - Enable/Disable unit test framework
@@ -1685,31 +1590,6 @@ enum hdd_dot11_mode {
#define CFG_ENABLE_UNIT_TEST_FRAMEWORK_MAX (1)
#define CFG_ENABLE_UINT_TEST_FRAMEWORK_DEFAULT (0)
/*
* <ini>
* gEnableSecondaryRate - Enable/Disable Secondary Retry Rate feature subset
*
* @Min: 0x0
* @Max: 0x3F
* @Default: 0x17
*
* It is a 32 bit value such that the various bits represent as below -
* Bit-0 : is Enable/Disable Control for "PPDU Secondary Retry Support"
* Bit-1 : is Enable/Disable Control for "RTS Black/White-listing Support"
* Bit-2 : is Enable/Disable Control for "Higher MCS retry restriction
* on XRETRY failures"
* Bit 3-5 : is "Xretry threshold" to use
* Bit 3~31 : reserved for future use.
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_SECONDARY_RATE_NAME "gEnableSecondaryRate"
#define CFG_ENABLE_SECONDARY_RATE_MIN (0)
#define CFG_ENABLE_SECONDARY_RATE_MAX (0x3F)
#define CFG_ENABLE_SECONDARY_RATE_DEFAULT (0x17)
/*
* <ini>
* gEnableChangeChannelBandWidth - Enable/Disable change
@@ -1828,11 +1708,6 @@ struct hdd_config {
#endif
#ifdef FEATURE_LFR_SUBNET_DETECTION
bool enable_lfr_subnet_detection;
#endif
#ifdef WLAN_FEATURE_TSF
#ifdef WLAN_FEATURE_TSF_PLUS
uint8_t tsf_ptp_options;
#endif /* WLAN_FEATURE_TSF_PLUS */
#endif
uint32_t ho_delay_for_rx;
uint32_t min_delay_btw_roam_scans;
@@ -1863,16 +1738,9 @@ struct hdd_config {
uint32_t mawc_nlo_init_scan_interval;
uint32_t mawc_nlo_max_scan_interval;
bool enable_11d_in_world_mode;
bool enable_lprx;
#ifdef WLAN_FEATURE_SAE
bool is_sae_enabled;
#endif
bool gcmp_enabled;
bool is_11k_offload_supported;
bool action_oui_enable;
uint8_t action_oui_str[ACTION_OUI_MAXIMUM_ID][ACTION_OUI_MAX_STR_LEN];
uint8_t enable_tx_sch_delay;
uint32_t enable_secondary_rate;
bool is_unit_test_framework_enabled;
bool enable_ftopen;
bool roam_force_rssi_trigger;

View File

@@ -361,17 +361,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ENABLE_LFR_SUBNET_MAX),
#endif
#ifdef WLAN_FEATURE_TSF
#ifdef WLAN_FEATURE_TSF_PLUS
REG_VARIABLE(CFG_SET_TSF_PTP_OPT_NAME, WLAN_PARAM_HexInteger,
struct hdd_config, tsf_ptp_options,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SET_TSF_PTP_OPT_DEFAULT,
CFG_SET_TSF_PTP_OPT_MIN,
CFG_SET_TSF_PTP_OPT_MAX),
#endif /* WLAN_FEATURE_TSF_PLUS */
#endif
REG_VARIABLE(CFG_ROAM_HO_DELAY_FOR_RX_NAME,
WLAN_PARAM_Integer, struct hdd_config,
ho_delay_for_rx,
@@ -523,37 +512,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ENABLE_11D_IN_WORLD_MODE_MIN,
CFG_ENABLE_11D_IN_WORLD_MODE_MAX),
REG_VARIABLE(CFG_LPRx_NAME, WLAN_PARAM_Integer,
struct hdd_config, enable_lprx,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_LPRx_DEFAULT,
CFG_LPRx_MIN,
CFG_LPRx_MAX),
#ifdef WLAN_FEATURE_SAE
REG_VARIABLE(CFG_IS_SAE_ENABLED_NAME, WLAN_PARAM_Integer,
struct hdd_config, is_sae_enabled,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_IS_SAE_ENABLED_DEFAULT,
CFG_IS_SAE_ENABLED_MIN,
CFG_IS_SAE_ENABLED_MAX),
#endif
REG_VARIABLE(CFG_ENABLE_GCMP_NAME, WLAN_PARAM_Integer,
struct hdd_config, gcmp_enabled,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_GCMP_DEFAULT,
CFG_ENABLE_GCMP_MIN,
CFG_ENABLE_GCMP_MAX),
REG_VARIABLE(CFG_TX_SCH_DELAY_NAME,
WLAN_PARAM_Integer,
struct hdd_config, enable_tx_sch_delay,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_TX_SCH_DELAY_DEFAULT,
CFG_TX_SCH_DELAY_MIN,
CFG_TX_SCH_DELAY_MAX),
REG_VARIABLE(CFG_ENABLE_UNIT_TEST_FRAMEWORK_NAME,
WLAN_PARAM_Integer,
struct hdd_config, is_unit_test_framework_enabled,
@@ -569,14 +527,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ROAM_FT_OPEN_ENABLE_MIN,
CFG_ROAM_FT_OPEN_ENABLE_MAX),
REG_VARIABLE(CFG_ENABLE_SECONDARY_RATE_NAME,
WLAN_PARAM_HexInteger,
struct hdd_config, enable_secondary_rate,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_SECONDARY_RATE_DEFAULT,
CFG_ENABLE_SECONDARY_RATE_MIN,
CFG_ENABLE_SECONDARY_RATE_MAX),
REG_VARIABLE(CFG_ROAM_FORCE_RSSI_TRIGGER_NAME,
WLAN_PARAM_Integer, struct hdd_config,
roam_force_rssi_trigger,

View File

@@ -132,6 +132,7 @@
#include "cdp_txrx_cfg.h"
#include "wlan_hdd_object_manager.h"
#include "nan_ucfg_api.h"
#include "wlan_fwol_ucfg_api.h"
#define g_mode_rates_size (12)
#define a_mode_rates_size (8)
@@ -12601,8 +12602,14 @@ static void wlan_hdd_cfg80211_set_wiphy_scan_flags(struct wiphy *wiphy)
static void wlan_hdd_cfg80211_set_wiphy_sae_feature(struct wiphy *wiphy,
struct hdd_config *config)
{
if (config->is_sae_enabled)
wiphy->features |= NL80211_FEATURE_SAE;
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
bool sae_enable;
if (QDF_IS_STATUS_SUCCESS(ucfg_fwol_get_sae_enable(
hdd_ctx->psoc, &sae_enable))) {
if (sae_enable)
wiphy->features |= NL80211_FEATURE_SAE;
}
}
#else
static void wlan_hdd_cfg80211_set_wiphy_sae_feature(struct wiphy *wiphy,
@@ -12728,6 +12735,7 @@ int wlan_hdd_cfg80211_init(struct device *dev,
int num_dsrc_ch, len_dsrc_ch, num_srd_ch, len_srd_ch;
uint32_t *cipher_suites;
uint8_t allow_mcc_go_diff_bi = 0, enable_mcc = 0;
bool gcmp_enabled = false;
hdd_enter();
@@ -12861,7 +12869,11 @@ int wlan_hdd_cfg80211_init(struct device *dev,
}
/*Initialise the supported cipher suite details */
if (pCfg->gcmp_enabled) {
if (QDF_IS_STATUS_ERROR(ucfg_fwol_get_gcmp_enable(hdd_ctx->psoc,
&gcmp_enabled)))
hdd_err("Unable to get GCMP feature enable config param");
if (gcmp_enabled) {
cipher_suites = qdf_mem_malloc(sizeof(hdd_cipher_suites) +
sizeof(hdd_gcmp_cipher_suits));
if (!cipher_suites)

View File

@@ -4832,8 +4832,8 @@ int hdd_set_fw_params(struct hdd_adapter *adapter)
QDF_STATUS status;
struct hdd_context *hdd_ctx;
bool bval = false;
uint8_t max_amsdu_len;
uint32_t dtim_sel_diversity;
uint8_t max_amsdu_len, enable_tx_sch_delay;
uint32_t dtim_sel_diversity, enable_secondary_rate;
hdd_enter_dev(adapter->dev);
@@ -4846,9 +4846,13 @@ int hdd_set_fw_params(struct hdd_adapter *adapter)
return 0;
}
ret = sme_cli_set_command(adapter->session_id,
WMI_PDEV_PARAM_DTIM_SYNTH,
hdd_ctx->config->enable_lprx, PDEV_CMD);
ret = -1;
if (QDF_IS_STATUS_SUCCESS(ucfg_fwol_get_lprx_enable(hdd_ctx->psoc,
&bval))) {
ret = sme_cli_set_command(adapter->session_id,
WMI_PDEV_PARAM_DTIM_SYNTH,
bval, PDEV_CMD);
}
if (ret) {
hdd_err("Failed to set LPRx");
goto error;
@@ -4866,21 +4870,25 @@ int hdd_set_fw_params(struct hdd_adapter *adapter)
goto error;
}
ret = sme_cli_set_command(
adapter->session_id,
WMI_PDEV_PARAM_TX_SCH_DELAY,
hdd_ctx->config->enable_tx_sch_delay,
PDEV_CMD);
ret = -1;
if (QDF_IS_STATUS_SUCCESS(ucfg_fwol_get_enable_tx_sch_delay(
hdd_ctx->psoc, &enable_tx_sch_delay))) {
ret = sme_cli_set_command(adapter->session_id,
WMI_PDEV_PARAM_TX_SCH_DELAY,
enable_tx_sch_delay, PDEV_CMD);
}
if (ret) {
hdd_err("Failed to set WMI_PDEV_PARAM_TX_SCH_DELAY");
goto error;
}
ret = sme_cli_set_command(
adapter->session_id,
WMI_PDEV_PARAM_SECONDARY_RETRY_ENABLE,
hdd_ctx->config->enable_secondary_rate,
PDEV_CMD);
ret = -1;
if (QDF_IS_STATUS_SUCCESS(ucfg_fwol_get_enable_secondary_rate(
hdd_ctx->psoc, &enable_secondary_rate))) {
ret = sme_cli_set_command(adapter->session_id,
WMI_PDEV_PARAM_SECONDARY_RETRY_ENABLE,
enable_secondary_rate, PDEV_CMD);
}
if (ret) {
hdd_err("Failed to set WMI_PDEV_PARAM_SECONDARY_RETRY_ENABLE");
goto error;
@@ -11295,8 +11303,13 @@ int hdd_configure_cds(struct hdd_context *hdd_ctx)
if (0 != wlan_hdd_set_wow_pulse(hdd_ctx, true))
hdd_debug("Failed to set wow pulse");
bval = false;
if (QDF_IS_STATUS_ERROR(ucfg_fwol_get_gcmp_enable(hdd_ctx->psoc,
&bval)))
hdd_err("Unable to get GCMP enable config param");
sme_cli_set_command(0, WMI_PDEV_PARAM_GCMP_SUPPORT_ENABLE,
hdd_ctx->config->gcmp_enabled, PDEV_CMD);
bval, PDEV_CMD);
auto_power_fail_mode =
ucfg_pmo_get_auto_power_fail_mode(hdd_ctx->psoc);

View File

@@ -152,30 +152,46 @@ bool hdd_tsf_is_ptp_enabled(struct hdd_context *hdd)
bool hdd_tsf_is_tx_set(struct hdd_context *hdd)
{
return (hdd && (hdd->config) &&
((hdd->config->tsf_ptp_options)
& CFG_SET_TSF_PTP_OPT_TX));
uint32_t tsf_ptp_options;
if (hdd && QDF_IS_STATUS_SUCCESS(
ucfg_fwol_get_tsf_ptp_options(hdd->psoc, &tsf_ptp_options)))
return tsf_ptp_options & CFG_SET_TSF_PTP_OPT_TX;
else
return false;
}
bool hdd_tsf_is_rx_set(struct hdd_context *hdd)
{
return (hdd && (hdd->config) &&
((hdd->config->tsf_ptp_options)
& CFG_SET_TSF_PTP_OPT_RX));
uint32_t tsf_ptp_options;
if (hdd && QDF_IS_STATUS_SUCCESS(
ucfg_fwol_get_tsf_ptp_options(hdd->psoc, &tsf_ptp_options)))
return tsf_ptp_options & CFG_SET_TSF_PTP_OPT_RX;
else
return false;
}
bool hdd_tsf_is_raw_set(struct hdd_context *hdd)
{
return (hdd && (hdd->config) &&
((hdd->config->tsf_ptp_options)
& CFG_SET_TSF_PTP_OPT_RAW));
uint32_t tsf_ptp_options;
if (hdd && QDF_IS_STATUS_SUCCESS(
ucfg_fwol_get_tsf_ptp_options(hdd->psoc, &tsf_ptp_options)))
return tsf_ptp_options & CFG_SET_TSF_PTP_OPT_RAW;
else
return false;
}
bool hdd_tsf_is_dbg_fs_set(struct hdd_context *hdd)
{
return (hdd && (hdd->config) &&
((hdd->config->tsf_ptp_options)
& CFG_SET_TSF_DBG_FS));
uint32_t tsf_ptp_options;
if (hdd && QDF_IS_STATUS_SUCCESS(
ucfg_fwol_get_tsf_ptp_options(hdd->psoc, &tsf_ptp_options)))
return tsf_ptp_options & CFG_SET_TSF_DBG_FS;
else
return false;
}
#else