Parcourir la source

qcacmn: EHT changes as per latest fw cmn headers

Updated the EHT related variables as per latest fw cmn headers.
Address review comments from previous EHT gerrits.

Change-Id: I67cd58a4efcf3e06d2ca3b5570432593b1d80825
CRs-Fixed: 2902607
Venkateswara Swamy Bandaru il y a 4 ans
Parent
commit
216478aaae

+ 1 - 0
target_if/core/inc/target_if.h

@@ -1440,6 +1440,7 @@ static inline struct wlan_psoc_host_mac_phy_caps
  * target_psoc_get_mac_phy_cap_ext2_for_mode() - get mac_phy_caps_ext2
  *                                               for a hw-mode
  * @psoc_info:  pointer to structure target_psoc_info
+ * @mode: hw mode
  *
  * API to get mac_phy_cap for a specified hw-mode
  *

+ 7 - 0
target_if/init_deinit/inc/service_ready_param.h

@@ -251,6 +251,13 @@ struct wlan_psoc_host_hw_mode_caps {
  * @pdev_id: Pdev id
  * @phy_id: Phy id
  * @wireless_modes_ext: Extended wireless modes
+ * @eht_cap_info_2G[]: EHT capability info field of 802.11ax, WMI_HE_CAP defines
+ * @eht_supp_mcs_2G: EHT Supported MCS Set field Rx/Tx same
+ * @eht_cap_info_5G[]: EHT capability info field of 802.11ax, WMI_HE_CAP defines
+ * @eht_supp_mcs_5G: EHT Supported MCS Set field Rx/Tx same
+ * @eht_cap_phy_info_2G: 2G EHT capability phy field
+ * @eht_cap_phy_info_5G: 5G EHT capability phy field
+ * @eht_cap_info_internal: EHT PHY internal feature capability
  */
 struct wlan_psoc_host_mac_phy_caps_ext2 {
 	uint32_t hw_mode_id;

+ 5 - 3
umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h

@@ -470,6 +470,8 @@ enum element_ie {
  * @WLAN_EXTN_ELEMID_HE_6G_CAP: HE 6GHz Band Capabilities IE
  * @WLAN_EXTN_ELEMID_SRP:    spatial reuse parameter IE
  * @WLAN_EXTN_ELEMID_NONINHERITANCE: Non inheritance IE
+ * @WLAN_EXTN_ELEMID_EHTCAP: EHT Capabilities IE
+ * @WLAN_EXTN_ELEMID_EHTOP: EHT Operation IE
  */
 enum extn_element_ie {
 	WLAN_EXTN_ELEMID_MAX_CHAN_SWITCH_TIME = 34,
@@ -1421,8 +1423,8 @@ struct wlan_ie_hecaps {
  * @elem_id: EHT caps IE
  * @elem_len: EHT caps IE len
  * @elem_id_extn: EHT caps extension id
- * @he_mac_cap: EHT mac capabilities
- * @he_phy_cap: EHT phy capabilities
+ * @eht_mac_cap: EHT mac capabilities
+ * @eht_phy_cap: EHT phy capabilities
  * @phy_cap_bytes: EHT phy capability bytes
  * @supported_ch_width_set: Supported channel width set
  * @mcs_bw_map: MCS NSS map per bandwidth
@@ -1448,7 +1450,7 @@ struct wlan_ie_ehtcaps {
 } qdf_packed;
 
 /**
- * struct wlan_ie_heops - EHT operation element
+ * struct wlan_ie_ehtops - EHT operation element
  * @elem_id: EHT caps IE
  * @elem_len: EHT caps IE len
  * @elem_id_extn: EHT caps extension id

+ 1 - 0
umac/scan/dispatcher/inc/wlan_scan_utils_api.h

@@ -730,6 +730,7 @@ util_scan_copy_beacon_data(struct scan_cache_entry *new_entry,
 	ie_lst->single_pmk = conv_ptr(ie_lst->single_pmk, old_ptr, new_ptr);
 	ie_lst->rsnxe = conv_ptr(ie_lst->rsnxe, old_ptr, new_ptr);
 #ifdef WLAN_FEATURE_11BE
+	/* This macro will be removed once 11be is enabled */
 	ie_lst->ehtcap = conv_ptr(ie_lst->ehtcap, old_ptr, new_ptr);
 	ie_lst->ehtop = conv_ptr(ie_lst->ehtop, old_ptr, new_ptr);
 #endif

+ 12 - 12
umac/scan/dispatcher/src/wlan_scan_utils_api.c

@@ -186,10 +186,10 @@ static bool util_is_pureg_rate(uint8_t *rates, uint8_t nrates)
 
 #ifdef WLAN_FEATURE_11BE
 static enum wlan_phymode
-util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev,
-			      struct scan_cache_entry *scan_params,
-			      enum wlan_phymode phymode,
-			      uint8_t band_mask)
+util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev,
+			   struct scan_cache_entry *scan_params,
+			   enum wlan_phymode phymode,
+			   uint8_t band_mask)
 {
 	struct wlan_ie_ehtops *eht_ops;
 
@@ -231,10 +231,10 @@ util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev,
 }
 #else
 static enum wlan_phymode
-util_scan_get_phymode_5g_11be(struct wlan_objmgr_pdev *pdev,
-			      struct scan_cache_entry *scan_params,
-			      enum wlan_phymode phymode,
-			      uint8_t band_mask)
+util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev,
+			   struct scan_cache_entry *scan_params,
+			   enum wlan_phymode phymode,
+			   uint8_t band_mask)
 {
 	return phymode;
 }
@@ -392,8 +392,8 @@ util_scan_get_phymode_6g(struct wlan_objmgr_pdev *pdev,
 					he_6g_params->chan_freq_seg1,
 					band_mask);
 
-	phymode = util_scan_get_phymode_5g_11be(pdev, scan_params,
-						phymode, band_mask);
+	phymode = util_scan_get_phymode_11be(pdev, scan_params,
+					     phymode, band_mask);
 
 	return phymode;
 }
@@ -528,8 +528,8 @@ util_scan_get_phymode_5g(struct wlan_objmgr_pdev *pdev,
 		break;
 	}
 
-	phymode = util_scan_get_phymode_5g_11be(pdev, scan_params,
-						phymode, band_mask);
+	phymode = util_scan_get_phymode_11be(pdev, scan_params,
+					     phymode, band_mask);
 
 	return phymode;
 }

