qcacmn: Support multi-client service bit info from FW

Add change to fetch and save the WMI service capability
bit of FW to support multi-client low latency feature
using service bit.

Change-Id: Ifce82c06fc913668949ed06634da1eebcea80397
CRs-Fixed: 3180932
This commit is contained in:
abhinav kumar
2022-04-17 14:52:52 +05:30
committed by Madan Koyyalamudi
parent 4609e90b57
commit 5cb3946000
4 changed files with 36 additions and 0 deletions

View File

@@ -131,6 +131,31 @@ init_deinit_update_roam_stats_cap(struct wmi_unified *wmi_handle,
{} {}
#endif #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, static int init_deinit_service_ready_event_handler(ol_scn_t scn_handle,
uint8_t *event, uint8_t *event,
uint32_t data_len) 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_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)) { if (wmi_service_enabled(wmi_handle, wmi_service_ext_msg)) {
target_if_debug("Wait for EXT message"); target_if_debug("Wait for EXT message");
} else { } else {

View File

@@ -239,6 +239,8 @@
#define WLAN_RTT_11AZ_MAC_SEC_SUPPORT 0x00000002 #define WLAN_RTT_11AZ_MAC_SEC_SUPPORT 0x00000002
/* 11AZ Secure ranging PHY Security support */ /* 11AZ Secure ranging PHY Security support */
#define WLAN_RTT_11AZ_MAC_PHY_SEC_SUPPORT 0x00000004 #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 */ /* Roam Frame info stats - per candidate frames support */
#define WLAN_ROAM_STATS_FRAME_INFO_PER_CANDIDATE 0x00000008 #define WLAN_ROAM_STATS_FRAME_INFO_PER_CANDIDATE 0x00000008

View File

@@ -5596,6 +5596,9 @@ typedef enum {
wmi_service_pktlog_decode_info_support, wmi_service_pktlog_decode_info_support,
#ifdef WLAN_FEATURE_ROAM_OFFLOAD #ifdef WLAN_FEATURE_ROAM_OFFLOAD
wmi_service_roam_stats_per_candidate_frame_info, wmi_service_roam_stats_per_candidate_frame_info,
#endif
#ifdef MULTI_CLIENT_LL_SUPPORT
wmi_service_configure_multi_client_ll_support,
#endif #endif
wmi_services_max, wmi_services_max,
} wmi_conv_service_ids; } wmi_conv_service_ids;

View File

@@ -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[wmi_service_roam_stats_per_candidate_frame_info] =
WMI_SERVICE_ROAM_STAT_PER_CANDIDATE_FRAME_INFO_SUPPORT; WMI_SERVICE_ROAM_STAT_PER_CANDIDATE_FRAME_INFO_SUPPORT;
#endif #endif
#ifdef MULTI_CLIENT_LL_SUPPORT
wmi_service[wmi_service_configure_multi_client_ll_support] =
WMI_SERVICE_MULTI_CLIENT_LL_SUPPORT;
#endif
} }
/** /**