浏览代码

qcacld-3.0: Add IPA CFG items and APIs

Add IPA related INI config to IPA component.

Change-Id: I5bea63b83ddac62504ef38019aa4034c4e18bca7
CRs-Fixed: 2320921
jitiphil 6 年之前
父节点
当前提交
4c256a34d6

+ 2 - 0
components/cfg/cfg_all.h

@@ -20,6 +20,7 @@
 #include "cfg_converged.h"
 #include "cfg_mlme.h"
 #include "cfg_fwol.h"
+#include "cfg_ipa.h"
 
 #ifdef CONVERGED_P2P_ENABLE
 #include "wlan_p2p_cfg.h"
@@ -49,6 +50,7 @@
 	CFG_FWOL_ALL \
 	CFG_HDD_ALL \
 	CFG_HDD_DP_ALL \
+	CFG_IPA \
 	CFG_MLME_ALL \
 	CFG_NAN_ALL \
 	CFG_P2P_ALL \

+ 15 - 8
components/ipa/core/inc/wlan_ipa_main.h

@@ -114,14 +114,6 @@ QDF_STATUS ipa_config_mem_alloc(void);
  */
 void ipa_config_mem_free(void);
 
-/**
- * ipa_config_update() - IPA component config update
- * @config: IPA config
- *
- * Return: None
- */
-void ipa_config_update(struct wlan_ipa_config *config);
-
 /**
  * ipa_config_is_enabled() - Is IPA config enabled?
  *
@@ -422,5 +414,20 @@ void ipa_uc_ssr_cleanup(struct wlan_objmgr_pdev *pdev);
  */
 void ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev *pdev);
 
+/**
+ * ipa_component_config_update() - update ipa config from psoc
+ * @psoc: psoc obj
+ *
+ * Return: None
+ */
+void ipa_component_config_update(struct wlan_objmgr_psoc *psoc);
+
+/**
+ * ipa_get_tx_buf_count() - get IPA config tx buffer count
+ *
+ * Return: IPA config tx buffer count
+ */
+
+uint32_t ipa_get_tx_buf_count(void);
 #endif /* IPA_OFFLOAD */
 #endif /* end  of _WLAN_IPA_MAIN_H_ */

+ 34 - 10
components/ipa/core/src/wlan_ipa_main.c

@@ -23,6 +23,7 @@
 #include "wlan_ipa_main.h"
 #include "wlan_ipa_core.h"
 #include "wlan_ipa_tgt_api.h"
+#include "cfg_ucfg_api.h"
 
 static struct wlan_ipa_config *g_ipa_config;
 static bool g_ipa_hw_support;
@@ -69,16 +70,6 @@ bool ipa_is_hw_support(void)
 	return g_ipa_hw_support;
 }
 
-void ipa_config_update(struct wlan_ipa_config *config)
-{
-	if (!g_ipa_config) {
-		ipa_err("IPA config already freed");
-		return;
-	}
-
-	qdf_mem_copy(g_ipa_config, config, sizeof(*g_ipa_config));
-}
-
 bool ipa_config_is_enabled(void)
 {
 	return g_ipa_config ? wlan_ipa_is_enabled(g_ipa_config) : 0;
@@ -602,3 +593,36 @@ void ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev *pdev)
 
 	return wlan_ipa_fw_rejuvenate_send_msg(ipa_obj);
 }
