Эх сурвалжийг харах

qcacmn: Add service_ready handling for multiple MBSSID groups

Add change to handle service_ready for,
1.  Ema multi-MBSSID group support
2.  Large beacon support greater than 1.5K

CRs-fixed: 3036717
Change-Id: I1c985faf429aacd78ae74fe0ffe18958fd6aa821
Basamma Yakkanahalli 3 жил өмнө
parent
commit
9ea8540ecd

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

@@ -485,6 +485,8 @@ struct vdev_mlme_beacon_info {
  * @vdev_bmap: vdev bitmap of VAPs in MBSS group
  * @is_cmn_param: flag to check mbss common param
  * @trans_bssid: bssid of transmitted AP (MBSS IE case)
+ * @is_multi_mbssid: Flag to identify multi group mbssid support
+ * @grp_id: Group id of current vdev
  */
 struct vdev_mlme_mbss_11ax {
 	uint32_t profile_idx;
@@ -494,6 +496,8 @@ struct vdev_mlme_mbss_11ax {
 	unsigned long vdev_bmap;
 	bool is_cmn_param;
 	uint8_t trans_bssid[QDF_MAC_ADDR_SIZE];
+	bool is_multi_mbssid;
+	uint32_t grp_id;
 };
 
 /**

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

@@ -238,6 +238,8 @@ static QDF_STATUS vdev_mgr_start_param_update(
 
 	mbss = &mlme_obj->mgmt.mbss_11ax;
 	param->mbssid_flags = mbss->mbssid_flags;
+	param->mbssid_multi_group_flag = mbss->is_multi_mbssid;
+	param->mbssid_multi_group_id   = mbss->grp_id;
 	param->vdevid_trans = mbss->vdevid_trans;
 
 	if (mlme_obj->mgmt.generic.type == WLAN_VDEV_MLME_TYPE_AP) {

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

@@ -562,6 +562,8 @@ struct mlo_vdev_start_partner_links {
  * @ldpc_rx_enabled: Enable/Disable LDPC RX for this vdev
  * @mbssid_flags: MBSSID flags to FW
  * @vdevid_trans: Tx VDEV ID
+ * @mbssid_multi_group_flag: Flag to identify multi group mbssid support
+ * @mbssid_multi_group_id: Group id of current vdev
  */
 struct vdev_start_params {
 	uint8_t vdev_id;
@@ -590,6 +592,8 @@ struct vdev_start_params {
 	struct mlo_vdev_start_flags mlo_flags;
 	struct mlo_vdev_start_partner_links mlo_partner;
 #endif
+	uint8_t mbssid_multi_group_flag;
+	uint32_t mbssid_multi_group_id;
 };
 
 /**

+ 2 - 0
wmi/inc/wmi_unified_param.h

@@ -5288,6 +5288,8 @@ typedef enum {
 	wmi_service_halphy_cal_status,
 	wmi_service_rtt_ap_initiator_staggered_mode_supported,
 	wmi_service_rtt_ap_initiator_bursted_mode_supported,
+	wmi_service_ema_multiple_group_supported,
+	wmi_service_large_beacon_supported,
 	wmi_service_aoa_for_rcc_supported,
 #ifdef WLAN_FEATURE_P2P_P2P_STA
 	wmi_service_p2p_p2p_cc_support,

+ 4 - 0
wmi/src/wmi_unified_tlv.c

@@ -17218,6 +17218,10 @@ static void populate_tlv_service(uint32_t *wmi_service)
 			WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED;
 	wmi_service[wmi_service_rtt_ap_initiator_bursted_mode_supported] =
 			WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED;
+	wmi_service[wmi_service_ema_multiple_group_supported] =
+			WMI_SERVICE_EMA_MULTIPLE_GROUP_SUPPORT;
+	wmi_service[wmi_service_large_beacon_supported] =
+			WMI_SERVICE_LARGE_BEACON_SUPPORT;
 	wmi_service[wmi_service_aoa_for_rcc_supported] =
 			WMI_SERVICE_AOA_FOR_RCC_SUPPORTED;
 #ifdef WLAN_FEATURE_P2P_P2P_STA