Преглед изворни кода

qcacmn: Cleanup duplicate fields in vdev_mlme

Add change to cleanup duplicate fields of
of vdev_mlme, which are also in mlme_channel_param
and their dependencies while updating
vdev_start_param. Cleanup unused mlme_cfg_ids.

Change-Id: Ie32971283a337f04692c0c0bc7f41fff75c090c3
CRs-Fixed: 2407953
Naga пре 6 година
родитељ
комит
9dad9767b1

+ 4 - 0
umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h

@@ -261,6 +261,8 @@ struct wlan_vdev_create_params {
  * @ch_maxpower:  Maximum tx power in dBm.
  * @ch_freq_seg1: Channel Center frequeny for VHT80/160 and HE80/160.
  * @ch_freq_seg2: Second channel Center frequency applicable for 80+80MHz mode.
+ * @ch_cfreq1:    channel center frequency for primary
+ * @ch_cfreq2:    channel center frequency for secondary
  * @ch_width:     Channel width.
  * @ch_phymode:   Channel phymode.
  */
@@ -272,6 +274,8 @@ struct wlan_channel {
 	int8_t       ch_maxpower;
 	uint8_t      ch_freq_seg1;
 	uint8_t      ch_freq_seg2;
+	uint32_t     ch_cfreq1;
+	uint32_t     ch_cfreq2;
 	enum phy_ch_width ch_width;
 	enum wlan_phymode ch_phymode;
 };

+ 11 - 0
umac/dfs/dispatcher/inc/wlan_dfs_utils_api.h

@@ -510,6 +510,17 @@ static inline bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan)
 {
 	return wlan_reg_is_dfs_ch(pdev, chan);
 }
