qcacld-3.0: Add PMO config for PCIe bus suspend in beaconing mode

By default, PCIe bus suspend is not allowed in beaconing modes
(SAP/P2PGO/NDP) with one or more clients connected. Some OEMs need
PCIe bus suspend in this mode. Hence, add a config item to serve
both types of requests.

Change-Id: Ia2d990f17f605036d43db75ecd4df57701b4ba1f
CRs-Fixed: 2860495
This commit is contained in:
Alan Chen
2021-01-21 19:04:00 -08:00
committed by snandini
parent 000b53fb15
commit a9a470290f
6 changed files with 82 additions and 11 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -404,6 +404,34 @@
CFG_VALUE_OR_DEFAULT, \
"RA rate limit interval")
/*
* <ini>
* enable_bus_suspend_in_beaconing_mode - enable PCIe bus suspend as part of
* platform system suspend for SAP/P2PGO/NDP with one or more clients connected
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to PCIe bus suspend as part of platform system suspend for
* SAP/P2PGO/NDP with one or more clients connected
*
* 0: PCIe Bus suspend is not supported in beaconing mode (SAP/P2PGO/NDP) with
* one or more clients connected
* 1: PCIe Bus suspend is supported in beaconing mode (SAP/P2PGO/NDP) with one
* or more clients connected
* Related: None
*
* Supported Feature: Power Save
*
* Usage: Internal
*
* </ini>
*/
#define CFG_ENABLE_BUS_SUSPEND_IN_BEACONING_MODE CFG_INI_BOOL( \
"enable_bus_suspend_in_beaconing_mode", \
0, \
"This ini is used to enable bus suspend in beaconing mode")
#define CFG_PMO_COMMON_ALL \
CFG(CFG_ENABLE_SAP_SUSPEND) \
CFG(CFG_PMO_ENABLE_HOST_ARPOFFLOAD) \
@@ -420,6 +448,7 @@
CFG(CFG_PMO_PWR_FAILURE) \
CFG(CFG_PMO_WOW_DATA_INACTIVITY_TIMEOUT) \
CFG(CFG_RA_RATE_LIMIT_INTERVAL) \
CFG(CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND)
CFG(CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND) \
CFG(CFG_ENABLE_BUS_SUSPEND_IN_BEACONING_MODE)
#endif /* WLAN_PMO_COMMON_CFG_H__ */

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -390,6 +390,7 @@ struct pmo_psoc_cfg {
enum active_apf_mode active_mc_bc_apf_mode;
uint8_t ito_repeat_count;
bool is_mod_dtim_on_sys_suspend_enabled;
bool is_bus_suspend_enabled_in_beaconing_mode;
#ifdef WLAN_ENABLE_GPIO_WAKEUP
bool enable_gpio_wakeup;
uint32_t gpio_wakeup_pin;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -2027,4 +2027,15 @@ ucfg_pmo_get_runtime_pm_delay(struct wlan_objmgr_psoc *psoc)
*/
bool
ucfg_pmo_get_enable_sap_suspend(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_pmo_get_beacoing_mode_bus_suspend() - get PMO config for PCIe bus
* suspend in beaconing mode (SAP/P2PGO/NDP) with one or more clients
* @psoc: pointer to psoc object
*
* Return: bool
*/
bool
ucfg_pmo_get_beaconing_mode_bus_suspend(struct wlan_objmgr_psoc *psoc);
#endif /* end of _WLAN_PMO_UCFG_API_H_ */