qcacld-3.0: Add new ini to config suspend mode
Sometimes we need PDEV suspend mode, WMI_PDEV_SUSPEND_CMDID and WMI_PDEV_RESUME_CMDID. But currently design, only support WoW suspend or not support two choices. And, there are two confused ini configuration, gDisableWow and gEnableWoW. 1. Add new ini gSuspendMode to set suspend mode. Default 2. 0, does not support suspend 1, legency pdev suspend mode 2, WoW suspend mode 2. Clean gDisableWow. It is replaced by gSuspendMode=0. HDD suspend/resume function get the value by new API ucfg_pmo_get_suspend_mode(). Change-Id: Icbeef3df6879ca2054f64e0292e9b9469c4936d4 CRs-fixed: 2940788
此提交包含在:
@@ -334,6 +334,31 @@
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Enable WoW Support")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gSuspendMode - Suspend mode configuration
|
||||
* @Min: 0
|
||||
* @Max: 2
|
||||
* @Default: 2
|
||||
*
|
||||
* This ini is used to set suspend mode. Configurations are as follows:
|
||||
* 0 - Does not support suspend.
|
||||
* 1 - Legency suspend mode, PDEV suspend.
|
||||
* 2 - WOW suspend mode.
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: Power Save
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_PMO_SUSPEND_MODE CFG_INI_UINT("gSuspendMode", \
|
||||
0, 2, 2, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Suspend mode")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gActiveModeOffload - Active offload mode configuration
|
||||
@@ -535,6 +560,7 @@
|
||||
CFG(CFG_PMO_POWERSAVE_MODE) \
|
||||
CFG(CFG_PMO_MAX_PS_POLL) \
|
||||
CFG(CFG_PMO_WOW_ENABLE) \
|
||||
CFG(CFG_PMO_SUSPEND_MODE) \
|
||||
CFG(CFG_PMO_ACTIVE_MODE) \
|
||||
CFG(CFG_PMO_PWR_FAILURE) \
|
||||
CFG(CFG_PMO_WOW_DATA_INACTIVITY_TIMEOUT) \
|
||||
|
@@ -167,6 +167,18 @@ enum powersave_mode {
|
||||
PMO_PS_ADVANCED_POWER_SAVE_ENABLE = 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum pmo_suspend_mode - suspend_mode
|
||||
* @PMO_SUSPEND_NONE: Does not support suspend
|
||||
* @PMO_SUSPEND_LEGENCY: Legency PDEV suspend mode
|
||||
* @PMO_SUSPEND_WOW: WoW suspend mode
|
||||
*/
|
||||
enum pmo_suspend_mode {
|
||||
PMO_SUSPEND_NONE = 0,
|
||||
PMO_SUSPEND_LEGENCY,
|
||||
PMO_SUSPEND_WOW
|
||||
};
|
||||
|
||||
#define PMO_TARGET_SUSPEND_TIMEOUT (4000)
|
||||
#define PMO_WAKE_LOCK_TIMEOUT 1000
|
||||
#define PMO_RESUME_TIMEOUT (4000)
|
||||
@@ -299,6 +311,7 @@ enum pmo_gpio_wakeup_mode {
|
||||
* @sta_forced_dtim: station forced DTIM value
|
||||
* @wow_enable: enable wow with majic pattern match or pattern byte match
|
||||
* @power_save_mode: power save mode for psoc
|
||||
* @suspend_mode: suspend mode for psoc
|
||||
* @runtime_pm_delay: set runtime pm's inactivity timer
|
||||
* @extwow_goto_suspend: true when extended WoW enabled else false
|
||||
* @extwow_app1_wakeup_pin_num: set wakeup1 PIN number
|
||||
@@ -363,6 +376,7 @@ struct pmo_psoc_cfg {
|
||||
enum pmo_wow_enable_type wow_enable;
|
||||
enum powersave_mode power_save_mode;
|
||||
enum powersave_mode default_power_save_mode;
|
||||
enum pmo_suspend_mode suspend_mode;
|
||||
#ifdef FEATURE_RUNTIME_PM
|
||||
uint32_t runtime_pm_delay;
|
||||
#endif
|
||||
|
@@ -2135,6 +2135,15 @@ ucfg_pmo_get_sap_mode_bus_suspend(struct wlan_objmgr_psoc *psoc);
|
||||
bool
|
||||
ucfg_pmo_get_go_mode_bus_suspend(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_pmo_get_suspend_mode - Return pmo_suspend_mode value to caller
|
||||
* @psoc: Pointer to psoc object
|
||||
*
|
||||
* Return: The value of suspend_mode as stored in CFG
|
||||
*/
|
||||
enum pmo_suspend_mode
|
||||
ucfg_pmo_get_suspend_mode(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
#ifdef SYSTEM_PM_CHECK
|
||||
/**
|
||||
* ucfg_pmo_notify_system_resume() - system resume notification to pmo
|
||||
|
新增問題並參考
封鎖使用者