Browse Source

qcacld-3.0: Configure SIFS burst post vdev create

Currently SIFS burst configuration is done from
osif layer though there isn't any dependency on
the osif layer.

Move the configuration of SIFS burst to post
vdev create.

Change-Id: Id1e6064164c0ea9d6ab5c5b1217c7c275fb45832
CRs-Fixed: 3297656
Arun Kumar Khandavalli 2 years ago
parent
commit
ac1135e8ee
2 changed files with 31 additions and 16 deletions
  1. 0 16
      core/hdd/src/wlan_hdd_main.c
  2. 31 0
      core/wma/src/wma_dev_if.c

+ 0 - 16
core/hdd/src/wlan_hdd_main.c

@@ -6706,9 +6706,7 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter)
 {
 	struct hdd_context *hdd_ctx;
 	QDF_STATUS status;
-	int ret_val;
 	mac_handle_t mac_handle;
-	uint8_t enable_sifs_burst = 0;
 	uint32_t roam_triggers;
 	struct wlan_objmgr_vdev *vdev;
 
@@ -6737,22 +6735,8 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter)
 			status, status);
 		goto error_wmm_init;
 	}
-
 	set_bit(WMM_INIT_DONE, &adapter->event_flags);
 
-	status = ucfg_get_enable_sifs_burst(hdd_ctx->psoc, &enable_sifs_burst);
-	if (!QDF_IS_STATUS_SUCCESS(status))
-		hdd_err("Failed to get sifs burst value, use default");
-	ret_val = sme_cli_set_command(adapter->deflink->vdev_id,
-				      wmi_pdev_param_burst_enable,
-				      enable_sifs_burst,
-				      PDEV_CMD);
-	if (ret_val) {
-		hdd_err("wmi_pdev_param_burst_enable set failed: %d", ret_val);
-		status = QDF_STATUS_E_FAILURE;
-		goto error_wmm_init;
-	}
-
 	hdd_set_netdev_flags(adapter);
 
 	/* rcpi info initialization */

+ 31 - 0
core/wma/src/wma_dev_if.c

@@ -111,6 +111,8 @@
 #include "wlan_vdev_mgr_tgt_if_tx_defs.h"
 #include "wlan_mlo_mgr_roam.h"
 #include "target_if_vdev_mgr_tx_ops.h"
+#include "wlan_fwol_ucfg_api.h"
+
 /*
  * FW only supports 8 clients in SAP/GO mode for D3 WoW feature
  * and hence host needs to hold a wake lock after 9th client connects
@@ -2979,6 +2981,7 @@ QDF_STATUS wma_post_vdev_create_setup(struct wlan_objmgr_vdev *vdev)
 	struct wlan_mlme_qos *qos_aggr;
 	struct vdev_mlme_obj *vdev_mlme;
 	tp_wma_handle wma_handle;
+	uint8_t enable_sifs_burst = 0;
 
 	if (!mac)
 		return QDF_STATUS_E_FAILURE;
@@ -3067,6 +3070,34 @@ QDF_STATUS wma_post_vdev_create_setup(struct wlan_objmgr_vdev *vdev)
 	    vdev_mlme->mgmt.generic.subtype == 0)
 		wma_set_vdev_latency_level_param(wma_handle, mac, vdev_id);
 
+	switch (vdev_mlme->mgmt.generic.type) {
+	case WMI_VDEV_TYPE_AP:
+		if (vdev_mlme->mgmt.generic.subtype !=
+		    WLAN_VDEV_MLME_SUBTYPE_P2P_DEVICE)
+			break;
+
+		fallthrough;
+	case WMI_VDEV_TYPE_STA:
+	case WMI_VDEV_TYPE_NAN:
+	case WMI_VDEV_TYPE_OCB:
+	case WMI_VDEV_TYPE_MONITOR:
+		status = ucfg_get_enable_sifs_burst(wma_handle->psoc,
+						    &enable_sifs_burst);
+		if (QDF_IS_STATUS_ERROR(status))
+			wma_err("Failed to get sifs burst value, use default");
+
+		status = wma_vdev_set_param(wma_handle->wmi_handle, vdev_id,
+					    WMI_PDEV_PARAM_BURST_ENABLE,
+					    enable_sifs_burst);
+
+		if (QDF_IS_STATUS_ERROR(status))
+			wma_err("WMI_PDEV_PARAM_BURST_ENABLE set failed %d",
+				status);
+		break;
+	default:
+		break;
+	}
+
 	wma_vdev_set_data_tx_callback(vdev);
 
 	return QDF_STATUS_SUCCESS;