Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a5dffb5 authored by Jyoti Kumari's avatar Jyoti Kumari Committed by snandini
Browse files

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
parent 5b02cde5
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
/*
 * 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
+3 −2
Original line number Diff line number Diff line
/*
 * 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;
+12 −3
Original line number Diff line number Diff line
@@ -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")

/*
+4 −3
Original line number Diff line number Diff line
@@ -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;