+
+void ipa_component_config_update(struct wlan_objmgr_psoc *psoc)
+{
+	if (!g_ipa_config) {
+		ipa_err("g_ipa_config is NULL");
+		return;
+	}
+
+	g_ipa_config->ipa_config =
+		cfg_get(psoc, CFG_DP_IPA_OFFLOAD_CONFIG);
+	g_ipa_config->desc_size =
+		cfg_get(psoc, CFG_DP_IPA_DESC_SIZE);
+	g_ipa_config->txbuf_count =
+		qdf_rounddown_pow_of_two(cfg_get(psoc,
+						 CFG_DP_IPA_UC_TX_BUF_COUNT));
+	g_ipa_config->ipa_bw_high =
+		cfg_get(psoc, CFG_DP_IPA_HIGH_BANDWIDTH_MBPS);
+	g_ipa_config->ipa_bw_medium =
+		cfg_get(psoc, CFG_DP_IPA_MEDIUM_BANDWIDTH_MBPS);
+	g_ipa_config->ipa_bw_low =
+		cfg_get(psoc, CFG_DP_IPA_LOW_BANDWIDTH_MBPS);
+	g_ipa_config->bus_bw_high =
+		cfg_get(psoc, CFG_DP_BUS_BANDWIDTH_HIGH_THRESHOLD);
+	g_ipa_config->bus_bw_medium =
+		cfg_get(psoc, CFG_DP_BUS_BANDWIDTH_MEDIUM_THRESHOLD);
+	g_ipa_config->bus_bw_low =
+		cfg_get(psoc, CFG_DP_BUS_BANDWIDTH_LOW_THRESHOLD);
+}
+
+uint32_t ipa_get_tx_buf_count(void)
+{
+	return g_ipa_config ? g_ipa_config->txbuf_count : 0;
+}

+ 190 - 0
components/ipa/dispatcher/inc/cfg_ipa.h

@@ -0,0 +1,190 @@
+/*
+ * Copyright (c) 2012-2018 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
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ * DOC: This file contains definitions of Data Path configuration.
+ */
+
+#ifndef _CFG_IPA_H_
+#define _CFG_IPA_H_
+
+#include "cfg_define.h"
+
+/* DP INI Declerations */
+/*
+ * IPA Offload configuration - Each bit enables a feature
+ * bit0 - IPA Enable
+ * bit1 - IPA Pre filter enable
+ * bit2 - IPv6 enable
+ * bit3 - IPA Resource Manager (RM) enable
+ * bit4 - IPA Clock scaling enable
+ */
+
+/*
+ * <ini>
+ * gIPAConfig - IPA configuration
+ * @Min: 0
+ * @Max: 0xFFFFFFFF
+ * @Default: 0
+ *
+ * This ini specifies the IPA configuration
+ *
+ * Related: N/A
+ *
+ * Supported Feature: IPA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+#define CFG_DP_IPA_OFFLOAD_CONFIG \
+		CFG_INI_UINT("gIPAConfig", \
+		0, \
+		0xFFFFFFFF, \
+		0, \
+		CFG_VALUE_OR_DEFAULT, "IPA offload configuration")
+
+/*
+ * <ini>
+ * GIPADescSize - IPA descriptor size
+ * @Min: 800
+ * @Max: 8000
+ * @Default: 800
+ *
+ * This ini specifies the IPA descriptor size
+ *
+ * Related: N/A
+ *
+ * Supported Feature: IPA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+ #define CFG_DP_IPA_DESC_SIZE \
+		CFG_INI_UINT("GIPADescSize", \
+		800, \
+		8000, \
+		800, \
+		CFG_VALUE_OR_DEFAULT, "IPA DESC SIZE")
+
+/*
+ * <ini>
+ * gIPAHighBandwidthMbps - IPA high bw threshold
+ * @Min: 200
+ * @Max: 1000
+ * @Default: 400
+ *
+ * This ini specifies the IPA high bw threshold
+ *
+ * Related: N/A
+ *
+ * Supported Feature: IPA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+ #define CFG_DP_IPA_HIGH_BANDWIDTH_MBPS \
+		CFG_INI_UINT("gIPAHighBandwidthMbps", \
+		200, \
+		1000, \
+		400, \
+		CFG_VALUE_OR_DEFAULT, "IPA high bw threshold")
+
+/*
+ * <ini>
+ * gIPAHighBandwidthMbps - IPA medium bw threshold
+ * @Min: 100
+ * @Max: 400
+ * @Default: 200
+ *
+ * This ini specifies the IPA medium bw threshold
+ *
+ * Related: N/A
+ *
+ * Supported Feature: IPA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+ #define CFG_DP_IPA_MEDIUM_BANDWIDTH_MBPS \
+		CFG_INI_UINT("gIPAMediumBandwidthMbps", \
+		100, \
+		400, \
+		200, \
+		CFG_VALUE_OR_DEFAULT, "IPA medium bw threshold")
+
+/*
+ * <ini>
+ * gIPAHighBandwidthMbps - IPA low bw threshold
+ * @Min: 0
+ * @Max: 100
+ * @Default: 100
+ *
+ * This ini specifies the IPA low bw threshold
+ *
+ * Related: N/A
+ *
+ * Supported Feature: IPA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+ #define CFG_DP_IPA_LOW_BANDWIDTH_MBPS \
+		CFG_INI_UINT("gIPALowBandwidthMbps", \
+		0, \
+		100, \
+		100, \
+		CFG_VALUE_OR_DEFAULT, "IPA low bw threshold")
+
+/*
+ * <ini>
+ * IpaUcTxBufCount - IPA tx buffer count
+ * @Min: 0
+ * @Max: 2048
+ * @Default: 512
+ *
+ * This ini specifies the IPA tx buffer count
+ *
+ * Related: N/A
+ *
+ * Supported Feature: IPA
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+ #define CFG_DP_IPA_UC_TX_BUF_COUNT \
+		CFG_INI_UINT("IpaUcTxBufCount", \
+		0, \
+		2048, \
+		512, \
+		CFG_VALUE_OR_DEFAULT, "IPA tx buffer count")
+
+#define CFG_IPA \
+	CFG(CFG_DP_IPA_OFFLOAD_CONFIG) \
+	CFG(CFG_DP_IPA_DESC_SIZE) \
+	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_UC_TX_BUF_COUNT)
+
+#endif /* _CFG_IPA_H_ */

