qcacld-3.0: Shutdown WLAN in system suspend prepare

This re-introduces the orignal patch which shutdowns WLAN in system
suspend prepare.

Orignal patch Id1f5172a7fc1792c83c8c1c20127de815f7e4980 is reverted by
Ic82db9dc0ca9d6686df99926335af27abc61cdb5 for deadlock issue.

However, deadlock between cnss_pm_notify and unregister_pm_notifier is
not caused by Id1f5172a7fc1792c83c8c1c20127de815f7e4980. So restore it
and add flag to enable/disable feature shutdown wlan in system suspend.

Deadlock issue is caused by "up_write(&cnss_pm_sem) is invoked before
down_write(&cnss_pm_sem) in function cnss_pm_notify". The issue can be
fixed by changes I533c373b85f554fbcceb562d9f56c6b88e5155bb and
I7768fdbeb1fa8cd6ef3b260eb0aafb231aeed324.

Change-Id: I25e4398a8d3b1a52cf7bc554af74d123ec797c6e
CRs-Fixed: 3287742
This commit is contained in:
Yu Ouyang
2022-09-09 16:56:23 +08:00
committed by Madan Koyyalamudi
parent 8fa3cbbba8
commit 85f34a3bb9
5 changed files with 85 additions and 3 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 - Shutdown wlan 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,7 +175,7 @@ enum powersave_mode {
* @PMO_SUSPEND_NONE: Does not support suspend
* @PMO_SUSPEND_LEGENCY: Legency PDEV suspend mode
* @PMO_SUSPEND_WOW: WoW suspend mode
* @PMO_SUSPEND_SHUTDOWN: shutdown while suspend mode
* @PMO_SUSPEND_SHUTDOWN: Shutdown suspend mode. Shutdown while suspend
*/
enum pmo_suspend_mode {
PMO_SUSPEND_NONE = 0,