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:
Varun Reddy Yeturu
2017-09-06 13:31:40 -07:00
işlemeyi yapan: snandini
ebeveyn 901d35302d
işleme bba32e9055
3 değiştirilmiş dosya ile 137 ekleme ve 0 silme

Dosyayı Görüntüle

@@ -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 */

Dosyayı Görüntüle

@@ -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

Dosyayı Görüntüle

@@ -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