+ 27 - 7
components/ipa/dispatcher/inc/wlan_ipa_ucfg_api.h

@@ -26,6 +26,7 @@
 #include "wlan_ipa_obj_mgmt_api.h"
 #include "wlan_objmgr_pdev_obj.h"
 #include "qdf_types.h"
+#include "wlan_ipa_main.h"
 
 #ifdef IPA_OFFLOAD
 
@@ -57,13 +58,6 @@ bool ucfg_ipa_is_enabled(void);
  */
 bool ucfg_ipa_uc_is_enabled(void);
 
-/**
- * ucfg_ipa_update_config() - Update IPA component config
- *
- * Return: None
- */
-void ucfg_ipa_update_config(struct wlan_ipa_config *config);
-
 /**
  * ucfg_ipa_set_dp_handle() - register DP handle
  * @psoc: psoc handle
@@ -332,6 +326,21 @@ void ucfg_ipa_uc_ssr_cleanup(struct wlan_objmgr_pdev *pdev);
  */
 void ucfg_ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev *pdev);
 
+/**
+ * ucfg_ipa_component_config_update() - update IPA component config
+ * @psoc: pointer to psoc object
+ *
+ * Return: None
+ */
+void ucfg_ipa_component_config_update(struct wlan_objmgr_psoc *psoc);
+
+/**
+ * ucfg_get_ipa_tx_buf_count() - get IPA tx buffer count
+ *
+ * Return: IPA tx buffer count
+ */
+uint32_t ucfg_ipa_get_tx_buf_count(void);
+
 #else
 
 static inline bool ucfg_ipa_is_present(void)
@@ -517,5 +526,16 @@ static inline
 void ucfg_ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev *pdev)
 {
 }
+
+static inline
+void ucfg_ipa_component_config_update(struct wlan_objmgr_psoc *psoc)
+{
+}
+
+static inline
+uint32_t ucfg_ipa_get_tx_buf_count(void)
+{
+	return 0;
+}
 #endif /* IPA_OFFLOAD */
 #endif /* _WLAN_IPA_UCFG_API_H_ */

+ 12 - 5
components/ipa/dispatcher/src/wlan_ipa_ucfg_api.c

