diff --git a/components/fw_offload/core/inc/wlan_fw_offload_main.h b/components/fw_offload/core/inc/wlan_fw_offload_main.h index b4dd596706ba..4fbfec092ea6 100644 --- a/components/fw_offload/core/inc/wlan_fw_offload_main.h +++ b/components/fw_offload/core/inc/wlan_fw_offload_main.h @@ -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 diff --git a/components/fw_offload/core/src/wlan_fw_offload_main.c b/components/fw_offload/core/src/wlan_fw_offload_main.c index 2915c46068ea..d4f51b0472fc 100644 --- a/components/fw_offload/core/src/wlan_fw_offload_main.c +++ b/components/fw_offload/core/src/wlan_fw_offload_main.c @@ -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; diff --git a/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h b/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h index c8c0ad5d82f4..deaef2aab385 100644 --- a/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h +++ b/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h @@ -768,10 +768,16 @@ /* * - * 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 @@ * */ -#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") /* diff --git a/components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c b/components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c index 5ad2a0ccba8d..4d966aaeaaa5 100644 --- a/components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c +++ b/components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c @@ -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;