+ 2 - 2
wmi/inc/wmi_unified_param.h

@@ -1129,9 +1129,9 @@ struct peer_assoc_params {
 	uint32_t peer_he_rx_mcs_set[WMI_HOST_MAX_HE_RATE_SET];
 	uint32_t peer_he_tx_mcs_set[WMI_HOST_MAX_HE_RATE_SET];
 #ifdef WLAN_FEATURE_11BE
-	uint32_t peer_eht_cap_macinfo[WMI_HOST_MAX_HECAP_MAC_SIZE];
+	uint32_t peer_eht_cap_macinfo[WMI_HOST_MAX_EHTCAP_MAC_SIZE];
 	uint32_t peer_eht_ops;
-	uint32_t peer_eht_cap_phyinfo[WMI_HOST_MAX_HECAP_PHY_SIZE];
+	uint32_t peer_eht_cap_phyinfo[WMI_HOST_MAX_EHTCAP_PHY_SIZE];
 	uint32_t peer_eht_mcs_count;
 	uint32_t peer_eht_rx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET];
 	uint32_t peer_eht_tx_mcs_set[WMI_HOST_MAX_EHT_RATE_SET];

+ 23 - 28
wmi/src/wmi_unified_tlv.c

@@ -2584,34 +2584,30 @@ static inline void update_peer_flags_tlv_ehtinfo(
 			wmi_peer_assoc_complete_cmd_fixed_param * cmd,
 			struct peer_assoc_params *param, uint8_t *buf_ptr)
 {
-	wmi_he_rate_set *eht_mcs;
+	wmi_eht_rate_set *eht_mcs;
 	int i;
 
-	cmd->peer_eht_cap_info =
-		param->peer_eht_cap_macinfo[WMI_HOST_EHTCAP_MAC_WORD1];
-	cmd->peer_eht_cap_info_ext =
-		param->peer_eht_cap_macinfo[WMI_HOST_EHTCAP_MAC_WORD2];
 	cmd->peer_eht_ops = param->peer_eht_ops;
+	qdf_mem_copy(&cmd->peer_eht_cap_mac, &param->peer_eht_cap_macinfo,
+		     sizeof(param->peer_eht_cap_macinfo));
 	qdf_mem_copy(&cmd->peer_eht_cap_phy, &param->peer_eht_cap_phyinfo,
 		     sizeof(param->peer_eht_cap_phyinfo));
 
-	cmd->peer_eht_num_mcs = param->peer_eht_mcs_count;
-
 	WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
-		       (param->peer_eht_mcs_count * sizeof(wmi_he_rate_set)));
+		       (param->peer_eht_mcs_count * sizeof(wmi_eht_rate_set)));
 	buf_ptr += WMI_TLV_HDR_SIZE;
 
 	/* Loop through the EHT rate set */
 	for (i = 0; i < param->peer_eht_mcs_count; i++) {
-		eht_mcs = (wmi_he_rate_set *)buf_ptr;
-		WMITLV_SET_HDR(eht_mcs, WMITLV_TAG_STRUC_wmi_he_rate_set,
-			       WMITLV_GET_STRUCT_TLVLEN(wmi_he_rate_set));
+		eht_mcs = (wmi_eht_rate_set *)buf_ptr;
+		WMITLV_SET_HDR(eht_mcs, WMITLV_TAG_STRUC_wmi_eht_rate_set,
+			       WMITLV_GET_STRUCT_TLVLEN(wmi_eht_rate_set));
 
 		eht_mcs->rx_mcs_set = param->peer_eht_rx_mcs_set[i];
 		eht_mcs->tx_mcs_set = param->peer_eht_tx_mcs_set[i];
 		wmi_debug("EHT idx %d RxMCSmap %x TxMCSmap %x ",
 			  i, eht_mcs->rx_mcs_set, eht_mcs->tx_mcs_set);
-		buf_ptr += sizeof(wmi_he_rate_set);
+		buf_ptr += sizeof(wmi_eht_rate_set);
 	}
 
 	if ((param->eht_flag) && (param->peer_eht_mcs_count > 1) &&
@@ -2629,9 +2625,9 @@ static inline void update_peer_flags_tlv_ehtinfo(
 			  QDF_MAC_ADDR_REF(param->peer_mac));
 	}
 
