qcacld-3.0: Add User defined OPM and g_wow_spec_wake_interval INI

Pass g_wow_spec_wake_interval along with g_wow_data_inactivity_timeout
to firmware through WMI which are used in WOW mode. These configs are
honored by firmware when User defined OPM is set.

Change-Id: I24306e8aa0b7b3f7fce9453f6a98d4922b7c3f62
CRs-Fixed: 3567042
This commit is contained in:
Vishal Miskin
2023-06-26 18:39:30 +05:30
committed by Rahul Choudhary
parent adf275a6c6
commit 6a7f372d75
7 changed files with 61 additions and 9 deletions

View File

@@ -250,13 +250,14 @@
* <ini>
* gOptimizedPowerManagement - Optimized Power Management
* @Min: 0
* @Max: 1
* @Max: 2
* @Default: 1
*
* This ini is used to set Optimized Power Management configuration:
* Current values of gOptimizedPowerManagement:
* 0 -> Disable optimized power management
* 1 -> Enable optimized power management
* 2 -> User Defined
*
* Related: None
*
@@ -269,7 +270,7 @@
#define CFG_PMO_POWERSAVE_MODE CFG_INI_UINT( \
"gOptimizedPowerManagement", \
0, \
1, \
2, \
1, \
CFG_VALUE_OR_DEFAULT, \
"Optimized Power Management")
@@ -472,7 +473,8 @@
* @Max: 255
* @Default: 50
*
* This ini is used to set data inactivity timeout in wow mode.
* This ini is used to set data inactivity timeout in wow mode and
* the value is honored in firmware when User defined OPM is set
*
* Supported Feature: inactivity timeout in wow mode
*
@@ -487,6 +489,29 @@
50, \
CFG_VALUE_OR_DEFAULT, \
"Data activity timeout in wow mode")
/*
* <ini>
* g_wow_spec_wake_interval - OPM Speculative wake interval in wow mode.
* @Min: 0
* @Max: 255
* @Default: 0
*
* This ini is used to set OPM speculative wake interval in wow mode and
* the value is honored in firmware when User defined OPM is set
*
* Supported Feature: OPM Speculative wake interval in wow mode
*
* Usage: External
*
* </ini>
*/
#define CFG_PMO_WOW_SPEC_WAKE_INTERVAL CFG_INI_UINT( \
"g_wow_spec_wake_interval", \
0, \
255, \
0, \
CFG_VALUE_OR_DEFAULT, \
"Speculative wake interval in wow mode")
/*
* <ini>
* gRArateLimitInterval - RA rate limit interval
@@ -757,6 +782,7 @@
CFG(CFG_PMO_ACTIVE_MODE) \
CFG(CFG_PMO_PWR_FAILURE) \
CFG(CFG_PMO_WOW_DATA_INACTIVITY_TIMEOUT) \
CFG(CFG_PMO_WOW_SPEC_WAKE_INTERVAL) \
CFG(CFG_RA_RATE_LIMIT_INTERVAL) \
CFG(CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND) \
CFG(CFG_ENABLE_BUS_SUSPEND_IN_SAP_MODE) \

View File

@@ -102,6 +102,7 @@ enum pmo_beacon_dtim_policy {
* @pmo_sta_ps_param_advanced_power_max_tx_before_wake: Number of TX frames
* before the entering the Active state
* @pmo_sta_ps_param_ito_repeat_count: Indicates ito repeated count
* @pmo_sta_ps_param_spec_wake_interval: OPM speculative wake interval
*/
enum pmo_sta_powersave_param {
pmo_sta_ps_param_rx_wake_policy = 0,
@@ -113,6 +114,7 @@ enum pmo_sta_powersave_param {
pmo_sta_ps_enable_advanced_power = 6,
pmo_sta_ps_param_advanced_power_max_tx_before_wake = 7,
pmo_sta_ps_param_ito_repeat_count = 8,
pmo_sta_ps_param_spec_wake_interval = 9,
};
/**
@@ -167,10 +169,12 @@ enum pmo_wow_enable_type {
* enum powersave_mode - powersave_mode
* @PMO_PS_ADVANCED_POWER_SAVE_DISABLE: Disable advanced power save mode
* @PMO_PS_ADVANCED_POWER_SAVE_ENABLE: Enable power save mode
* @PMO_PS_ADVANCED_POWER_SAVE_USER_DEFINED: User Defined
*/
enum powersave_mode {
PMO_PS_ADVANCED_POWER_SAVE_DISABLE = 0,
PMO_PS_ADVANCED_POWER_SAVE_ENABLE = 1
PMO_PS_ADVANCED_POWER_SAVE_ENABLE = 1,
PMO_PS_ADVANCED_POWER_SAVE_USER_DEFINED = 2
};
/**
@@ -380,6 +384,7 @@ struct pmo_icmp_offload {
* @enable_sap_suspend: enable SoftAP suspend
* @wow_data_inactivity_timeout: power save wow data inactivity timeout
* wow mode
* @wow_spec_wake_interval: OPM speculatvie wkae interval in wow mode
* @active_uc_apf_mode: Setting that determines how APF is applied in active
* mode for uc packets
* @active_mc_bc_apf_mode: Setting that determines how APF is applied in
@@ -465,6 +470,7 @@ struct pmo_psoc_cfg {
#endif
bool enable_sap_suspend;
uint8_t wow_data_inactivity_timeout;
uint8_t wow_spec_wake_interval;
enum active_apf_mode active_uc_apf_mode;
enum active_apf_mode active_mc_bc_apf_mode;
uint8_t ito_repeat_count;