qcacmn: Support vendor handoff service bit info from FW

Add change to fetch and save the WMI service capability
bit of FW to support vendor handoff control feature
using service bit.

Change-Id: I6bc85f2807032bf84d391f34c814c91de906ab42
CRs-Fixed: 3225147
This commit is contained in:
abhinav kumar
2022-05-08 16:48:10 +05:30
committed by Madan Koyyalamudi
parent 6e1dde7e43
commit f55ec57e32
4 changed files with 36 additions and 0 deletions

View File

@@ -156,6 +156,31 @@ init_deinit_update_multi_client_ll_caps(struct wmi_unified *wmi_handle,
{} {}
#endif #endif
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
/**
* init_deinit_update_vendor_handoff_control_caps() - Update vendor handoff
* control service capability bit
* @wmi_handle: wmi hanle
* @psoc: psoc commom object
*
* Return: none
*/
static void
init_deinit_update_vendor_handoff_control_caps(struct wmi_unified *wmi_handle,
struct wlan_objmgr_psoc *psoc)
{
if (wmi_service_enabled(wmi_handle,
wmi_service_configure_vendor_handoff_control_support))
wlan_psoc_nif_fw_ext2_cap_set(psoc,
WLAN_SOC_VENDOR_HANDOFF_CONTROL);
}
#else
static inline void
init_deinit_update_vendor_handoff_control_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)
@@ -369,6 +394,8 @@ static int init_deinit_service_ready_event_handler(ol_scn_t scn_handle,
init_deinit_update_multi_client_ll_caps(wmi_handle, psoc); init_deinit_update_multi_client_ll_caps(wmi_handle, psoc);
init_deinit_update_vendor_handoff_control_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

@@ -244,6 +244,8 @@
#define WLAN_ROAM_STATS_FRAME_INFO_PER_CANDIDATE 0x00000008 #define WLAN_ROAM_STATS_FRAME_INFO_PER_CANDIDATE 0x00000008
/* multi client feature flags support */ /* multi client feature flags support */
#define WLAN_SOC_WLM_MULTI_CLIENT_LL_SUPPORT 0x00000010 #define WLAN_SOC_WLM_MULTI_CLIENT_LL_SUPPORT 0x00000010
/* vendor handoff control feature support */
#define WLAN_SOC_VENDOR_HANDOFF_CONTROL 0x00000020
/* PSOC op flags */ /* PSOC op flags */

View File

@@ -5736,6 +5736,9 @@ typedef enum {
#endif #endif
#ifdef MULTI_CLIENT_LL_SUPPORT #ifdef MULTI_CLIENT_LL_SUPPORT
wmi_service_configure_multi_client_ll_support, wmi_service_configure_multi_client_ll_support,
#endif
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
wmi_service_configure_vendor_handoff_control_support,
#endif #endif
wmi_services_max, wmi_services_max,
} wmi_conv_service_ids; } wmi_conv_service_ids;

View File

@@ -19438,6 +19438,10 @@ static void populate_tlv_service(uint32_t *wmi_service)
wmi_service[wmi_service_configure_multi_client_ll_support] = wmi_service[wmi_service_configure_multi_client_ll_support] =
WMI_SERVICE_MULTI_CLIENT_LL_SUPPORT; WMI_SERVICE_MULTI_CLIENT_LL_SUPPORT;
#endif #endif
#ifdef WLAN_VENDOR_HANDOFF_CONTROL
wmi_service[wmi_service_configure_vendor_handoff_control_support] =
WMI_SERVICE_FW_INI_PARSE_SUPPORT;
#endif
} }
/** /**