@@ -21,6 +21,8 @@
 
 #include "wlan_ipa_ucfg_api.h"
 #include "wlan_ipa_main.h"
+#include "cfg_ucfg_api.h"
+
 
 bool ucfg_ipa_is_present(void)
 {
@@ -49,11 +51,6 @@ void ucfg_ipa_set_dp_handle(struct wlan_objmgr_psoc *psoc,
 	return ipa_set_dp_handle(psoc, dp_soc);
 }
 
-void ucfg_ipa_update_config(struct wlan_ipa_config *config)
-{
-	ipa_config_update(config);
-}
-
 QDF_STATUS ucfg_ipa_set_perf_level(struct wlan_objmgr_pdev *pdev,
 				   uint64_t tx_packets, uint64_t rx_packets)
 {
@@ -196,3 +193,13 @@ void ucfg_ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev *pdev)
 {
 	return ipa_fw_rejuvenate_send_msg(pdev);
 }
+
+void ucfg_ipa_component_config_update(struct wlan_objmgr_psoc *psoc)
+{
+	ipa_component_config_update(psoc);
+}
+
+uint32_t ucfg_ipa_get_tx_buf_count(void)
+{
+	return ipa_get_tx_buf_count();
+}

+ 1 - 1
core/cds/src/cds_api.c

@@ -321,7 +321,7 @@ static void cds_cdp_cfg_attach(struct cds_config_info *cds_cfg)
 
 	cdp_cfg.is_full_reorder_offload = cds_cfg->reorder_offload;
 	cdp_cfg.is_uc_offload_enabled = cds_cfg->uc_offload_enabled;
-	cdp_cfg.uc_tx_buffer_count = cds_cfg->uc_txbuf_count;
+	cdp_cfg.uc_tx_buffer_count = ucfg_ipa_get_tx_buf_count();
 	cdp_cfg.uc_tx_buffer_size = cds_cfg->uc_txbuf_size;
 	cdp_cfg.uc_rx_indication_ring_count = cds_cfg->uc_rxind_ringcount;
 	cdp_cfg.uc_tx_partition_base = cds_cfg->uc_tx_partition_base;

+ 0 - 48
core/hdd/inc/wlan_hdd_cfg.h

@@ -4617,42 +4617,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_ENABLE_FASTPATH_DEFAULT              (CFG_ENABLE_FASTPATH_MIN)
 #endif /* WLAN_FEATURE_FASTPATH */
 
-/*
- * IPA Offload configuration - Each bit enables a feature
- * bit0 - IPA Enable
- * bit1 - IPA Pre filter enable
- * bit2 - IPv6 enable
- * bit3 - IPA Resource Manager (RM) enable
- * bit4 - IPA Clock scaling enable
- */
-#define CFG_IPA_OFFLOAD_CONFIG_NAME              "gIPAConfig"
-#define CFG_IPA_OFFLOAD_CONFIG_MIN               (0)
-#define CFG_IPA_OFFLOAD_CONFIG_MAX               (0xFFFFFFFF)
-#define CFG_IPA_OFFLOAD_CONFIG_DEFAULT           (CFG_IPA_OFFLOAD_CONFIG_MIN)
-
-/*
- * IPA DESC SIZE
- */
-#define CFG_IPA_DESC_SIZE_NAME                   "gIPADescSize"
-#define CFG_IPA_DESC_SIZE_MIN                    (800)
-#define CFG_IPA_DESC_SIZE_MAX                    (8000)
-#define CFG_IPA_DESC_SIZE_DEFAULT                (800)
-
-#define CFG_IPA_HIGH_BANDWIDTH_MBPS              "gIPAHighBandwidthMbps"
-#define CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN          (200)
-#define CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX          (1000)
-#define CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT      (400)
-
-#define CFG_IPA_MEDIUM_BANDWIDTH_MBPS            "gIPAMediumBandwidthMbps"
-#define CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN        (100)
-#define CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX        (400)
-#define CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT    (200)
-
-#define CFG_IPA_LOW_BANDWIDTH_MBPS               "gIPALowBandwidthMbps"
-#define CFG_IPA_LOW_BANDWIDTH_MBPS_MIN           (0)
-#define CFG_IPA_LOW_BANDWIDTH_MBPS_MAX           (100)
-#define CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT       (100)
-
 /* SAR Thermal limit values for 2g and 5g */
 
 #define CFG_SET_TXPOWER_LIMIT2G_NAME               "TxPower2g"
@@ -4938,12 +4902,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_REORDER_OFFLOAD_SUPPORT_MAX     (1)
 #define CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT (1)
 
-/* IpaUcTxBufCount should be power of 2 */
-#define CFG_IPA_UC_TX_BUF_COUNT_NAME               "IpaUcTxBufCount"
-#define CFG_IPA_UC_TX_BUF_COUNT_MIN                (0)
-#define CFG_IPA_UC_TX_BUF_COUNT_MAX                (2048)
-#define CFG_IPA_UC_TX_BUF_COUNT_DEFAULT            (512)
-
 #define CFG_IPA_UC_TX_BUF_SIZE_NAME                "IpaUcTxBufSize"
 #define CFG_IPA_UC_TX_BUF_SIZE_MIN                (0)
 #define CFG_IPA_UC_TX_BUF_SIZE_MAX                (4096)
@@ -8302,12 +8260,7 @@ struct hdd_config {
 	bool enable_ip_tcp_udp_checksum_offload;
 	uint8_t fVhtAmpduLenExponent;
 	uint32_t vhtMpduLen;
-	uint32_t IpaConfig;
 	bool IpaClkScalingEnable;
-	uint32_t IpaDescSize;
-	uint32_t IpaHighBandwidthMbps;
-	uint32_t IpaMediumBandwidthMbps;
-	uint32_t IpaLowBandwidthMbps;
 #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
 	uint32_t WlanMccToSccSwitchMode;
 #endif
@@ -8338,7 +8291,6 @@ struct hdd_config {
 	int32_t dfsRadarPriMultiplier;
 	uint8_t reorderOffloadSupport;
 
-	uint32_t IpaUcTxBufCount;
 	uint32_t IpaUcTxBufSize;
 	uint32_t IpaUcRxIndRingCount;
 	uint32_t IpaUcTxPartitionBase;

+ 0 - 44
core/hdd/src/wlan_hdd_cfg.c

@@ -1863,43 +1863,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
 		     CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
 
-#ifdef IPA_OFFLOAD
-	REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
-		     struct hdd_config, IpaConfig,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
-		     CFG_IPA_OFFLOAD_CONFIG_MIN,
-		     CFG_IPA_OFFLOAD_CONFIG_MAX),
-
-	REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, IpaDescSize,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_IPA_DESC_SIZE_DEFAULT,
-		     CFG_IPA_DESC_SIZE_MIN,
-		     CFG_IPA_DESC_SIZE_MAX),
-
-	REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
-		     struct hdd_config, IpaHighBandwidthMbps,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
-		     CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
-		     CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
-
-	REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
-		     struct hdd_config, IpaMediumBandwidthMbps,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
-		     CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
-		     CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
-
-	REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
-		     struct hdd_config, IpaLowBandwidthMbps,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
-		     CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
-		     CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
-#endif
-
 	REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, isCoalesingInIBSSAllowed,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2086,13 +2049,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_REORDER_OFFLOAD_SUPPORT_MIN,
 		     CFG_REORDER_OFFLOAD_SUPPORT_MAX),
 
