diff --git a/target_if/init_deinit/src/init_event_handler.c b/target_if/init_deinit/src/init_event_handler.c index c313b1b0bd..bac9f7d962 100644 --- a/target_if/init_deinit/src/init_event_handler.c +++ b/target_if/init_deinit/src/init_event_handler.c @@ -131,6 +131,31 @@ init_deinit_update_roam_stats_cap(struct wmi_unified *wmi_handle, {} #endif +#ifdef MULTI_CLIENT_LL_SUPPORT +/** + * init_deinit_update_multi_client_ll_caps() - Update multi client service + * capability bit + * @wmi_handle: wmi hanle + * @psoc: psoc commom object + * + * Return: none + */ +static void +init_deinit_update_multi_client_ll_caps(struct wmi_unified *wmi_handle, + struct wlan_objmgr_psoc *psoc) +{ + if (wmi_service_enabled(wmi_handle, + wmi_service_configure_multi_client_ll_support)) + wlan_psoc_nif_fw_ext2_cap_set(psoc, + WLAN_SOC_WLM_MULTI_CLIENT_LL_SUPPORT); +} +#else +static inline void +init_deinit_update_multi_client_ll_caps(struct wmi_unified *wmi_handle, + struct wlan_objmgr_psoc *psoc) +{} +#endif + static int init_deinit_service_ready_event_handler(ol_scn_t scn_handle, uint8_t *event, uint32_t data_len) @@ -342,6 +367,8 @@ static int init_deinit_service_ready_event_handler(ol_scn_t scn_handle, init_deinit_update_rssi_dbm_conv_support(wmi_handle, psoc); + init_deinit_update_multi_client_ll_caps(wmi_handle, psoc); + if (wmi_service_enabled(wmi_handle, wmi_service_ext_msg)) { target_if_debug("Wait for EXT message"); } else { diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h index 6088052553..e0acdfafcc 100644 --- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h +++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h @@ -239,6 +239,8 @@ #define WLAN_RTT_11AZ_MAC_SEC_SUPPORT 0x00000002 /* 11AZ Secure ranging PHY Security support */ #define WLAN_RTT_11AZ_MAC_PHY_SEC_SUPPORT 0x00000004 +/* multi client feature flags support */ +#define WLAN_SOC_WLM_MULTI_CLIENT_LL_SUPPORT 0x00000008 /* Roam Frame info stats - per candidate frames support */ #define WLAN_ROAM_STATS_FRAME_INFO_PER_CANDIDATE 0x00000008 diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 0b3ff6f854..b9f78256d7 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -5596,6 +5596,9 @@ typedef enum { wmi_service_pktlog_decode_info_support, #ifdef WLAN_FEATURE_ROAM_OFFLOAD wmi_service_roam_stats_per_candidate_frame_info, +#endif +#ifdef MULTI_CLIENT_LL_SUPPORT + wmi_service_configure_multi_client_ll_support, #endif wmi_services_max, } wmi_conv_service_ids; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index ca3f914119..d76990d55b 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -18810,6 +18810,10 @@ static void populate_tlv_service(uint32_t *wmi_service) wmi_service[wmi_service_roam_stats_per_candidate_frame_info] = WMI_SERVICE_ROAM_STAT_PER_CANDIDATE_FRAME_INFO_SUPPORT; #endif +#ifdef MULTI_CLIENT_LL_SUPPORT + wmi_service[wmi_service_configure_multi_client_ll_support] = + WMI_SERVICE_MULTI_CLIENT_LL_SUPPORT; +#endif } /**