qcacld-3.0: Avoid fw crash in some wow case on third party
Due to the limitation on third party platform, add ini to take special care of the below wow case to avoid fw crash. The sap/p2p_go shall kick out all the connected sta/p2p_gc and then go to suspend if d0wow/d3wow is not supported. Although there is wakelock try to prevent suspend after tdls link setup, it won't take effect because auto sleep mechanism is not supported on some third party platform, so teardown tdls link by force before suspend. Change-Id: I14bfe32f04cfc34d4f55a09820e42e65a1d9f925 CRs-Fixed: 2935295
This commit is contained in:

committed by
Madan Koyyalamudi

parent
35db828ff1
commit
3d05280c82
@@ -546,6 +546,29 @@
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"configure igmp offload support version")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* disconnect_sap_tdls_in_wow - disconnect sap tdls in wow
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* Due to the limitation on third party platform, add ini to take
|
||||
* special care of the below wow case to avoid fw crash.
|
||||
* The sap/p2p_go shall kick out all the connected sta/p2p_gc and
|
||||
* then go to suspend considering d0wow/d3wow is not supported.
|
||||
* Teardown tdls link proactively since auto sleep mechanism not
|
||||
* supported.
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_DISCONNECT_SAP_TDLS_IN_WOW CFG_INI_BOOL( \
|
||||
"disconnect_sap_tdls_in_wow", \
|
||||
0, \
|
||||
"disconnect sap tdls in wow")
|
||||
|
||||
#define CFG_PMO_COMMON_ALL \
|
||||
CFG(CFG_ENABLE_SAP_SUSPEND) \
|
||||
CFG(CFG_PMO_ENABLE_HOST_ARPOFFLOAD) \
|
||||
@@ -568,6 +591,7 @@
|
||||
CFG(CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND) \
|
||||
CFG(CFG_ENABLE_BUS_SUSPEND_IN_SAP_MODE) \
|
||||
CFG(CFG_ENABLE_BUS_SUSPEND_IN_GO_MODE)\
|
||||
CFG(CFG_IGMP_VERSION_SUPPORT)
|
||||
CFG(CFG_IGMP_VERSION_SUPPORT) \
|
||||
CFG(CFG_DISCONNECT_SAP_TDLS_IN_WOW)
|
||||
|
||||
#endif /* WLAN_PMO_COMMON_CFG_H__ */
|
||||
|
@@ -348,6 +348,7 @@ enum pmo_gpio_wakeup_mode {
|
||||
* @gpio_wakeup_mode: gpio wakeup mode
|
||||
* @igmp_version_support: igmp version support
|
||||
* @igmp_offload_enable: enable/disable igmp offload feature to fw
|
||||
* @disconnect_sap_tdls_in_wow: sap/p2p_go disconnect or teardown tdls link
|
||||
*/
|
||||
struct pmo_psoc_cfg {
|
||||
bool ptrn_match_enable_all_vdev;
|
||||
@@ -424,6 +425,7 @@ struct pmo_psoc_cfg {
|
||||
uint32_t igmp_version_support;
|
||||
bool igmp_offload_enable;
|
||||
#endif
|
||||
bool disconnect_sap_tdls_in_wow;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -1274,6 +1274,16 @@ bool ucfg_pmo_get_moddtim_user_active(struct wlan_objmgr_vdev *vdev);
|
||||
* Return: moddtim user value
|
||||
*/
|
||||
uint32_t ucfg_pmo_get_moddtim_user(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/*
|
||||
* ucfg_pmo_get_disconnect_sap_tdls_in_wow: get if disconnect sap/p2p_go
|
||||
* or tdls in wow
|
||||
* @psoc: objmgr psoc
|
||||
*
|
||||
* Return: true in case support else false
|
||||
*/
|
||||
bool
|
||||
ucfg_pmo_get_disconnect_sap_tdls_in_wow(struct wlan_objmgr_psoc *psoc);
|
||||
#else /* WLAN_POWER_MANAGEMENT_OFFLOAD */
|
||||
static inline QDF_STATUS
|
||||
ucfg_pmo_psoc_open(struct wlan_objmgr_psoc *psoc)
|
||||
@@ -1976,6 +1986,12 @@ ucfg_pmo_get_moddtim_user(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
ucfg_pmo_get_disconnect_sap_tdls_in_wow(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */
|
||||
|
||||
#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
|
||||
|
Reference in New Issue
Block a user