diff --git a/umac/mlme/include/wlan_vdev_mlme.h b/umac/mlme/include/wlan_vdev_mlme.h index 884bb6978b..f41bdf5e31 100644 --- a/umac/mlme/include/wlan_vdev_mlme.h +++ b/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; }; /** diff --git a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c b/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c index a57626a243..ca85fa4905 100644 --- a/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c +++ b/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) { diff --git a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h index adc401a8e1..96df618c55 100644 --- a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h +++ b/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; }; /** diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index f90d1a25eb..8659f45d12 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/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, diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 27e290650e..9cba6ba8e3 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/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