-	REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, IpaUcTxBufCount,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
-		     CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
-		     CFG_IPA_UC_TX_BUF_COUNT_MIN,
-		     CFG_IPA_UC_TX_BUF_COUNT_MAX),
-
 	REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, IpaUcTxBufSize,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,

+ 1 - 52
core/hdd/src/wlan_hdd_main.c

@@ -2676,36 +2676,6 @@ int hdd_assemble_rate_code(uint8_t preamble, uint8_t nss, uint8_t rate)
 	return set_value;
 }
 
-#ifdef IPA_OFFLOAD
-/**
- * hdd_update_ipa_component_config() - update ipa config
- * @hdd_ctx: Pointer to hdd context
- *
- * Return: none
- */
-static void hdd_update_ipa_component_config(struct hdd_context *hdd_ctx)
-{
-	struct hdd_config *cfg = hdd_ctx->config;
-	struct wlan_ipa_config ipa_cfg;
-
-	ipa_cfg.ipa_config = cfg->IpaConfig;
-	ipa_cfg.desc_size = cfg->IpaDescSize;
-	ipa_cfg.txbuf_count = cfg->IpaUcTxBufCount;
-	ipa_cfg.bus_bw_high = cfg->bus_bw_high_threshold;
-	ipa_cfg.bus_bw_medium = cfg->bus_bw_medium_threshold;
-	ipa_cfg.bus_bw_low = cfg->bus_bw_low_threshold;
-	ipa_cfg.ipa_bw_high = cfg->IpaHighBandwidthMbps;
-	ipa_cfg.ipa_bw_medium = cfg->IpaMediumBandwidthMbps;
-	ipa_cfg.ipa_bw_low = cfg->IpaLowBandwidthMbps;
-
-	ucfg_ipa_update_config(&ipa_cfg);
-}
-#else
-static void hdd_update_ipa_component_config(struct hdd_context *hdd_ctx)
-{
-}
-#endif
-
 #ifdef FEATURE_WLAN_WAPI
 /**
  * hdd_wapi_security_sta_exist() - return wapi security sta exist or not
@@ -2936,7 +2906,7 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
 			goto hif_close;
 		}
 
-		hdd_update_ipa_component_config(hdd_ctx);
+		ucfg_ipa_component_config_update(hdd_ctx->psoc);
 
 		hdd_update_cds_ac_specs_params(hdd_ctx);
 
@@ -8932,12 +8902,6 @@ static void hdd_override_ini_config(struct hdd_context *hdd_ctx)
 		hdd_debug("Module enable_11d set to %d", enable_11d);
 	}
 
-	if (!ucfg_ipa_is_present()) {
-		hdd_ctx->config->IpaConfig = 0;
-		hdd_debug("IpaConfig override to %d",
-			hdd_ctx->config->IpaConfig);
-	}
-
 	if (hdd_ctx->config->action_oui_enable && !ucfg_action_oui_enabled()) {
 		hdd_ctx->config->action_oui_enable = 0;
 		hdd_err("Ignore ini: %s, since no action_oui component",
@@ -9715,21 +9679,6 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 
 	/* IPA micro controller data path offload resource config item */
 	cds_cfg->uc_offload_enabled = ucfg_ipa_uc_is_enabled();
-	if (!is_power_of_2(hdd_ctx->config->IpaUcTxBufCount)) {
-		/* IpaUcTxBufCount should be power of 2 */
-		hdd_debug("Round down IpaUcTxBufCount %d to nearest power of 2",
-			hdd_ctx->config->IpaUcTxBufCount);
-		hdd_ctx->config->IpaUcTxBufCount =
-			rounddown_pow_of_two(
-				hdd_ctx->config->IpaUcTxBufCount);
-		if (!hdd_ctx->config->IpaUcTxBufCount) {
-			hdd_err("Failed to round down IpaUcTxBufCount");
-			goto exit;
-		}
-		hdd_debug("IpaUcTxBufCount rounded down to %d",
-			hdd_ctx->config->IpaUcTxBufCount);
-	}
-	cds_cfg->uc_txbuf_count = hdd_ctx->config->IpaUcTxBufCount;
 	cds_cfg->uc_txbuf_size = hdd_ctx->config->IpaUcTxBufSize;
 	if (!is_power_of_2(hdd_ctx->config->IpaUcRxIndRingCount)) {
 		/* IpaUcRxIndRingCount should be power of 2 */