qcacld-3.0: Introduce configuration parameters for NLO MAWC
Introduce the below WCNSS_qcom_cfg.ini configuration parameters to MAWC based NLO. mawc_nlo_enabled mawc_nlo_exp_backoff_ratio mawc_nlo_init_scan_interval mawc_nlo_max_scan_interval CRs-Fixed: 2081413 Change-Id: I7a9dbca080fb262750b420ca7265bc9583029271
Bu işleme şunda yer alıyor:

işlemeyi yapan:
snandini

ebeveyn
901d35302d
işleme
bba32e9055
@@ -11478,6 +11478,92 @@ enum l1ss_sleep_allowed {
|
||||
#define CFG_SCAN_BACKOFF_MULTIPLIER_MAX (255)
|
||||
#define CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* mawc_nlo_enabled - For NLO/PNO, enable MAWC based scan
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* Enable/Disable the Motion Aided Wireless Connectivity
|
||||
* based NLO using this parameter
|
||||
*
|
||||
* Related: NLO, PNO
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_MAWC_NLO_ENABLED_NAME "mawc_nlo_enabled"
|
||||
#define CFG_MAWC_NLO_ENABLED_MIN (0)
|
||||
#define CFG_MAWC_NLO_ENABLED_MAX (1)
|
||||
#define CFG_MAWC_NLO_ENABLED_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* mawc_nlo_exp_backoff_ratio - Exponential back off ratio
|
||||
* @Min: 0
|
||||
* @Max: 300
|
||||
* @Default: 3
|
||||
*
|
||||
* Configure the exponential back off ratio using this
|
||||
* parameter for MAWC based NLO
|
||||
* ratio of exponential backoff, next = current + current*ratio/100
|
||||
*
|
||||
* Related: NLO, PNO
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME "mawc_nlo_exp_backoff_ratio"
|
||||
#define CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MIN (0)
|
||||
#define CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MAX (300)
|
||||
#define CFG_MAWC_NLO_EXP_BACKOFF_RATIO_DEFAULT (3)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* mawc_nlo_init_scan_interval - Initial Scan Interval
|
||||
* @Min: 1000
|
||||
* @Max: 0xFFFFFFFF
|
||||
* @Default: 10000
|
||||
*
|
||||
* Configure the initial scan interval using this
|
||||
* parameter for MAWC based NLO (Units in Milliseconds)
|
||||
*
|
||||
* Related: NLO, PNO
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME "mawc_nlo_init_scan_interval"
|
||||
#define CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MIN (1000)
|
||||
#define CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MAX (0xFFFFFFFF)
|
||||
#define CFG_MAWC_NLO_INIT_SCAN_INTERVAL_DEFAULT (10000)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* mawc_nlo_max_scan_interval - Maximum Scan Interval
|
||||
* @Min: 1000
|
||||
* @Max: 0xFFFFFFFF
|
||||
* @Default: 60000
|
||||
*
|
||||
* Configure the maximum scan interval using this
|
||||
* parameter for MAWC based NLO (Units in Milliseconds)
|
||||
*
|
||||
* Related: NLO, PNO
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME "mawc_nlo_max_scan_interval"
|
||||
#define CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MIN (1000)
|
||||
#define CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MAX (0xFFFFFFFF)
|
||||
#define CFG_MAWC_NLO_MAX_SCAN_INTERVAL_DEFAULT (60000)
|
||||
|
||||
|
||||
/*
|
||||
* enum hdd_external_acs_policy - External ACS policy
|
||||
* @HDD_EXTERNAL_ACS_PCL_PREFERRED -Preferable for ACS to select a
|
||||
@@ -12623,6 +12709,10 @@ struct hdd_config {
|
||||
uint32_t timer_multiplier;
|
||||
uint8_t fils_max_chan_guard_time;
|
||||
uint8_t scan_backoff_multiplier;
|
||||
bool mawc_nlo_enabled;
|
||||
uint32_t mawc_nlo_exp_backoff_ratio;
|
||||
uint32_t mawc_nlo_init_scan_interval;
|
||||
uint32_t mawc_nlo_max_scan_interval;
|
||||
enum hdd_external_acs_policy external_acs_policy;
|
||||
enum hdd_external_acs_freq_band external_acs_freq_band;
|
||||
/* threshold of packet drops at which FW initiates disconnect */
|
||||
|
@@ -4599,6 +4599,35 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
|
||||
CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_MAWC_NLO_ENABLED_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, mawc_nlo_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_MAWC_NLO_ENABLED_DEFAULT,
|
||||
CFG_MAWC_NLO_ENABLED_MIN,
|
||||
CFG_MAWC_NLO_ENABLED_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, mawc_nlo_exp_backoff_ratio,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_MAWC_NLO_EXP_BACKOFF_RATIO_DEFAULT,
|
||||
CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MIN,
|
||||
CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, mawc_nlo_init_scan_interval,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_MAWC_NLO_INIT_SCAN_INTERVAL_DEFAULT,
|
||||
CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MIN,
|
||||
CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, mawc_nlo_max_scan_interval,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_MAWC_NLO_MAX_SCAN_INTERVAL_DEFAULT,
|
||||
CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MIN,
|
||||
CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MAX),
|
||||
|
||||
|
||||
REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
|
||||
struct hdd_config, external_acs_policy,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
@@ -5875,6 +5904,18 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
|
||||
hdd_ctx->config->fhostArpOffload);
|
||||
hdd_debug("Name = [%s] Value = [%u]",
|
||||
CFG_HW_FILTER_MODE_NAME, hdd_ctx->config->hw_filter_mode);
|
||||
hdd_debug("Name = [%s] Value = [%u]",
|
||||
CFG_MAWC_NLO_ENABLED_NAME,
|
||||
hdd_ctx->config->mawc_nlo_enabled);
|
||||
hdd_debug("Name = [%s] Value = [%u]",
|
||||
CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME,
|
||||
hdd_ctx->config->mawc_nlo_exp_backoff_ratio);
|
||||
hdd_debug("Name = [%s] Value = [%u]",
|
||||
CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME,
|
||||
hdd_ctx->config->mawc_nlo_init_scan_interval);
|
||||
hdd_debug("Name = [%s] Value = [%u]",
|
||||
CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME,
|
||||
hdd_ctx->config->mawc_nlo_max_scan_interval);
|
||||
hdd_debug("Name = [ssdp] Value = [%u] ", hdd_ctx->config->ssdp);
|
||||
hdd_cfg_print_runtime_pm(hdd_ctx);
|
||||
#ifdef FEATURE_WLAN_RA_FILTERING
|
||||
|
@@ -11779,12 +11779,18 @@ static int hdd_update_pmo_config(struct hdd_context *hdd_ctx)
|
||||
static inline void hdd_update_pno_config(struct pno_user_cfg *pno_cfg,
|
||||
struct hdd_config *cfg)
|
||||
{
|
||||
struct nlo_mawc_params *mawc_cfg = &pno_cfg->mawc_params;
|
||||
|
||||
pno_cfg->channel_prediction = cfg->pno_channel_prediction;
|
||||
pno_cfg->top_k_num_of_channels = cfg->top_k_num_of_channels;
|
||||
pno_cfg->stationary_thresh = cfg->stationary_thresh;
|
||||
pno_cfg->adaptive_dwell_mode = cfg->adaptive_dwell_mode_enabled;
|
||||
pno_cfg->channel_prediction_full_scan =
|
||||
cfg->channel_prediction_full_scan;
|
||||
mawc_cfg->enable = cfg->MAWCEnabled && cfg->mawc_nlo_enabled;
|
||||
mawc_cfg->exp_backoff_ratio = cfg->mawc_nlo_exp_backoff_ratio;
|
||||
mawc_cfg->init_scan_interval = cfg->mawc_nlo_init_scan_interval;
|
||||
mawc_cfg->max_scan_interval = cfg->mawc_nlo_max_scan_interval;
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle