Kaynağa Gözat

Revert "qcacld-3.0: Propagate config parameters to datapath"

This reverts Change I852b14cb04b1c2c01a697434bc5fe8b29dbfe9ea.

Change-Id: Ia433fdcb58feea27c5897975002bb347d6b96bb4
CRs-Fixed: 2097229
Venkata Sharath Chandra Manchala 7 yıl önce
ebeveyn
işleme
9abac31eba

+ 0 - 22
core/cds/inc/cds_api.h

@@ -323,17 +323,6 @@ QDF_STATUS cds_pre_enable(void);
 
 QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc);
 
-/**
- * cds_dp_open() - Open datapath module
- * @psoc - object manager soc handle
- *
- * API to map the datapath rings to interrupts
- * and also open the datapath pdev module.
- *
- * Return: QDF status
- */
-QDF_STATUS cds_dp_open(struct wlan_objmgr_psoc *psoc);
-
 QDF_STATUS cds_enable(struct wlan_objmgr_psoc *psoc);
 
 QDF_STATUS cds_disable(struct wlan_objmgr_psoc *psoc);
@@ -342,17 +331,6 @@ QDF_STATUS cds_post_disable(void);
 
 QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc);
 
-/**
- * cds_dp_close() - Close datapath module
- * @psoc: Object manager soc handle
- *
- * API used to detach interrupts assigned to service
- * datapath rings and close pdev module
- *
- * Return: Status
- */
-QDF_STATUS cds_dp_close(struct wlan_objmgr_psoc *psoc);
-
 void *cds_get_context(QDF_MODULE_ID moduleId);
 
 uint8_t cds_get_datapath_handles(void **soc, struct cdp_pdev **pdev,

+ 29 - 50
core/cds/src/cds_api.c

@@ -583,6 +583,9 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc)
 	if (!gp_cds_context->dp_soc)
 		goto err_wma_close;
 
+	if (cdp_txrx_intr_attach(gp_cds_context->dp_soc) != QDF_STATUS_SUCCESS)
+		goto err_wma_close;
+
 	pmo_ucfg_psoc_update_dp_handle(psoc, gp_cds_context->dp_soc);
 
 	cds_set_ac_specs_params(cds_cfg);
@@ -611,11 +614,29 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc)
 		QDF_ASSERT(0);
 		goto err_mac_close;
 	}
+	cds_set_context(QDF_MODULE_ID_TXRX,
+		cdp_pdev_attach(cds_get_context(QDF_MODULE_ID_SOC),
+			gp_cds_context->cfg_ctx,
+			gp_cds_context->htc_ctx,
+			gp_cds_context->qdf_ctx, 0));
+	if (!gp_cds_context->pdev_txrx_ctx) {
+		/* Critical Error ...  Cannot proceed further */
+		QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
+			  "%s: Failed to open TXRX", __func__);
+		QDF_ASSERT(0);
+		goto err_sme_close;
+	}
+	pmo_ucfg_psoc_set_txrx_handle(psoc, gp_cds_context->pdev_txrx_ctx);
 
+	QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_INFO_HIGH,
+		  "%s: CDS successfully Opened", __func__);
 	cds_register_all_modules();
 
 	return dispatcher_psoc_open(psoc);
 
+err_sme_close:
+	sme_close(gp_cds_context->pMACContext);
+
 err_mac_close:
 	mac_close(gp_cds_context->pMACContext);
 
@@ -654,41 +675,6 @@ err_probe_event:
 	return QDF_STATUS_E_FAILURE;
 } /* cds_open() */
 
-QDF_STATUS cds_dp_open(struct wlan_objmgr_psoc *psoc)
-{
-	if (cdp_txrx_intr_attach(gp_cds_context->dp_soc)
-				!= QDF_STATUS_SUCCESS) {
-		QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
-			 "%s: Failed to attach interrupts", __func__);
-		goto close;
-	}
-
-	cds_set_context(QDF_MODULE_ID_TXRX,
-		cdp_pdev_attach(cds_get_context(QDF_MODULE_ID_SOC),
-			gp_cds_context->cfg_ctx,
-			gp_cds_context->htc_ctx,
-			gp_cds_context->qdf_ctx, 0));
-	if (!gp_cds_context->pdev_txrx_ctx) {
-		/* Critical Error ...  Cannot proceed further */
-		QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
-			  "%s: Failed to open TXRX", __func__);
-		QDF_ASSERT(0);
-		goto intr_close;
-	}
-
-	pmo_ucfg_psoc_set_txrx_handle(psoc, gp_cds_context->pdev_txrx_ctx);
-
-	QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_INFO_HIGH,
-		  "%s: CDS successfully Opened", __func__);
-
-	return 0;
-
-intr_close:
-	cdp_txrx_intr_detach(gp_cds_context->dp_soc);
-close:
-	return QDF_STATUS_E_FAILURE;
-}
-
 /**
  * cds_pre_enable() - pre enable cds
  *
@@ -1078,6 +1064,7 @@ QDF_STATUS cds_post_disable(void)
 QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc)
 {
 	QDF_STATUS qdf_status;
+	void *ctx;
 
 	dispatcher_psoc_close(psoc);
 
@@ -1088,12 +1075,19 @@ QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc)
 		QDF_ASSERT(0);
 	}
 
+	cdp_txrx_intr_detach(gp_cds_context->dp_soc);
 	if (gp_cds_context->htc_ctx) {
 		htc_destroy(gp_cds_context->htc_ctx);
 		pmo_ucfg_psoc_update_htc_handle(psoc, NULL);
 		gp_cds_context->htc_ctx = NULL;
 	}
 
+	ctx = cds_get_context(QDF_MODULE_ID_TXRX);
+	cds_set_context(QDF_MODULE_ID_TXRX, NULL);
+	pmo_ucfg_psoc_set_txrx_handle(psoc, NULL);
+	cdp_pdev_detach(cds_get_context(QDF_MODULE_ID_SOC),
+		       (struct cdp_pdev *)ctx, 1);
+
 	qdf_status = sme_close(gp_cds_context->pMACContext);
 	if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
 		QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
@@ -1156,21 +1150,6 @@ QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc)
 	return QDF_STATUS_SUCCESS;
 }
 
-QDF_STATUS cds_dp_close(struct wlan_objmgr_psoc *psoc)
-{
-	void *ctx;
-
-	cdp_txrx_intr_detach(gp_cds_context->dp_soc);
-
-	ctx = cds_get_context(QDF_MODULE_ID_TXRX);
-	cds_set_context(QDF_MODULE_ID_TXRX, NULL);
-	pmo_ucfg_psoc_set_txrx_handle(psoc, NULL);
-	cdp_pdev_detach(cds_get_context(QDF_MODULE_ID_SOC),
-		       (struct cdp_pdev *)ctx, 1);
-
-	return QDF_STATUS_SUCCESS;
-}
-
 /**
  * cds_get_context() - get context data area
  *

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

@@ -6287,8 +6287,6 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
 		  hdd_ctx->config->lro_enable);
 	hdd_debug("Name = [active_mode_offload] value = [%d]",
 		  hdd_ctx->config->active_mode_offload);
-	hdd_debug("Name = [gEnableNAPI] value = [%d]",
-		  hdd_ctx->napi_enable);
 	hdd_debug("Name = [gfine_time_meas_cap] value = [%u]",
 		  hdd_ctx->config->fine_time_meas_cap);
 #ifdef WLAN_FEATURE_FASTPATH

+ 4 - 63
core/hdd/src/wlan_hdd_main.c

@@ -122,7 +122,6 @@
 #include "wlan_reg_ucfg_api.h"
 #include "wlan_hdd_rx_monitor.h"
 #include "sme_power_save_api.h"
-#include <cdp_txrx_cmn_struct.h>
 
 #ifdef CNSS_GENL
 #include <net/cnss_nl.h>
@@ -2292,7 +2291,7 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx,
 		ret = hdd_update_config(hdd_ctx);
 		if (ret) {
 			hdd_err("Failed to update configuration :%d", ret);
-			goto cds_free;
+			goto ol_cds_free;
 		}
 
 		hdd_update_cds_ac_specs_params(hdd_ctx);
@@ -2300,7 +2299,7 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx,
 		status = cds_open(hdd_ctx->hdd_psoc);
 		if (!QDF_IS_STATUS_SUCCESS(status)) {
 			hdd_err("Failed to Open CDS: %d", status);
-			goto cds_free;
+			goto ol_cds_free;
 		}
 
 		/* initalize components configurations  after psoc open */
@@ -2310,11 +2309,6 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx,
 				ret);
 			goto close;
 		}
-		status = cds_dp_open(hdd_ctx->hdd_psoc);
-		if (!QDF_IS_STATUS_SUCCESS(status)) {
-			hdd_err("Failed to Open cds post open: %d", status);
-			goto close;
-		}
 
 		/*
 		 * NAN compoenet requires certian operations like, open adapter,
@@ -2328,7 +2322,7 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx,
 		status = cds_pre_enable();
 		if (!QDF_IS_STATUS_SUCCESS(status)) {
 			hdd_err("Failed to pre-enable CDS: %d", status);
-			goto cds_txrx_free;
+			goto close;
 		}
 
 		hdd_register_policy_manager_callback(
@@ -2388,13 +2382,11 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx,
 post_disable:
 	cds_post_disable();
 
-cds_txrx_free:
-	cds_dp_close(hdd_ctx->hdd_psoc);
 close:
 	hdd_ctx->driver_status = DRIVER_MODULES_CLOSED;
 	cds_close(hdd_ctx->hdd_psoc);
 
-cds_free:
+ol_cds_free:
 	ol_cds_free();
 
 hif_close:
@@ -9506,14 +9498,6 @@ int hdd_wlan_stop_modules(struct hdd_context *hdd_ctx, bool ftm_mode)
 		ret = -EINVAL;
 		QDF_ASSERT(0);
 	}
-
-	qdf_status = cds_dp_close(hdd_ctx->hdd_psoc);
-	if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
-		hdd_warn("Failed to stop CDS DP: %d", qdf_status);
-		ret = -EINVAL;
-		QDF_ASSERT(0);
-	}
-
 	qdf_status = cds_close(hdd_ctx->hdd_psoc);
 	if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
 		hdd_warn("Failed to stop CDS: %d", qdf_status);
@@ -11815,43 +11799,6 @@ static void hdd_update_hif_config(struct hdd_context *hdd_ctx)
 		hif_vote_link_up(scn);
 }
 
-/**
- * hdd_update_dp_config() - Propagate config parameters to Lithium
- *                          datapath
- * @hdd_ctx: HDD Context
- *
- * Return: 0 for success/errno for failure
- */
-static int hdd_update_dp_config(struct hdd_context *hdd_ctx)
-{
-	struct cdp_config_params params;
-	QDF_STATUS status;
-
-	params.tso_enable = hdd_ctx->config->tso_enable;
-	params.lro_enable = hdd_ctx->config->lro_enable;
-#ifdef QCA_LL_TX_FLOW_CONTROL_V2
-	params.tx_flow_stop_queue_threshold =
-			hdd_ctx->config->TxFlowStopQueueThreshold;
-	params.tx_flow_start_queue_offset =
-			hdd_ctx->config->TxFlowStartQueueOffset;
-#endif
-	params.flow_steering_enable = hdd_ctx->config->flow_steering_enable;
-	params.napi_enable = hdd_ctx->napi_enable;
-	params.tcp_udp_checksumoffload =
-			hdd_ctx->config->enable_ip_tcp_udp_checksum_offload;
-
-	status = cdp_update_config_parameters(
-					cds_get_context(QDF_MODULE_ID_SOC),
-					&params);
-	if (status) {
-		QDF_TRACE(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_ERROR,
-			"%s: Failed to attach config parameters", __func__);
-		return status;
-	}
-
-	return 0;
-}
-
 /**
  * hdd_update_config() - Initialize driver per module ini parameters
  * @hdd_ctx: HDD Context
@@ -12123,16 +12070,10 @@ int hdd_update_components_config(struct hdd_context *hdd_ctx)
 	ret = hdd_update_pmo_config(hdd_ctx);
 	if (ret)
 		return ret;
-
 	ret = hdd_update_scan_config(hdd_ctx);
 	if (ret)
 		return ret;
-
 	ret = hdd_update_tdls_config(hdd_ctx);
-	if (ret)
-		return ret;
-
-	ret = hdd_update_dp_config(hdd_ctx);
 
 	return ret;
 }