qcacmn: Register pmo handler for twt

Register pmo handler for twt to prevent WMI from
crashing due to concurrent WMI_WOW_ENABLE_CMDID
and twt requester enable commands during suspend.

Change-Id: Ifeef52f7a758020e8599a056f9b3f03455e96def
CRs-Fixed: 3580088
此提交包含在:
Aasir Rasheed
2023-08-03 19:35:33 +05:30
提交者 Rahul Choudhary
父節點 6939ceceb0
當前提交 0cd3985fb6
共有 6 個檔案被更改,包括 130 行新增1 行删除

查看文件

@@ -25,6 +25,7 @@
#include <wlan_objmgr_psoc_obj.h>
#include <wlan_objmgr_global_obj.h>
#include <wlan_lmac_if_def.h>
#include <wlan_twt_public_structs.h>
#define twt_alert(params...) \
QDF_TRACE_FATAL(QDF_MODULE_ID_TWT, params)
@@ -118,6 +119,26 @@ QDF_STATUS
wlan_set_peer_twt_capabilities(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_mac,
uint8_t peer_cap);
/**
* wlan_twt_psoc_set_pmo_enable() - twt psoc set enable
* @psoc: psoc handle
* @reason: twt enable reason
*
* return: QDF_STATUS
*/
QDF_STATUS
wlan_twt_psoc_set_pmo_enable(struct wlan_objmgr_psoc *psoc,
enum twt_disable_reason reason);
/**
* wlan_twt_psoc_set_pmo_disable() - twt psoc set disable
* @psoc: psoc handle
* @reason: twt disable reason
*
* return: QDF_STATUS
*/
QDF_STATUS
wlan_twt_psoc_set_pmo_disable(struct wlan_objmgr_psoc *psoc,
enum twt_disable_reason reason);
#else
static inline
@@ -151,5 +172,13 @@ QDF_STATUS wlan_set_peer_twt_capabilities(struct wlan_objmgr_psoc *psoc,
{
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
wlan_twt_psoc_set_pmo_enable(struct wlan_objmgr_psoc *psoc,
enum twt_disable_reason reason);
QDF_STATUS
wlan_twt_psoc_set_pmo_disable(struct wlan_objmgr_psoc *psoc,
enum twt_disable_reason reason);
#endif
#endif /* _WLAN_TWT_API_H_ */

查看文件

@@ -1061,5 +1061,13 @@ enum twt_traffic_ac {
TWT_AC_MAX = 4,
};
/**
* enum twt_disable_reason - twt disable/enable reason
* @REASON_PMO_SUSPEND: reason is suspended
*/
enum twt_disable_reason {
REASON_PMO_SUSPEND = 0x1,
};
#endif /* _WLAN_TWT_PUBLIC_STRUCTS_H_ */

查看文件

@@ -115,6 +115,7 @@ ucfg_twt_cfg_get_rtwt_requestor(struct wlan_objmgr_psoc *psoc, bool *val);
*/
QDF_STATUS
ucfg_twt_cfg_get_flex_sched(struct wlan_objmgr_psoc *psoc, bool *val);
#else
static inline
QDF_STATUS ucfg_twt_cfg_get_requestor(struct wlan_objmgr_psoc *psoc, bool *val)