+
+/**
+ * utils_is_dfs_cfreq2_ch() - is channel dfs cfreq2.
+ * @pdev: pdev handler.
+ *
+ * is channel dfs.
+ *
+ * Return: True if channel dfs cfreq2, else false.
+ */
+bool utils_is_dfs_cfreq2_ch(struct wlan_objmgr_pdev *pdev);
+
 /**
  * utils_dfs_reg_update_nol_ch() - set nol channel
  *

+ 13 - 0
umac/dfs/dispatcher/src/wlan_dfs_utils_api.c

@@ -1183,4 +1183,17 @@ QDF_STATUS utils_dfs_get_disable_radar_marking(struct wlan_objmgr_pdev *pdev,
 }
 
 qdf_export_symbol(utils_dfs_get_disable_radar_marking);
+
+bool utils_is_dfs_cfreq2_ch(struct wlan_objmgr_pdev *pdev)
+{
+	struct wlan_dfs *dfs;
+
+	dfs = wlan_pdev_get_dfs_obj(pdev);
+	if (!dfs)
+		return false;
+
+	return WLAN_IS_CHAN_DFS_CFREQ2(dfs->dfs_curchan);
+}
+
+qdf_export_symbol(utils_is_dfs_cfreq2_ch);
 #endif

+ 3 - 24
umac/mlme/include/wlan_vdev_mlme.h

@@ -118,7 +118,6 @@ struct vdev_mlme_proto_bss_color {
  * @implicit_bf: Implicit BF support
  * @sounding_dimension: Beamformer number of sounding dimension
  * @bfee_sts_cap: beam formee STA capability
- * @en_2gvht: 256 qam status
  * @allow_vht: vht capability status
  */
 struct vdev_mlme_vht_info {
@@ -130,7 +129,6 @@ struct vdev_mlme_vht_info {
 	uint8_t  implicit_bf;
 	uint8_t  sounding_dimension;
 	uint8_t  bfee_sts_cap;
-	uint8_t  en_2gvht;
 	bool     allow_vht;
 };
 
@@ -186,6 +184,7 @@ struct vdev_mlme_proto {
  * @maxpower: Max power
  * @maxregpower: max regulatory power
  * @antennamax: max antenna
+ * @reg_class_id: reg domain class id
  * @ampdu: ampdu limit
  * @amsdu: amsdu limit
  * @ssid: service set identifier
@@ -195,18 +194,8 @@ struct vdev_mlme_proto {
  * @rx_decap_type: rx decap type
  * @tx_decap_type: tx decap type
  * @disable_hw_ack: disable ha ack flag
- * @chan_flags: channel flags
- * @chan_flags_ext: extended channel flags
- * @cfreq0: channel frequency index0
- * @cfreq1: channel frequency index1
- * @dfs_set: DFS status flag
- * @dfs_set_cfreq2: DFS status channel index
- * @is_chan_passive: channel passive indication flag
- * @reg_class_id: reg domain class id
- * @is_11ax_stub_enabled: 11AX stub status indication flag
- * @nss_2g: 2G spatial streams
- * @nss_5g: 5G spatial streams
  * @bssid: bssid
+ * @phy_mode: phy mode
  */
 struct vdev_mlme_mgmt_generic {
 	uint32_t rts_threshold;
@@ -220,6 +209,7 @@ struct vdev_mlme_mgmt_generic {
 	uint8_t maxpower;
 	uint8_t maxregpower;
 	uint8_t antennamax;
+	uint8_t reg_class_id;
 	uint8_t ampdu;
 	uint8_t amsdu;
 	char ssid[WLAN_SSID_MAX_LEN + 1];
@@ -229,17 +219,6 @@ struct vdev_mlme_mgmt_generic {
 	uint8_t rx_decap_type;
 	uint8_t tx_decap_type;
 	bool disable_hw_ack;
-	uint64_t chan_flags;
-	uint16_t chan_flags_ext;
-	uint32_t cfreq1;
-	uint32_t cfreq2;
-	bool dfs_set;
-	bool dfs_set_cfreq2;
-	bool is_chan_passive;
-	uint8_t reg_class_id;
-	uint8_t is_11ax_stub_enabled;
-	uint8_t nss_2g;
-	uint8_t nss_5g;
 	uint8_t bssid[QDF_MAC_ADDR_SIZE];
 	uint32_t phy_mode;
 };

+ 8 - 7
umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c

@@ -32,6 +32,7 @@
 #include <wlan_lmac_if_api.h>
 #include <wlan_reg_services_api.h>
 #include <wlan_dfs_tgt_api.h>
+#include <wlan_dfs_utils_api.h>
 #include <wlan_vdev_mgr_ucfg_api.h>
 
 static QDF_STATUS vdev_mgr_create_param_update(
@@ -57,8 +58,8 @@ static QDF_STATUS vdev_mgr_create_param_update(
 	mbss = &mlme_obj->mgmt.mbss_11ax;
 	param->pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
 	param->vdev_id = wlan_vdev_get_id(vdev);
-	param->nss_2g = mlme_obj->mgmt.generic.nss_2g;
-	param->nss_5g = mlme_obj->mgmt.generic.nss_5g;
+	param->nss_2g = mlme_obj->proto.generic.nss_2g;
+	param->nss_5g = mlme_obj->proto.generic.nss_5g;
 	param->type = mlme_obj->mgmt.generic.type;
 	param->subtype = mlme_obj->mgmt.generic.subtype;
 	param->mbssid_flags = mbss->mbssid_flags;
@@ -143,15 +144,15 @@ static QDF_STATUS vdev_mgr_start_param_update(
 	param->channel.mhz = des_chan->ch_freq;
 	param->channel.half_rate = mlme_obj->mgmt.rate_info.half_rate;
 	param->channel.quarter_rate = mlme_obj->mgmt.rate_info.quarter_rate;
-	param->channel.dfs_set = mlme_obj->mgmt.generic.dfs_set;
-	param->channel.dfs_set_cfreq2 = mlme_obj->mgmt.generic.dfs_set_cfreq2;
+	param->channel.dfs_set = utils_is_dfs_ch(pdev, param->channel.chan_id);
+	param->channel.dfs_set_cfreq2 = utils_is_dfs_cfreq2_ch(pdev);
 	param->channel.is_chan_passive =
-		mlme_obj->mgmt.generic.is_chan_passive;
+		utils_is_dfs_ch(pdev, param->channel.chan_id);
 	param->channel.allow_ht = mlme_obj->proto.ht_info.allow_ht;
 	param->channel.allow_vht = mlme_obj->proto.vht_info.allow_vht;
 	param->channel.phy_mode = mlme_obj->mgmt.generic.phy_mode;
-	param->channel.cfreq1 = mlme_obj->mgmt.generic.cfreq1;
-	param->channel.cfreq2 = mlme_obj->mgmt.generic.cfreq2;
+	param->channel.cfreq1 = des_chan->ch_cfreq1;
+	param->channel.cfreq2 = des_chan->ch_cfreq2;
 	param->channel.maxpower = mlme_obj->mgmt.generic.maxpower;
 	param->channel.minpower = mlme_obj->mgmt.generic.minpower;
 	param->channel.maxregpower = mlme_obj->mgmt.generic.maxregpower;

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

@@ -100,8 +100,7 @@ enum wlan_mlme_cfg_id {
 	WLAN_MLME_CFG_RATEMASK_LOWER32_2,
 	WLAN_MLME_CFG_BCN_TX_RATE,
 	WLAN_MLME_CFG_BCN_TX_RATE_CODE,
-	WLAN_MLME_CFG_2G_VHT,
-	WLAN_MLME_CFG_11AX_STUB,
+	WLAN_MLME_CFG_RATEMASK_CAPS,
 	WLAN_MLME_CFG_MAX
 };
 

+ 0 - 6
umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c

@@ -511,12 +511,6 @@ void wlan_util_vdev_mlme_get_param(struct vdev_mlme_obj *vdev_mlme,
 	case WLAN_MLME_CFG_BCN_TX_RATE:
 		*value = mlme_mgmt->rate_info.bcn_tx_rate;
 		break;
-	case WLAN_MLME_CFG_2G_VHT:
-		*value = mlme_proto->vht_info.en_2gvht;
-		break;
-	case WLAN_MLME_CFG_11AX_STUB:
-		*value = mlme_mgmt->generic.is_11ax_stub_enabled;
-		break;
 	default:
 		break;
 	}