Bläddra i källkod

qcacmn: Add support for 11be D1.2 eht mcs map

Add support for 11be D1.2 eht mac map.

Change-Id: Ie5e0934f01c5614c0d2788d9b56b2e755ea23b1d
CRs-Fixed: 3081122
Venkateswara Swamy Bandaru 3 år sedan
förälder
incheckning
d2d8b77ec4

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

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. 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
@@ -262,6 +263,8 @@ struct wlan_psoc_host_hw_mode_caps {
  * @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
+ * @eht_supp_mcs_ext_2G: 2G EHT Supported MCS Set for Rx/Tx as per 11be D1.2
+ * @eht_supp_mcs_ext_5G: 5G EHT Supported MCS Set for Rx/Tx as per 11be D1.2
  */
 struct wlan_psoc_host_mac_phy_caps_ext2 {
 	uint32_t hw_mode_id;
@@ -276,6 +279,8 @@ struct wlan_psoc_host_mac_phy_caps_ext2 {
 	uint32_t eht_cap_phy_info_2G[PSOC_HOST_MAX_EHT_PHY_SIZE];
 	uint32_t eht_cap_phy_info_5G[PSOC_HOST_MAX_EHT_PHY_SIZE];
 	uint32_t eht_cap_info_internal;
+	uint32_t eht_supp_mcs_ext_2G[PSOC_HOST_EHT_MCS_NSS_MAP_2G_SIZE];
+	uint32_t eht_supp_mcs_ext_5G[PSOC_HOST_EHT_MCS_NSS_MAP_5G_SIZE];
 #endif
 };
 

+ 2 - 0
umac/cmn_services/inc/wlan_cmn.h

@@ -695,6 +695,8 @@ struct wlan_ssid {
 #ifdef WLAN_FEATURE_11BE
 #define PSOC_HOST_MAX_EHT_MAC_SIZE 1
 #define PSOC_HOST_MAX_EHT_PHY_SIZE 2
+#define PSOC_HOST_EHT_MCS_NSS_MAP_2G_SIZE 2
+#define PSOC_HOST_EHT_MCS_NSS_MAP_5G_SIZE 4
 #endif
 
 #endif /* _WLAN_OBJMGR_CMN_H_*/

+ 19 - 2
wmi/src/wmi_unified_tlv.c

@@ -12434,6 +12434,13 @@ static void extract_mac_phy_cap_ehtcaps(
 		     &mac_phy_caps->eht_cap_phy_info_5G,
 		     sizeof(param->eht_cap_phy_info_5G));
 
+	qdf_mem_copy(&param->eht_supp_mcs_ext_2G,
+		     &mac_phy_caps->eht_supp_mcs_ext_2G,
+		     sizeof(param->eht_supp_mcs_ext_2G));
+	qdf_mem_copy(&param->eht_supp_mcs_ext_5G,
+		     &mac_phy_caps->eht_supp_mcs_ext_5G,
+		     sizeof(param->eht_supp_mcs_ext_5G));
+
 	wmi_debug("EHT mac caps: mac cap_info_2G %x, mac cap_info_5G %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_5G[0],
@@ -12442,16 +12449,26 @@ static void extract_mac_phy_cap_ehtcaps(
 
 	wmi_nofl_debug("EHT phy caps: ");
 
-	wmi_nofl_debug("2G: ");
+	wmi_nofl_debug("2G:");
 	for (i = 0; i < PSOC_HOST_MAX_EHT_PHY_SIZE; i++) {
 		wmi_nofl_debug("index %d value %d",
 			       i, param->eht_cap_phy_info_2G[i]);
 	}
-	wmi_nofl_debug("5G: ");
+	wmi_nofl_debug("5G:");
 	for (i = 0; i < PSOC_HOST_MAX_EHT_PHY_SIZE; i++) {
 		wmi_nofl_debug("index %d value %d",
 			       i, param->eht_cap_phy_info_5G[i]);
 	}
+	wmi_nofl_debug("2G MCS ext Map:");
+	for (i = 0; i < PSOC_HOST_EHT_MCS_NSS_MAP_2G_SIZE; i++) {
+		wmi_nofl_debug("index %d value %d",
+			       i, param->eht_supp_mcs_ext_2G[i]);
+	}
+	wmi_nofl_debug("5G MCS ext Map:");
+	for (i = 0; i < PSOC_HOST_EHT_MCS_NSS_MAP_5G_SIZE; i++) {
+		wmi_nofl_debug("index %d value %d",
+			       i, param->eht_supp_mcs_ext_5G[i]);
+	}
 }
 #else
 static void extract_mac_phy_cap_ehtcaps(