qcacld-3.0: Add gPreventLinkDown ini item

Add a configuration item, gPreventLinkDown, to disable putting the bus
link to sleep during suspend/resume.

Change-Id: Id52c6319cafaef60e6f4e562010615361eb831cd
CRs-Fixed: 2066718
This commit is contained in:
Dustin Brown
2017-06-26 10:52:08 -07:00
committed by snandini
parent 825b0f7ac6
commit fe7aa8780a
3 changed files with 34 additions and 0 deletions

View File

@@ -5798,6 +5798,29 @@ enum hdd_link_speed_rpt_type {
#define CFG_RATE_FOR_TX_MGMT_5G_MAX (WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMAX)
#define CFG_RATE_FOR_TX_MGMT_5G_DEFAULT (WNI_CFG_RATE_FOR_TX_MGMT_5G_STADEF)
/*
* <ini>
* gPreventLinkDown - Enable to prevent bus link from going down
* @Min: 0
* @Max: 1
* @Default: 0
*
* Enable to prevent bus link from going down. Useful for platforms that do not
* (yet) support link down suspend cases.
*
* Related: N/A
*
* Supported Feature: Suspend/Resume
*
* Usage: Internal
*
* </ini>
*/
#define CFG_PREVENT_LINK_DOWN_NAME "gPreventLinkDown"
#define CFG_PREVENT_LINK_DOWN_MIN (0)
#define CFG_PREVENT_LINK_DOWN_MAX (1)
#define CFG_PREVENT_LINK_DOWN_DEFAULT (0)
#ifdef FEATURE_WLAN_TDLS
/*
* <ini>
@@ -10848,6 +10871,7 @@ struct hdd_config {
uint8_t enable_tx_ldpc;
uint8_t enable_rx_ldpc;
bool enable5gEBT;
bool prevent_link_down;
#ifdef FEATURE_WLAN_TDLS
bool fEnableTDLSSupport;
bool fEnableTDLSImplicitTrigger;

View File

@@ -2197,6 +2197,13 @@ struct reg_table_entry g_registry_table[] = {
CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
REG_VARIABLE(CFG_PREVENT_LINK_DOWN_NAME, WLAN_PARAM_Integer,
struct hdd_config, prevent_link_down,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_PREVENT_LINK_DOWN_DEFAULT,
CFG_PREVENT_LINK_DOWN_MIN,
CFG_PREVENT_LINK_DOWN_MAX),
#ifdef FEATURE_WLAN_TDLS
REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
struct hdd_config, fEnableTDLSSupport,

View File

@@ -230,6 +230,9 @@ int hdd_hif_open(struct device *dev, void *bdev, const struct hif_bus_id *bid,
goto err_hif_close;
}
if (hdd_ctx->config->prevent_link_down)
hif_vote_link_up(hif_ctx);
status = hif_enable(hif_ctx, dev, bdev, bid, bus_type,
(reinit == true) ? HIF_ENABLE_TYPE_REINIT :
HIF_ENABLE_TYPE_PROBE);