浏览代码

qcacmn: Vdev start changes for supporting 11be

Add support for setting ehtop on vdev start wmi command.

Change-Id: Ia710cfe082dafd6d36e232253fa2f5ba6d7512d3
CRs-Fixed: 2857805
Venkateswara Swamy Bandaru 4 年之前
父节点
当前提交
1ac1976b57

+ 5 - 0
target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c

@@ -252,6 +252,11 @@ target_if_vdev_mlme_id_2_wmi(uint32_t cfg_id)
 	case WLAN_MLME_CFG_HE_OPS:
 		wmi_id = wmi_vdev_param_set_heop;
 		break;
+#ifdef WLAN_FEATURE_11BE
+	case WLAN_MLME_CFG_EHT_OPS:
+		wmi_id = wmi_vdev_param_set_ehtop;
+#endif
+		break;
 	case WLAN_MLME_CFG_RTS_THRESHOLD:
 		wmi_id = wmi_vdev_param_rts_threshold;
 		break;

+ 13 - 0
umac/mlme/include/wlan_vdev_mlme.h

@@ -160,6 +160,16 @@ struct vdev_mlme_he_ops_info {
 	uint32_t he_ops;
 };
 
+#ifdef WLAN_FEATURE_11BE
+/**
+ * struct vdev_mlme_eht_ops_info - vdev mlme EHTOPS information
+ * @eht_ops: eht ops
+ */
+struct vdev_mlme_eht_ops_info {
+	uint32_t eht_ops;
+};
+#endif
+
 /**
  * struct vdev_mlme_he_ops_info - vdev protocol structure holding information
  * that is used in frames
@@ -178,6 +188,9 @@ struct vdev_mlme_proto {
 	struct vdev_mlme_vht_info vht_info;
 	struct vdev_mlme_ht_info ht_info;
 	struct vdev_mlme_he_ops_info he_ops_info;
+#ifdef WLAN_FEATURE_11BE
+	struct vdev_mlme_eht_ops_info eht_ops_info;
+#endif
 	struct vdev_mlme_proto_bss_color bss_color;
 };
 

+ 17 - 0
umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c

@@ -115,6 +115,21 @@ static inline bool vdev_mgr_is_49G_5G_6G_chan_freq(uint16_t chan_freq)
 }
 #endif
 
+#ifdef WLAN_FEATURE_11BE
+static void
+vdev_mgr_start_param_update_11be(struct vdev_mlme_obj *mlme_obj,
+				 struct vdev_start_params *param)
+{
+	param->eht_ops = mlme_obj->proto.eht_ops_info.eht_ops;
+}
+#else
+static void
+vdev_mgr_start_param_update_11be(struct vdev_mlme_obj *mlme_obj,
+				 struct vdev_start_params *param)
+{
+}
+#endif
+
 static QDF_STATUS vdev_mgr_start_param_update(
 					struct vdev_mlme_obj *mlme_obj,
 					struct vdev_start_params *param)
@@ -188,6 +203,8 @@ static QDF_STATUS vdev_mgr_start_param_update(
 	param->regdomain = dfs_reg;
 	param->he_ops = mlme_obj->proto.he_ops_info.he_ops;
 
+	vdev_mgr_start_param_update_11be(mlme_obj, param);
+
 	param->channel.chan_id = des_chan->ch_ieee;
 	param->channel.pwr = mlme_obj->mgmt.generic.tx_power;
 	param->channel.mhz = des_chan->ch_freq;

+ 4 - 0
umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h

@@ -454,6 +454,7 @@ struct vdev_scan_nac_rssi_params {
  * @cac_duration_ms: cac duration in milliseconds
  * @regdomain: Regulatory domain
  * @he_ops: HE ops
+ * @eht_ops: EHT ops
  * @channel_param: Channel params required by target.
  * @bcn_tx_rate_code: Beacon tx rate code.
  * @ldpc_rx_enabled: Enable/Disable LDPC RX for this vdev
@@ -475,6 +476,9 @@ struct vdev_start_params {
 	uint32_t cac_duration_ms;
 	uint32_t regdomain;
 	uint32_t he_ops;
+#ifdef WLAN_FEATURE_11BE
+	uint32_t eht_ops;
+#endif
 	struct mlme_channel_param channel;
 	enum mlme_bcn_tx_rate_code bcn_tx_rate_code;
 	bool ldpc_rx_enabled;

+ 4 - 1
umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_ucfg_api.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-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
@@ -108,6 +108,9 @@ enum wlan_mlme_cfg_id {
 	WLAN_MLME_CFG_RX_STREAMS,
 	WLAN_MLME_CFG_ENABLE_DISABLE_RTT_RESPONDER_ROLE,
 	WLAN_MLME_CFG_ENABLE_DISABLE_RTT_INITIATOR_ROLE,
+#ifdef WLAN_FEATURE_11BE
+	WLAN_MLME_CFG_EHT_OPS,
+#endif
 	WLAN_MLME_CFG_MAX
 };
 

+ 12 - 1
umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-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
@@ -215,6 +215,12 @@ wlan_util_vdev_mlme_set_param(struct vdev_mlme_obj *vdev_mlme,
 		mlme_proto->he_ops_info.he_ops = mlme_cfg.value;
 		is_wmi_cmd = true;
 		break;
+#ifdef WLAN_FEATURE_11BE
+	case WLAN_MLME_CFG_EHT_OPS:
+		mlme_proto->eht_ops_info.eht_ops = mlme_cfg.value;
+		is_wmi_cmd = true;
+		break;
+#endif
 	case WLAN_MLME_CFG_RTS_THRESHOLD:
 		mlme_mgmt->generic.rts_threshold = mlme_cfg.value;
 		is_wmi_cmd = true;
@@ -488,6 +494,11 @@ void wlan_util_vdev_mlme_get_param(struct vdev_mlme_obj *vdev_mlme,
 	case WLAN_MLME_CFG_HE_OPS:
 		*value = mlme_proto->he_ops_info.he_ops;
 		break;
+#ifdef WLAN_FEATURE_11BE
+	case WLAN_MLME_CFG_EHT_OPS:
+		*value = mlme_proto->eht_ops_info.eht_ops;
+		break;
+#endif
 	case WLAN_MLME_CFG_RTS_THRESHOLD:
 		*value = mlme_mgmt->generic.rts_threshold;
 		break;