qcacld-3.0: Converge Powersave related ini items to MLME
Add basic infra to move the following Powersave related ini to MLME component: CFG_ENABLE_IMPS CFG_ENABLE_PS CFG_AUTO_PS_ENABLE_TIMER CFG_ICMP_DISABLE_PS CFG_BMPS_MINIMUM_LI CFG_BMPS_MAXIMUM_LI CFG_DTIM_SELECTION_DIVERSITY This change brings in mlme_init changes, mlme_public_struct.h changes and cfg_mlme file changes for power save parameters. Also remove the ini CFG_ICMP_DISABLE_PS_NAME as it is not used. Change-Id: Ifd74d276b12acc8cd9740c25ee3ca261ed7d0143 CRs-Fixed: 2356897
This commit is contained in:

committed by
nshrivas

parent
6701c03ab0
commit
f1f2db4791
@@ -1903,6 +1903,18 @@ static void mlme_init_fe_rrm_in_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mlme_init_powersave_params(struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct wlan_mlme_powersave *ps_cfg)
|
||||||
|
{
|
||||||
|
ps_cfg->is_imps_enabled = cfg_get(psoc, CFG_ENABLE_IMPS);
|
||||||
|
ps_cfg->is_bmps_enabled = cfg_get(psoc, CFG_ENABLE_PS);
|
||||||
|
ps_cfg->auto_bmps_timer_val = cfg_get(psoc, CFG_AUTO_BMPS_ENABLE_TIMER);
|
||||||
|
ps_cfg->bmps_min_listen_interval = cfg_get(psoc, CFG_BMPS_MINIMUM_LI);
|
||||||
|
ps_cfg->bmps_max_listen_interval = cfg_get(psoc, CFG_BMPS_MAXIMUM_LI);
|
||||||
|
ps_cfg->dtim_selection_diversity =
|
||||||
|
cfg_get(psoc, CFG_DTIM_SELECTION_DIVERSITY);
|
||||||
|
}
|
||||||
|
|
||||||
QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
struct wlan_mlme_psoc_obj *mlme_obj;
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
@@ -1933,6 +1945,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
|||||||
mlme_init_he_cap_in_cfg(psoc, mlme_cfg);
|
mlme_init_he_cap_in_cfg(psoc, mlme_cfg);
|
||||||
mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40);
|
mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40);
|
||||||
mlme_init_product_details_cfg(&mlme_cfg->product_details);
|
mlme_init_product_details_cfg(&mlme_cfg->product_details);
|
||||||
|
mlme_init_powersave_params(psoc, &mlme_cfg->ps_params);
|
||||||
mlme_init_sta_cfg(psoc, &mlme_cfg->sta);
|
mlme_init_sta_cfg(psoc, &mlme_cfg->sta);
|
||||||
mlme_init_twt_cfg(psoc, &mlme_cfg->twt_cfg);
|
mlme_init_twt_cfg(psoc, &mlme_cfg->twt_cfg);
|
||||||
mlme_init_lfr_cfg(psoc, &mlme_cfg->lfr);
|
mlme_init_lfr_cfg(psoc, &mlme_cfg->lfr);
|
||||||
|
@@ -43,6 +43,7 @@
|
|||||||
#include "cfg_mlme_sta.h"
|
#include "cfg_mlme_sta.h"
|
||||||
#include "cfg_sap_protection.h"
|
#include "cfg_sap_protection.h"
|
||||||
#include "cfg_mlme_fe_wmm.h"
|
#include "cfg_mlme_fe_wmm.h"
|
||||||
|
#include "cfg_mlme_powersave.h"
|
||||||
#include "cfg_mlme_sap.h"
|
#include "cfg_mlme_sap.h"
|
||||||
#include "cfg_mlme_twt.h"
|
#include "cfg_mlme_twt.h"
|
||||||
#include "cfg_mlme_scoring.h"
|
#include "cfg_mlme_scoring.h"
|
||||||
@@ -75,6 +76,7 @@
|
|||||||
CFG_NSS_CHAINS_ALL \
|
CFG_NSS_CHAINS_ALL \
|
||||||
CFG_OBSS_HT40_ALL \
|
CFG_OBSS_HT40_ALL \
|
||||||
CFG_OCE_ALL \
|
CFG_OCE_ALL \
|
||||||
|
CFG_POWERSAVE_ALL \
|
||||||
CFG_QOS_ALL \
|
CFG_QOS_ALL \
|
||||||
CFG_RATES_ALL \
|
CFG_RATES_ALL \
|
||||||
CFG_WMM_PARAMS_ALL\
|
CFG_WMM_PARAMS_ALL\
|
||||||
|
176
mlme/dispatcher/inc/cfg_mlme_powersave.h
Normal file
176
mlme/dispatcher/inc/cfg_mlme_powersave.h
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
|
* above copyright notice and this permission notice appear in all
|
||||||
|
* copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||||
|
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||||
|
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||||
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DOC: This file contains centralized definitions of power save related
|
||||||
|
* converged configurations.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CFG_MLME_POWERSAVE_H
|
||||||
|
#define __CFG_MLME_POWERSAVE_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableImps - Enable/Disable IMPS
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
* This ini is used to enable/Disable IMPS(IdleModePowerSave) Mode
|
||||||
|
*
|
||||||
|
* Related: None
|
||||||
|
*
|
||||||
|
* Supported Feature: Power Save
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_ENABLE_IMPS CFG_INI_BOOL( \
|
||||||
|
"gEnableImps", \
|
||||||
|
1,\
|
||||||
|
"Enable/disable IMPS")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableBmps - Enable/Disable BMPS
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
* This ini is used to enable/Disable BMPS(BeaconModePowerSave) Mode
|
||||||
|
*
|
||||||
|
* Related: None
|
||||||
|
*
|
||||||
|
* Supported Feature: Power Save
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_ENABLE_PS CFG_INI_BOOL( \
|
||||||
|
"gEnableBmps", \
|
||||||
|
1,\
|
||||||
|
"Enable/disable BMPS")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gAutoBmpsTimerValue - Set Auto BMPS Timer value
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 120
|
||||||
|
* @Default: 90
|
||||||
|
*
|
||||||
|
* This ini is used to set Auto BMPS Timer value in seconds
|
||||||
|
*
|
||||||
|
* Related: gEnableBmps
|
||||||
|
*
|
||||||
|
* Supported Feature: Power Save
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_AUTO_BMPS_ENABLE_TIMER CFG_INI_UINT( \
|
||||||
|
"gAutoBmpsTimerValue", \
|
||||||
|
0, \
|
||||||
|
120, \
|
||||||
|
90, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Auto BMPS Timer value")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gBmpsMinListenInterval - Set BMPS Minimum Listen Interval
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 65535
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
* This ini is used to set BMPS Minimum Listen Interval. If gPowerUsage
|
||||||
|
* is set "Min", this INI need to be set.
|
||||||
|
*
|
||||||
|
* Related: gEnableBmps, gPowerUsage
|
||||||
|
*
|
||||||
|
* Supported Feature: Power Save
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_BMPS_MINIMUM_LI CFG_INI_UINT( \
|
||||||
|
"gBmpsMinListenInterval", \
|
||||||
|
1, \
|
||||||
|
65535, \
|
||||||
|
1, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"BMPS Minimum Listen Interval")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gBmpsMaxListenInterval - Set BMPS Maximum Listen Interval
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 65535
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
* This ini is used to set BMPS Maximum Listen Interval. If gPowerUsage
|
||||||
|
* is set "Max", this INI need to be set.
|
||||||
|
*
|
||||||
|
* Related: gEnableBmps, gPowerUsage
|
||||||
|
*
|
||||||
|
* Supported Feature: Power Save
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_BMPS_MAXIMUM_LI CFG_INI_UINT( \
|
||||||
|
"gBmpsMaxListenInterval", \
|
||||||
|
1, \
|
||||||
|
65535, \
|
||||||
|
1, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"BMPS Maximum Listen Interval")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableDTIMSelectionDiversity - Enable/Disable chain
|
||||||
|
* selection optimization for one chain dtim
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 30
|
||||||
|
* @Default: 5
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_DTIM_SELECTION_DIVERSITY CFG_INI_UINT( \
|
||||||
|
"gEnableDTIMSelectionDiversity", \
|
||||||
|
0, \
|
||||||
|
30, \
|
||||||
|
5, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Chain selection diversity value")
|
||||||
|
|
||||||
|
#define CFG_POWERSAVE_ALL \
|
||||||
|
CFG(CFG_ENABLE_IMPS) \
|
||||||
|
CFG(CFG_ENABLE_PS) \
|
||||||
|
CFG(CFG_AUTO_BMPS_ENABLE_TIMER) \
|
||||||
|
CFG(CFG_BMPS_MINIMUM_LI) \
|
||||||
|
CFG(CFG_BMPS_MAXIMUM_LI) \
|
||||||
|
CFG(CFG_DTIM_SELECTION_DIVERSITY)
|
||||||
|
|
||||||
|
#endif /* __CFG_MLME_POWERSAVE_H */
|
@@ -598,10 +598,13 @@ struct wlan_mlme_dfs_cfg {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wlan_mlme_mbo - Multiband Operation related ini configs
|
* struct wlan_mlme_mbo - Multiband Operation related ini configs
|
||||||
* @mbo_candidate_rssi_thres:
|
* @mbo_candidate_rssi_thres: candidate AP's min rssi to accept it
|
||||||
* @mbo_current_rssi_thres:
|
* @mbo_current_rssi_thres: Connected AP's rssi threshold below which
|
||||||
* @mbo_current_rssi_mcc_thres:
|
* transition is considered
|
||||||
* @mbo_candidate_rssi_btc_thres:
|
* @mbo_current_rssi_mcc_thres: connected AP's RSSI threshold value to prefer
|
||||||
|
* against MCC
|
||||||
|
* @mbo_candidate_rssi_btc_thres: Candidate AP's minimum RSSI threshold to
|
||||||
|
* prefer it even in BT coex.
|
||||||
*/
|
*/
|
||||||
struct wlan_mlme_mbo {
|
struct wlan_mlme_mbo {
|
||||||
int8_t mbo_candidate_rssi_thres;
|
int8_t mbo_candidate_rssi_thres;
|
||||||
@@ -610,6 +613,24 @@ struct wlan_mlme_mbo {
|
|||||||
int8_t mbo_candidate_rssi_btc_thres;
|
int8_t mbo_candidate_rssi_btc_thres;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct wlan_mlme_powersave - Powersave related ini configs
|
||||||
|
* @is_imps_enabled: flag to enable/disable IMPS
|
||||||
|
* @is_bmps_enabled: flag to enable/disable BMPS
|
||||||
|
* @auto_bmps_timer: auto BMPS timer value
|
||||||
|
* @bmps_min_listen_interval: BMPS listen inteval minimum value
|
||||||
|
* @bmps_max_listen_interval: BMPS listen interval maximum value
|
||||||
|
* @dtim_selection_diversity: dtim selection diversity value to be sent to fw
|
||||||
|
*/
|
||||||
|
struct wlan_mlme_powersave {
|
||||||
|
bool is_imps_enabled;
|
||||||
|
bool is_bmps_enabled;
|
||||||
|
uint32_t auto_bmps_timer_val;
|
||||||
|
uint32_t bmps_min_listen_interval;
|
||||||
|
uint32_t bmps_max_listen_interval;
|
||||||
|
uint32_t dtim_selection_diversity;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wlan_mlme_vht_caps - MLME VHT config items
|
* struct wlan_mlme_vht_caps - MLME VHT config items
|
||||||
* @supp_chan_width: Supported Channel Width
|
* @supp_chan_width: Supported Channel Width
|
||||||
@@ -1753,6 +1774,7 @@ struct wlan_mlme_fe_rrm {
|
|||||||
* @wlan_mlme_power: power related items
|
* @wlan_mlme_power: power related items
|
||||||
* @acs: ACS related CFG items
|
* @acs: ACS related CFG items
|
||||||
* @feature_flags: Feature flag config items
|
* @feature_flags: Feature flag config items
|
||||||
|
* @ps_params: Powersave related ini configs
|
||||||
* @wep_params: WEP related config items
|
* @wep_params: WEP related config items
|
||||||
* @wifi_pos_cfg: WIFI POS config
|
* @wifi_pos_cfg: WIFI POS config
|
||||||
* @wmm_params: WMM related CFG & INI Items
|
* @wmm_params: WMM related CFG & INI Items
|
||||||
@@ -1789,6 +1811,7 @@ struct wlan_mlme_cfg {
|
|||||||
struct wlan_mlme_power power;
|
struct wlan_mlme_power power;
|
||||||
struct wlan_mlme_acs acs;
|
struct wlan_mlme_acs acs;
|
||||||
struct wlan_mlme_feature_flag feature_flags;
|
struct wlan_mlme_feature_flag feature_flags;
|
||||||
|
struct wlan_mlme_powersave ps_params;
|
||||||
struct wlan_mlme_wep_cfg wep_params;
|
struct wlan_mlme_wep_cfg wep_params;
|
||||||
struct wlan_mlme_wifi_pos_cfg wifi_pos_cfg;
|
struct wlan_mlme_wifi_pos_cfg wifi_pos_cfg;
|
||||||
struct wlan_mlme_wmm_params wmm_params;
|
struct wlan_mlme_wmm_params wmm_params;
|
||||||
|
Reference in New Issue
Block a user