qcacld-3.0: Add an INI param to configure HW assist feature in FW

HW assist is a FW feature and it is enabled by default. But there is
no provision to disable/enable this feature based on requirement.

To address this, add INI param to enable/disable HW assist feature
in FW.

Change-Id: Icdc4a842be4d5c6991a785ee270f61ba87fcfe79
CRs-Fixed: 2841346
This commit is contained in:
Bapiraju Alla
2020-12-15 19:59:51 +05:30
committed by snandini
parent e6d3749ab1
commit 3e83a3e527
4 changed files with 77 additions and 2 deletions

View File

@@ -816,6 +816,27 @@
CFG_VALUE_OR_DEFAULT, \
"enable SHO config")
/*
* <ini>
* g_disable_hw_assist - Flag to disable HW assist feature
* @Default: 0
*
* This ini is used to enable/disable the HW assist feature in FW
*
* Related: none
*
* Supported Feature: STA/SAP
*
* Usage: External
*
* <ini>
*/
#define CFG_DISABLE_HW_ASSIST CFG_INI_BOOL( \
"g_disable_hw_assist", \
0, \
"Disable HW assist feature in FW")
#define CFG_FWOL_GENERIC_ALL \
CFG_FWOL_DHCP \
CFG(CFG_ENABLE_ANI) \
@@ -845,6 +866,7 @@
CFG(CFG_SET_SAP_XLNA_BYPASS) \
CFG(CFG_SET_ENABLE_ILP) \
CFG(CFG_ENABLE_FW_WOW_MODULE_LOG_LEVEL) \
CFG(CFG_SAP_SHO_CONFIG)
CFG(CFG_SAP_SHO_CONFIG) \
CFG(CFG_DISABLE_HW_ASSIST)
#endif

View File

@@ -374,6 +374,21 @@ static QDF_STATUS ucfg_fwol_get_sap_sho(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
static QDF_STATUS ucfg_fwol_get_hw_assist_config(struct wlan_objmgr_psoc *psoc,
bool *disable_hw_assist)
{
struct wlan_fwol_psoc_obj *fwol_obj;
fwol_obj = fwol_get_psoc_obj(psoc);
if (!fwol_obj) {
fwol_err("Failed to get FWOL obj");
return QDF_STATUS_E_FAILURE;
}
*disable_hw_assist = fwol_obj->cfg.disable_hw_assist;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS ucfg_get_enable_rts_sifsbursting(struct wlan_objmgr_psoc *psoc,
bool *enable_rts_sifsbursting)
{
@@ -1057,14 +1072,22 @@ QDF_STATUS ucfg_fwol_configure_global_params(struct wlan_objmgr_psoc *psoc,
QDF_STATUS status;
bool value;
/* Configure ILP feature in FW */
status = ucfg_fwol_get_ilp_config(psoc, &value);
if (QDF_IS_STATUS_ERROR(status))
return status;
status = fwol_set_ilp_config(pdev, value);
if (QDF_IS_STATUS_ERROR(status))
return status;
/* Configure HW assist feature in FW */
status = ucfg_fwol_get_hw_assist_config(psoc, &value);
if (QDF_IS_STATUS_ERROR(status))
return status;
status = fwol_configure_hw_assist(pdev, value);
if (QDF_IS_STATUS_ERROR(status))
return status;
return status;
}