qcacld-3.0: Enhance existing ILP profiles setting

Currently, there are two ini option 0/1 to disable/enable ILP
profiles in HW.

Extend this option upto 3 where
0 indicates disable
1 indicates perf settings
2 indicates max power saving
3 indicates balanced settings

Change-Id: Iff41b92b84309a670e2ad301ee72fb3caaba3df3
CRs-Fixed: 2886526
This commit is contained in:
Jyoti Kumari 2021-02-24 16:34:28 +05:30 • committed by snandini
commit 0a5dffb53e
4 changed files with 24 additions and 12 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
@ -268,7 +268,7 @@ struct wlan_fwol_cfg {
uint32_t dhcp_max_num_clients;
#endif
struct adaptive_dwelltime_params dwelltime_params;
bool enable_ilp;
uint32_t enable_ilp;
bool disable_hw_assist;
};
@ -385,12 +385,13 @@ fwol_set_adaptive_dwelltime_config(
/**
* fwol_set_ilp_config() - API to set ILP HW block config
* @pdev: pointer to the pdev object
* @enable_ilp: enable/disable config for ILP
* @enable_ilp: ILP HW block configuration with various options
*
* Return: QDF_STATUS
*/
QDF_STATUS fwol_set_ilp_config(struct wlan_objmgr_pdev *pdev,
bool enable_ilp);
uint32_t enable_ilp);
/**
* fwol_configure_hw_assist() - API to configure HW assist feature in FW
* @pdev: pointer to the pdev object

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2018-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
@ -661,7 +661,8 @@ void fwol_release_rx_event(struct wlan_fwol_rx_event *event)
qdf_mem_free(event);
}
QDF_STATUS fwol_set_ilp_config(struct wlan_objmgr_pdev *pdev, bool enable_ilp)
QDF_STATUS fwol_set_ilp_config(struct wlan_objmgr_pdev *pdev,
uint32_t enable_ilp)
{
QDF_STATUS status;
struct pdev_params pdev_param;

View file

@ -768,10 +768,16 @@
/*
* <ini>
* g_enable_ilp - Enable/Disable ILP HW Block
* g_enable_ilp - ILP HW Block Configuration
* @Min: 0
* @Max: 3
* @Default: 1
*
* This ini is used to enable/disable the ILP HW block
* This ini is used to configure ILP HW block with various options
* 0: disable
* 1: perf settings
* 2: max power saving
* 3: balanced settings
*
* Related: none
*
@ -782,9 +788,12 @@
* <ini>
*/
#define CFG_SET_ENABLE_ILP CFG_INI_BOOL( \
#define CFG_SET_ENABLE_ILP CFG_INI_UINT( \
"g_enable_ilp", \
0, \
3, \
1, \
CFG_VALUE_OR_DEFAULT, \
"ILP configuration")
/*

View file

@ -295,7 +295,7 @@ QDF_STATUS ucfg_fwol_get_ani_enabled(struct wlan_objmgr_psoc *psoc,
}
static QDF_STATUS ucfg_fwol_get_ilp_config(struct wlan_objmgr_psoc *psoc,
bool *enable_ilp)
uint32_t *enable_ilp)
{
struct wlan_fwol_psoc_obj *fwol_obj;
@ -1005,13 +1005,14 @@ QDF_STATUS ucfg_fwol_configure_global_params(struct wlan_objmgr_psoc *psoc,
struct wlan_objmgr_pdev *pdev)
{
QDF_STATUS status;
uint32_t enable_ilp;
bool value;
/* Configure ILP feature in FW */
status = ucfg_fwol_get_ilp_config(psoc, &value);
status = ucfg_fwol_get_ilp_config(psoc, &enable_ilp);
if (QDF_IS_STATUS_ERROR(status))
return status;
status = fwol_set_ilp_config(pdev, value);
status = fwol_set_ilp_config(pdev, enable_ilp);
if (QDF_IS_STATUS_ERROR(status))
return status;