qcacld-3.0: During wlan IPA suspend, force the BW voting to high

During wlan IPA suspend, force the bandwidth voting to high
when CFG_DP_IPA_ENABLE_FORCE_VOTING is enabled.

Change-Id: I9b368081f9c0919f5fecfacf318ad1a714cc33cf
CRs-Fixed: 2521815
This commit is contained in:
Alok Kumar 2019-09-23 18:31:09 +05:30 committed by nshrivas
parent a99ac5c82d
commit e888e80ef0
4 changed files with 31 additions and 1 deletions

View File

@ -1160,6 +1160,12 @@ QDF_STATUS wlan_ipa_suspend(struct wlan_ipa_priv *ipa_ctx)
ipa_ctx->suspended = true;
qdf_spin_unlock_bh(&ipa_ctx->pm_lock);
if (ipa_ctx->config->ipa_force_voting &&
!ipa_ctx->ipa_pipes_down)
wlan_ipa_set_perf_level(ipa_ctx,
ipa_ctx->config->bus_bw_high,
ipa_ctx->config->bus_bw_high);
return QDF_STATUS_SUCCESS;
}

View File

@ -635,6 +635,8 @@ void ipa_component_config_update(struct wlan_objmgr_psoc *psoc)
cfg_get(psoc, CFG_DP_BUS_BANDWIDTH_MEDIUM_THRESHOLD);
g_ipa_config->bus_bw_low =
cfg_get(psoc, CFG_DP_BUS_BANDWIDTH_LOW_THRESHOLD);
g_ipa_config->ipa_force_voting =
cfg_get(psoc, CFG_DP_IPA_ENABLE_FORCE_VOTING);
}
uint32_t ipa_get_tx_buf_count(void)

View File

@ -155,6 +155,25 @@
100, \
CFG_VALUE_OR_DEFAULT, "IPA low bw threshold")
/*
* <ini>
* gIPAForceVotingEnable - IPA force voting enable
* @Default: false
*
* This ini specifies to enable IPA force voting
*
* Related: N/A
*
* Supported Feature: IPA
*
* Usage: Internal
*
* </ini>
*/
#define CFG_DP_IPA_ENABLE_FORCE_VOTING \
CFG_INI_BOOL("gIPAForceVotingEnable", \
false, "Ctrl to enable force voting")
/*
* <ini>
* IpaUcTxBufCount - IPA tx buffer count
@ -185,6 +204,7 @@
CFG(CFG_DP_IPA_HIGH_BANDWIDTH_MBPS) \
CFG(CFG_DP_IPA_MEDIUM_BANDWIDTH_MBPS) \
CFG(CFG_DP_IPA_LOW_BANDWIDTH_MBPS) \
CFG(CFG_DP_IPA_ENABLE_FORCE_VOTING) \
CFG(CFG_DP_IPA_UC_TX_BUF_COUNT)
#endif /* _CFG_IPA_H_ */

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
* Copyright (c) 2018, 2019 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
@ -38,6 +38,7 @@
* @ipa_bw_high: IPA bandwidth high threshold
* @ipa_bw_medium: IPA bandwidth medium threshold
* @ipa_bw_low: IPA bandwidth low threshold
* @ipa_force_voting: support force bw voting
*/
struct wlan_ipa_config {
uint32_t ipa_config;
@ -49,6 +50,7 @@ struct wlan_ipa_config {
uint32_t ipa_bw_high;
uint32_t ipa_bw_medium;
uint32_t ipa_bw_low;
bool ipa_force_voting;
};
/**