qcacld-3.0: Register action frames for wake up during runtime PM

Currently the bitmap of action frames that can wake up the host
during suspend is sent via the wmi command
WMI_WOW_SET_ACTION_WAKE_UP_CMDID. This bitmap doesn't include
RRM action frames so currently the host doesn't wake up for rrm
action frames when in suspend mode.

Selectively enable wake up for rrm action frames during runtime PM
alone. Don't enable host wake up during normal suspend as it will
consume more power.

Change-Id: I097596118c2888fc9ea24802e4dbe69d02c5c5f7
CRs-Fixed: 2507185
This commit is contained in:
Pragaspathi Thilagaraj
2019-08-21 14:17:48 +05:30
committed by nshrivas
parent dee2b1f3d3
commit b40c260f17
8 changed files with 134 additions and 17 deletions

View File

@@ -405,6 +405,28 @@ ucfg_pmo_ns_addr_scope(uint32_t ipv6_scope);
*/
QDF_STATUS ucfg_pmo_enable_hw_filter_in_fwr(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_pmo_enable_action_frame_patterns() - enable the action frame wake up
* patterns as part of the enable host offloads.
* @vdev: objmgr vdev to configure
* @suspend_type: Suspend type. Runtime PM or System Suspend mode
*
* Return: QDF_STATUS
*/
QDF_STATUS
ucfg_pmo_enable_action_frame_patterns(struct wlan_objmgr_vdev *vdev,
enum qdf_suspend_type suspend_type);
/**
* ucfg_pmo_disable_action_frame_patterns() - Reset the action frame wake up
* patterns as a part of suspend resume.
* @vdev: objmgr vdev to configure
*
* Return: QDF_STATUS
*/
QDF_STATUS
ucfg_pmo_disable_action_frame_patterns(struct wlan_objmgr_vdev *vdev);
/**
* ucfg_pmo_disable_hw_filter_in_fwr() - disable previously configured hw filter
* @vdev: objmgr vdev to configure

View File

@@ -96,16 +96,16 @@
* PMO_ACTION_VHT 21 1
* ----------------------------+------+-------+
*/
#define ALLOWED_ACTION_FRAMES_BITMAP0 \
((1 << PMO_MAC_ACTION_SPECTRUM_MGMT) | \
(1 << PMO_MAC_ACTION_QOS_MGMT) | \
(1 << PMO_MAC_ACTION_PUBLIC_USAGE) | \
(1 << PMO_MAC_ACTION_SA_QUERY) | \
(1 << PMO_MAC_ACTION_PROT_DUAL_PUB) | \
(1 << PMO_MAC_ACTION_WNM) | \
(1 << PMO_MAC_ACTION_WME) | \
(1 << PMO_MAC_ACTION_FST) | \
(1 << PMO_MAC_ACTION_VHT))
#define SYSTEM_SUSPEND_ALLOWED_ACTION_FRAMES_BITMAP0 \
((1 << PMO_MAC_ACTION_SPECTRUM_MGMT) | \
(1 << PMO_MAC_ACTION_QOS_MGMT) | \
(1 << PMO_MAC_ACTION_PUBLIC_USAGE) | \
(1 << PMO_MAC_ACTION_SA_QUERY) | \
(1 << PMO_MAC_ACTION_PROT_DUAL_PUB) | \
(1 << PMO_MAC_ACTION_WNM) | \
(1 << PMO_MAC_ACTION_WME) | \
(1 << PMO_MAC_ACTION_FST) | \
(1 << PMO_MAC_ACTION_VHT))
#define ALLOWED_ACTION_FRAMES_BITMAP1 0x0
#define ALLOWED_ACTION_FRAMES_BITMAP2 0x0
@@ -117,6 +117,18 @@
#define ALLOWED_ACTION_FRAME_MAP_WORDS (PMO_MAC_ACTION_MAX / 32)
#define RUNTIME_PM_ALLOWED_ACTION_FRAMES_BITMAP0 \
((1 << PMO_MAC_ACTION_SPECTRUM_MGMT) | \
(1 << PMO_MAC_ACTION_QOS_MGMT) | \
(1 << PMO_MAC_ACTION_PUBLIC_USAGE) | \
(1 << PMO_MAC_ACTION_RRM) | \
(1 << PMO_MAC_ACTION_SA_QUERY) | \
(1 << PMO_MAC_ACTION_PROT_DUAL_PUB) | \
(1 << PMO_MAC_ACTION_WNM) | \
(1 << PMO_MAC_ACTION_WME) | \
(1 << PMO_MAC_ACTION_FST) | \
(1 << PMO_MAC_ACTION_VHT))
/* Public Action for 20/40 BSS Coexistence */
#define PMO_MAC_ACTION_MEASUREMENT_PILOT 7