qcacld-3.0: Add the Full Power Down feature support

Add the support for the feature of Full Power Down while
in low power mode.
For this feature, it need to power down wlan chip when
suspend, and power up wlan chip when resume, so need to
change to call wlan driver shutdown and then power off the
wlan chip instead of calling wlan driver suspend when do
suspend, and changing to do power on wlan chip, download
wlan firmware, and calling wlan driver reinit instead of
calling wlan driver resume when do resume.

Change-Id: I293647175c151da0fd6628345f98ea65c83b1bb3
CRs-Fixed: 3061366
This commit is contained in:
Ke Huang
2021-10-25 17:07:18 +08:00
committed by Gerrit - the friendly Code Review server
parent ba6acfde12
commit b43015863f
13 changed files with 215 additions and 8 deletions

View File

@@ -340,13 +340,14 @@
* <ini>
* gSuspendMode - Suspend mode configuration
* @Min: 0
* @Max: 2
* @Max: 3
* @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.
* 3 - Full power down while suspend.
*
* Related: None
*
@@ -357,7 +358,7 @@
* </ini>
*/
#define CFG_PMO_SUSPEND_MODE CFG_INI_UINT("gSuspendMode", \
0, 2, 2, \
0, 3, 2, \
CFG_VALUE_OR_DEFAULT, \
"Suspend mode")

View File

@@ -175,11 +175,13 @@ enum powersave_mode {
* @PMO_SUSPEND_NONE: Does not support suspend
* @PMO_SUSPEND_LEGENCY: Legency PDEV suspend mode
* @PMO_SUSPEND_WOW: WoW suspend mode
* @PMO_FULL_POWER_DOWN: Full power down while suspend
*/
enum pmo_suspend_mode {
PMO_SUSPEND_NONE = 0,
PMO_SUSPEND_LEGENCY,
PMO_SUSPEND_WOW
PMO_SUSPEND_WOW,
PMO_FULL_POWER_DOWN
};
#define PMO_TARGET_SUSPEND_TIMEOUT (4000)