-	wmi_debug("EHT cap_info %x ops %x EHT cap_info_ext %x EHT phy %x  %x  %x  ",
-		  cmd->peer_eht_cap_info,
-		  cmd->peer_eht_ops, cmd->peer_he_cap_info_ext,
+	wmi_debug("EHT cap_mac %x %x ehtops %x  EHT phy %x  %x  %x  ",
+		  cmd->peer_eht_cap_mac[0],
+		  cmd->peer_eht_cap_mac[1], cmd->peer_eht_ops,
 		  cmd->peer_eht_cap_phy[0], cmd->peer_he_cap_phy[1],
 		  cmd->peer_eht_cap_phy[2]);
 }
@@ -11419,18 +11415,17 @@ static void extract_mac_phy_cap_ehtcaps(
 {
 	uint32_t i;
 
-	param->eht_cap_info_2G[WMI_HOST_EHTCAP_MAC_WORD1] =
-		mac_phy_caps->eht_cap_info_2G;
-	param->eht_cap_info_2G[WMI_HOST_EHTCAP_MAC_WORD2] =
-		mac_phy_caps->eht_cap_info_2G_ext;
 	param->eht_supp_mcs_2G = mac_phy_caps->eht_supp_mcs_2G;
-	param->eht_cap_info_5G[WMI_HOST_EHTCAP_MAC_WORD1] =
-		mac_phy_caps->eht_cap_info_5G;
-	param->eht_cap_info_5G[WMI_HOST_EHTCAP_MAC_WORD2] =
-		mac_phy_caps->eht_cap_info_5G_ext;
 	param->eht_supp_mcs_5G = mac_phy_caps->eht_supp_mcs_5G;
 	param->eht_cap_info_internal = mac_phy_caps->eht_cap_info_internal;
 
+	qdf_mem_copy(&param->eht_cap_info_2G,
+		     &mac_phy_caps->eht_cap_mac_info_2G,
+		     sizeof(param->eht_cap_info_2G));
+	qdf_mem_copy(&param->eht_cap_info_5G,
+		     &mac_phy_caps->eht_cap_mac_info_5G,
+		     sizeof(param->eht_cap_info_5G));
+
 	qdf_mem_copy(&param->eht_cap_phy_info_2G,
 		     &mac_phy_caps->eht_cap_phy_info_2G,
 		     sizeof(param->eht_cap_phy_info_2G));
@@ -11438,11 +11433,11 @@ static void extract_mac_phy_cap_ehtcaps(
 		     &mac_phy_caps->eht_cap_phy_info_5G,
 		     sizeof(param->eht_cap_phy_info_5G));
 
-	wmi_debug("EHT mac caps: cap_info_2G %x, cap_info_2G_ext %x, cap_info_5G %x, cap_info_5G_ext %x, supp_mcs_2G %x, supp_mcs_5G %x, info_internal %x",
-		  mac_phy_caps->eht_cap_info_2G,
-		  mac_phy_caps->eht_cap_info_2G_ext,
-		  mac_phy_caps->eht_cap_info_5G,
-		  mac_phy_caps->eht_cap_info_5G_ext,
+	wmi_debug("EHT mac caps: mac cap_info_2G %x %x, mac cap_info_5G %x %x, supp_mcs_2G %x, supp_mcs_5G %x, info_internal %x",
+		  mac_phy_caps->eht_cap_mac_info_2G[0],
+		  mac_phy_caps->eht_cap_mac_info_2G[1],
+		  mac_phy_caps->eht_cap_mac_info_5G[0],
+		  mac_phy_caps->eht_cap_mac_info_5G[1],
 		  mac_phy_caps->eht_supp_mcs_2G, mac_phy_caps->eht_supp_mcs_5G,
 		  mac_phy_caps->eht_cap_info_internal);