diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index 4fd9b981d44b..5036f3198d80 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -73,11 +73,6 @@ typedef qdf_nbuf_t wmi_buf_t; #define WMI_LOGA(args ...) #endif -/* wrapper to keep WMI agnostic of event handler execution context */ -#define wmi_unified_register_event(wmi_handle, event_id, handler_func) \ - wmi_unified_register_event_handler(wmi_handle, \ - event_id, handler_func, WMI_RX_UMAC_CTX) - struct wmi_soc; /** * struct wmi_ops - service callbacks to upper layer @@ -192,6 +187,21 @@ QDF_STATUS wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen, uint32_t cmd_id); +/** + * wmi_unified_register_event() - WMI event handler + * registration function for converged components + * + * @wmi_handle: handle to WMI. + * @event_id: WMI event ID + * @handler_func: Event handler call back function + * + * @return 0 on success and -ve on failure. + */ +int +wmi_unified_register_event(wmi_unified_t wmi_handle, + uint32_t event_id, + wmi_unified_event_handler handler_func); + /** * wmi_unified_register_event_handler() - WMI event handler * registration function diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h index 760e7ee1f218..112fceb5cbcb 100644 --- a/wmi/inc/wmi_unified_priv.h +++ b/wmi/inc/wmi_unified_priv.h @@ -1347,10 +1347,10 @@ struct wmi_unified { struct wmi_ops *ops; bool use_cookie; bool wmi_stopinprogress; + uint32_t *wmi_events; #ifndef CONFIG_MCL /* WMI service bitmap recieved from target */ uint32_t *wmi_service_bitmap; - uint32_t *wmi_events; uint32_t *pdev_param; uint32_t *vdev_param; uint32_t *services; @@ -1374,10 +1374,10 @@ struct wmi_soc { HTC_ENDPOINT_ID wmi_endpoint_id[WMI_MAX_RADIOS]; uint16_t max_msg_len[WMI_MAX_RADIOS]; struct wmi_ops *ops; + uint32_t wmi_events[wmi_events_max]; #ifndef CONFIG_MCL /* WMI service bitmap recieved from target */ uint32_t wmi_service_bitmap[wmi_services_max]; - uint32_t wmi_events[wmi_events_max]; uint32_t pdev_param[wmi_pdev_param_max]; uint32_t vdev_param[wmi_vdev_param_max]; uint32_t services[wmi_services_max]; diff --git a/wmi/src/wmi_unified.c b/wmi/src/wmi_unified.c index 46375bc6e70a..d57ab83dbbf3 100644 --- a/wmi/src/wmi_unified.c +++ b/wmi/src/wmi_unified.c @@ -1864,6 +1864,50 @@ static int wmi_unified_get_event_handler_ix(wmi_unified_t wmi_handle, return invalid_idx; } +/** + * wmi_unified_register_event() - register wmi event handler + * @wmi_handle: handle to wmi + * @event_id: wmi event id + * @handler_func: wmi event handler function + * + * Return: 0 on success + */ +int wmi_unified_register_event(wmi_unified_t wmi_handle, + uint32_t event_id, + wmi_unified_event_handler handler_func) +{ + uint32_t idx = 0; + uint32_t evt_id; + struct wmi_soc *soc = wmi_handle->soc; + + if (event_id >= wmi_events_max || + wmi_handle->wmi_events[event_id] == WMI_EVENT_ID_INVALID) { + qdf_print("%s: Event id %d is unavailable\n", + __func__, event_id); + return QDF_STATUS_E_FAILURE; + } + evt_id = wmi_handle->wmi_events[event_id]; + if (wmi_unified_get_event_handler_ix(wmi_handle, evt_id) != -1) { + qdf_print("%s : event handler already registered 0x%x\n", + __func__, evt_id); + return QDF_STATUS_E_FAILURE; + } + if (soc->max_event_idx == WMI_UNIFIED_MAX_EVENT) { + qdf_print("%s : no more event handlers 0x%x\n", + __func__, evt_id); + return QDF_STATUS_E_FAILURE; + } + idx = soc->max_event_idx; + wmi_handle->event_handler[idx] = handler_func; + wmi_handle->event_id[idx] = evt_id; + qdf_spin_lock_bh(&soc->ctx_lock); + wmi_handle->ctx[idx] = WMI_RX_UMAC_CTX; + qdf_spin_unlock_bh(&soc->ctx_lock); + soc->max_event_idx++; + + return 0; +} + /** * wmi_unified_register_event_handler() - register wmi event handler * @wmi_handle: handle to wmi @@ -1871,6 +1915,7 @@ static int wmi_unified_get_event_handler_ix(wmi_unified_t wmi_handle, * @handler_func: wmi event handler function * @rx_ctx: rx execution context for wmi rx events * + * This API is to support legacy requirements. Will be deprecated in future. * Return: 0 on success */ int wmi_unified_register_event_handler(wmi_unified_t wmi_handle, @@ -2297,7 +2342,6 @@ static inline void wmi_target_params_init(struct wmi_soc *soc, { /* WMI service bitmap recieved from target */ wmi_handle->wmi_service_bitmap = soc->wmi_service_bitmap; - wmi_handle->wmi_events = soc->wmi_events; wmi_handle->pdev_param = soc->pdev_param; wmi_handle->vdev_param = soc->vdev_param; wmi_handle->services = soc->services; @@ -2344,6 +2388,7 @@ void *wmi_unified_get_pdev_handle(struct wmi_soc *soc, uint32_t pdev_idx) qdf_spinlock_create(&wmi_handle->eventq_lock); qdf_nbuf_queue_init(&wmi_handle->event_queue); INIT_WORK(&wmi_handle->rx_event_work, wmi_rx_event_work); + wmi_handle->wmi_events = soc->wmi_events; wmi_target_params_init(soc, wmi_handle); wmi_interface_logging_init(wmi_handle); qdf_atomic_init(&wmi_handle->pending_cmds); @@ -2405,6 +2450,7 @@ void *wmi_unified_attach(void *scn_handle, wmi_handle->event_id = soc->event_id; wmi_handle->event_handler = soc->event_handler; wmi_handle->ctx = soc->ctx; + wmi_handle->wmi_events = soc->wmi_events; wmi_target_params_init(soc, wmi_handle); wmi_handle->scn_handle = scn_handle; soc->scn_handle = scn_handle; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 0220b9deb6e5..ee78dc5de7c6 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -16357,147 +16357,6 @@ struct wmi_ops tlv_ops = { .send_dfs_phyerr_offload_dis_cmd = send_dfs_phyerr_offload_dis_cmd_tlv, }; -#ifndef CONFIG_MCL -/** - * populate_tlv_service() - populates wmi services - * - * @param wmi_service: Pointer to hold wmi_service - * Return: None - */ -static void populate_tlv_service(uint32_t *wmi_service) -{ - wmi_service[wmi_service_beacon_offload] = WMI_SERVICE_BEACON_OFFLOAD; - wmi_service[wmi_service_scan_offload] = WMI_SERVICE_SCAN_OFFLOAD; - wmi_service[wmi_service_roam_scan_offload] = - WMI_SERVICE_ROAM_SCAN_OFFLOAD; - wmi_service[wmi_service_bcn_miss_offload] = - WMI_SERVICE_BCN_MISS_OFFLOAD; - wmi_service[wmi_service_sta_pwrsave] = WMI_SERVICE_STA_PWRSAVE; - wmi_service[wmi_service_sta_advanced_pwrsave] = - WMI_SERVICE_STA_ADVANCED_PWRSAVE; - wmi_service[wmi_service_ap_uapsd] = WMI_SERVICE_AP_UAPSD; - wmi_service[wmi_service_ap_dfs] = WMI_SERVICE_AP_DFS; - wmi_service[wmi_service_11ac] = WMI_SERVICE_11AC; - wmi_service[wmi_service_blockack] = WMI_SERVICE_BLOCKACK; - wmi_service[wmi_service_phyerr] = WMI_SERVICE_PHYERR; - wmi_service[wmi_service_bcn_filter] = WMI_SERVICE_BCN_FILTER; - wmi_service[wmi_service_rtt] = WMI_SERVICE_RTT; - wmi_service[wmi_service_wow] = WMI_SERVICE_WOW; - wmi_service[wmi_service_ratectrl_cache] = WMI_SERVICE_RATECTRL_CACHE; - wmi_service[wmi_service_iram_tids] = WMI_SERVICE_IRAM_TIDS; - wmi_service[wmi_service_arpns_offload] = WMI_SERVICE_ARPNS_OFFLOAD; - wmi_service[wmi_service_nlo] = WMI_SERVICE_NLO; - wmi_service[wmi_service_gtk_offload] = WMI_SERVICE_GTK_OFFLOAD; - wmi_service[wmi_service_scan_sch] = WMI_SERVICE_SCAN_SCH; - wmi_service[wmi_service_csa_offload] = WMI_SERVICE_CSA_OFFLOAD; - wmi_service[wmi_service_chatter] = WMI_SERVICE_CHATTER; - wmi_service[wmi_service_coex_freqavoid] = WMI_SERVICE_COEX_FREQAVOID; - wmi_service[wmi_service_packet_power_save] = - WMI_SERVICE_PACKET_POWER_SAVE; - wmi_service[wmi_service_force_fw_hang] = WMI_SERVICE_FORCE_FW_HANG; - wmi_service[wmi_service_gpio] = WMI_SERVICE_GPIO; - wmi_service[wmi_service_sta_dtim_ps_modulated_dtim] = - WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM; - wmi_service[wmi_sta_uapsd_basic_auto_trig] = - WMI_STA_UAPSD_BASIC_AUTO_TRIG; - wmi_service[wmi_sta_uapsd_var_auto_trig] = WMI_STA_UAPSD_VAR_AUTO_TRIG; - wmi_service[wmi_service_sta_keep_alive] = WMI_SERVICE_STA_KEEP_ALIVE; - wmi_service[wmi_service_tx_encap] = WMI_SERVICE_TX_ENCAP; - wmi_service[wmi_service_ap_ps_detect_out_of_sync] = - WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC; - wmi_service[wmi_service_early_rx] = WMI_SERVICE_EARLY_RX; - wmi_service[wmi_service_sta_smps] = WMI_SERVICE_STA_SMPS; - wmi_service[wmi_service_fwtest] = WMI_SERVICE_FWTEST; - wmi_service[wmi_service_sta_wmmac] = WMI_SERVICE_STA_WMMAC; - wmi_service[wmi_service_tdls] = WMI_SERVICE_TDLS; - wmi_service[wmi_service_burst] = WMI_SERVICE_BURST; - wmi_service[wmi_service_mcc_bcn_interval_change] = - WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE; - wmi_service[wmi_service_adaptive_ocs] = WMI_SERVICE_ADAPTIVE_OCS; - wmi_service[wmi_service_ba_ssn_support] = WMI_SERVICE_BA_SSN_SUPPORT; - wmi_service[wmi_service_filter_ipsec_natkeepalive] = - WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE; - wmi_service[wmi_service_wlan_hb] = WMI_SERVICE_WLAN_HB; - wmi_service[wmi_service_lte_ant_share_support] = - WMI_SERVICE_LTE_ANT_SHARE_SUPPORT; - wmi_service[wmi_service_batch_scan] = WMI_SERVICE_BATCH_SCAN; - wmi_service[wmi_service_qpower] = WMI_SERVICE_QPOWER; - wmi_service[wmi_service_plmreq] = WMI_SERVICE_PLMREQ; - wmi_service[wmi_service_thermal_mgmt] = WMI_SERVICE_THERMAL_MGMT; - wmi_service[wmi_service_rmc] = WMI_SERVICE_RMC; - wmi_service[wmi_service_mhf_offload] = WMI_SERVICE_MHF_OFFLOAD; - wmi_service[wmi_service_coex_sar] = WMI_SERVICE_COEX_SAR; - wmi_service[wmi_service_bcn_txrate_override] = - WMI_SERVICE_BCN_TXRATE_OVERRIDE; - wmi_service[wmi_service_nan] = WMI_SERVICE_NAN; - wmi_service[wmi_service_l1ss_stat] = WMI_SERVICE_L1SS_STAT; - wmi_service[wmi_service_estimate_linkspeed] = - WMI_SERVICE_ESTIMATE_LINKSPEED; - wmi_service[wmi_service_obss_scan] = WMI_SERVICE_OBSS_SCAN; - wmi_service[wmi_service_tdls_offchan] = WMI_SERVICE_TDLS_OFFCHAN; - wmi_service[wmi_service_tdls_uapsd_buffer_sta] = - WMI_SERVICE_TDLS_UAPSD_BUFFER_STA; - wmi_service[wmi_service_tdls_uapsd_sleep_sta] = - WMI_SERVICE_TDLS_UAPSD_SLEEP_STA; - wmi_service[wmi_service_ibss_pwrsave] = WMI_SERVICE_IBSS_PWRSAVE; - wmi_service[wmi_service_lpass] = WMI_SERVICE_LPASS; - wmi_service[wmi_service_extscan] = WMI_SERVICE_EXTSCAN; - wmi_service[wmi_service_d0wow] = WMI_SERVICE_D0WOW; - wmi_service[wmi_service_hsoffload] = WMI_SERVICE_HSOFFLOAD; - wmi_service[wmi_service_roam_ho_offload] = WMI_SERVICE_ROAM_HO_OFFLOAD; - wmi_service[wmi_service_rx_full_reorder] = WMI_SERVICE_RX_FULL_REORDER; - wmi_service[wmi_service_dhcp_offload] = WMI_SERVICE_DHCP_OFFLOAD; - wmi_service[wmi_service_sta_rx_ipa_offload_support] = - WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT; - wmi_service[wmi_service_mdns_offload] = WMI_SERVICE_MDNS_OFFLOAD; - wmi_service[wmi_service_sap_auth_offload] = - WMI_SERVICE_SAP_AUTH_OFFLOAD; - wmi_service[wmi_service_dual_band_simultaneous_support] = - WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT; - wmi_service[wmi_service_ocb] = WMI_SERVICE_OCB; - wmi_service[wmi_service_ap_arpns_offload] = - WMI_SERVICE_AP_ARPNS_OFFLOAD; - wmi_service[wmi_service_per_band_chainmask_support] = - WMI_SERVICE_PER_BAND_CHAINMASK_SUPPORT; - wmi_service[wmi_service_packet_filter_offload] = - WMI_SERVICE_PACKET_FILTER_OFFLOAD; - wmi_service[wmi_service_mgmt_tx_htt] = WMI_SERVICE_MGMT_TX_HTT; - wmi_service[wmi_service_mgmt_tx_wmi] = WMI_SERVICE_MGMT_TX_WMI; - wmi_service[wmi_service_ext_msg] = WMI_SERVICE_EXT_MSG; - wmi_service[wmi_service_mawc] = WMI_SERVICE_MAWC; - wmi_service[wmi_service_multiple_vdev_restart] = - WMI_SERVICE_MULTIPLE_VDEV_RESTART; - - wmi_service[wmi_service_roam_offload] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_ratectrl] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_smart_antenna_sw_support] = - WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_smart_antenna_hw_support] = - WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_enhanced_proxy_sta] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_tt] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_atf] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_peer_caching] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_coex_gpio] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_aux_spectral_intf] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_aux_chan_load_intf] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_bss_channel_info_64] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_ext_res_cfg_support] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_mesh] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_restrt_chnl_support] = WMI_SERVICE_UNAVAILABLE; - - wmi_service[wmi_service_peer_stats] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_mesh_11s] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_periodic_chan_stat_support] = - WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_tx_mode_push_only] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_tx_mode_push_pull] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_tx_mode_dynamic] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_btcoex_duty_cycle] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_4_wire_coex_support] = WMI_SERVICE_UNAVAILABLE; - wmi_service[wmi_service_mesh] = WMI_SERVICE_ENTERPRISE_MESH; -} - /** * populate_tlv_event_id() - populates wmi event ids * @@ -16712,6 +16571,147 @@ static void populate_tlv_events_id(uint32_t *event_ids) WMI_PDEV_CSA_SWITCH_COUNT_STATUS_EVENTID; } +#ifndef CONFIG_MCL +/** + * populate_tlv_service() - populates wmi services + * + * @param wmi_service: Pointer to hold wmi_service + * Return: None + */ +static void populate_tlv_service(uint32_t *wmi_service) +{ + wmi_service[wmi_service_beacon_offload] = WMI_SERVICE_BEACON_OFFLOAD; + wmi_service[wmi_service_scan_offload] = WMI_SERVICE_SCAN_OFFLOAD; + wmi_service[wmi_service_roam_scan_offload] = + WMI_SERVICE_ROAM_SCAN_OFFLOAD; + wmi_service[wmi_service_bcn_miss_offload] = + WMI_SERVICE_BCN_MISS_OFFLOAD; + wmi_service[wmi_service_sta_pwrsave] = WMI_SERVICE_STA_PWRSAVE; + wmi_service[wmi_service_sta_advanced_pwrsave] = + WMI_SERVICE_STA_ADVANCED_PWRSAVE; + wmi_service[wmi_service_ap_uapsd] = WMI_SERVICE_AP_UAPSD; + wmi_service[wmi_service_ap_dfs] = WMI_SERVICE_AP_DFS; + wmi_service[wmi_service_11ac] = WMI_SERVICE_11AC; + wmi_service[wmi_service_blockack] = WMI_SERVICE_BLOCKACK; + wmi_service[wmi_service_phyerr] = WMI_SERVICE_PHYERR; + wmi_service[wmi_service_bcn_filter] = WMI_SERVICE_BCN_FILTER; + wmi_service[wmi_service_rtt] = WMI_SERVICE_RTT; + wmi_service[wmi_service_wow] = WMI_SERVICE_WOW; + wmi_service[wmi_service_ratectrl_cache] = WMI_SERVICE_RATECTRL_CACHE; + wmi_service[wmi_service_iram_tids] = WMI_SERVICE_IRAM_TIDS; + wmi_service[wmi_service_arpns_offload] = WMI_SERVICE_ARPNS_OFFLOAD; + wmi_service[wmi_service_nlo] = WMI_SERVICE_NLO; + wmi_service[wmi_service_gtk_offload] = WMI_SERVICE_GTK_OFFLOAD; + wmi_service[wmi_service_scan_sch] = WMI_SERVICE_SCAN_SCH; + wmi_service[wmi_service_csa_offload] = WMI_SERVICE_CSA_OFFLOAD; + wmi_service[wmi_service_chatter] = WMI_SERVICE_CHATTER; + wmi_service[wmi_service_coex_freqavoid] = WMI_SERVICE_COEX_FREQAVOID; + wmi_service[wmi_service_packet_power_save] = + WMI_SERVICE_PACKET_POWER_SAVE; + wmi_service[wmi_service_force_fw_hang] = WMI_SERVICE_FORCE_FW_HANG; + wmi_service[wmi_service_gpio] = WMI_SERVICE_GPIO; + wmi_service[wmi_service_sta_dtim_ps_modulated_dtim] = + WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM; + wmi_service[wmi_sta_uapsd_basic_auto_trig] = + WMI_STA_UAPSD_BASIC_AUTO_TRIG; + wmi_service[wmi_sta_uapsd_var_auto_trig] = WMI_STA_UAPSD_VAR_AUTO_TRIG; + wmi_service[wmi_service_sta_keep_alive] = WMI_SERVICE_STA_KEEP_ALIVE; + wmi_service[wmi_service_tx_encap] = WMI_SERVICE_TX_ENCAP; + wmi_service[wmi_service_ap_ps_detect_out_of_sync] = + WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC; + wmi_service[wmi_service_early_rx] = WMI_SERVICE_EARLY_RX; + wmi_service[wmi_service_sta_smps] = WMI_SERVICE_STA_SMPS; + wmi_service[wmi_service_fwtest] = WMI_SERVICE_FWTEST; + wmi_service[wmi_service_sta_wmmac] = WMI_SERVICE_STA_WMMAC; + wmi_service[wmi_service_tdls] = WMI_SERVICE_TDLS; + wmi_service[wmi_service_burst] = WMI_SERVICE_BURST; + wmi_service[wmi_service_mcc_bcn_interval_change] = + WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE; + wmi_service[wmi_service_adaptive_ocs] = WMI_SERVICE_ADAPTIVE_OCS; + wmi_service[wmi_service_ba_ssn_support] = WMI_SERVICE_BA_SSN_SUPPORT; + wmi_service[wmi_service_filter_ipsec_natkeepalive] = + WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE; + wmi_service[wmi_service_wlan_hb] = WMI_SERVICE_WLAN_HB; + wmi_service[wmi_service_lte_ant_share_support] = + WMI_SERVICE_LTE_ANT_SHARE_SUPPORT; + wmi_service[wmi_service_batch_scan] = WMI_SERVICE_BATCH_SCAN; + wmi_service[wmi_service_qpower] = WMI_SERVICE_QPOWER; + wmi_service[wmi_service_plmreq] = WMI_SERVICE_PLMREQ; + wmi_service[wmi_service_thermal_mgmt] = WMI_SERVICE_THERMAL_MGMT; + wmi_service[wmi_service_rmc] = WMI_SERVICE_RMC; + wmi_service[wmi_service_mhf_offload] = WMI_SERVICE_MHF_OFFLOAD; + wmi_service[wmi_service_coex_sar] = WMI_SERVICE_COEX_SAR; + wmi_service[wmi_service_bcn_txrate_override] = + WMI_SERVICE_BCN_TXRATE_OVERRIDE; + wmi_service[wmi_service_nan] = WMI_SERVICE_NAN; + wmi_service[wmi_service_l1ss_stat] = WMI_SERVICE_L1SS_STAT; + wmi_service[wmi_service_estimate_linkspeed] = + WMI_SERVICE_ESTIMATE_LINKSPEED; + wmi_service[wmi_service_obss_scan] = WMI_SERVICE_OBSS_SCAN; + wmi_service[wmi_service_tdls_offchan] = WMI_SERVICE_TDLS_OFFCHAN; + wmi_service[wmi_service_tdls_uapsd_buffer_sta] = + WMI_SERVICE_TDLS_UAPSD_BUFFER_STA; + wmi_service[wmi_service_tdls_uapsd_sleep_sta] = + WMI_SERVICE_TDLS_UAPSD_SLEEP_STA; + wmi_service[wmi_service_ibss_pwrsave] = WMI_SERVICE_IBSS_PWRSAVE; + wmi_service[wmi_service_lpass] = WMI_SERVICE_LPASS; + wmi_service[wmi_service_extscan] = WMI_SERVICE_EXTSCAN; + wmi_service[wmi_service_d0wow] = WMI_SERVICE_D0WOW; + wmi_service[wmi_service_hsoffload] = WMI_SERVICE_HSOFFLOAD; + wmi_service[wmi_service_roam_ho_offload] = WMI_SERVICE_ROAM_HO_OFFLOAD; + wmi_service[wmi_service_rx_full_reorder] = WMI_SERVICE_RX_FULL_REORDER; + wmi_service[wmi_service_dhcp_offload] = WMI_SERVICE_DHCP_OFFLOAD; + wmi_service[wmi_service_sta_rx_ipa_offload_support] = + WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT; + wmi_service[wmi_service_mdns_offload] = WMI_SERVICE_MDNS_OFFLOAD; + wmi_service[wmi_service_sap_auth_offload] = + WMI_SERVICE_SAP_AUTH_OFFLOAD; + wmi_service[wmi_service_dual_band_simultaneous_support] = + WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT; + wmi_service[wmi_service_ocb] = WMI_SERVICE_OCB; + wmi_service[wmi_service_ap_arpns_offload] = + WMI_SERVICE_AP_ARPNS_OFFLOAD; + wmi_service[wmi_service_per_band_chainmask_support] = + WMI_SERVICE_PER_BAND_CHAINMASK_SUPPORT; + wmi_service[wmi_service_packet_filter_offload] = + WMI_SERVICE_PACKET_FILTER_OFFLOAD; + wmi_service[wmi_service_mgmt_tx_htt] = WMI_SERVICE_MGMT_TX_HTT; + wmi_service[wmi_service_mgmt_tx_wmi] = WMI_SERVICE_MGMT_TX_WMI; + wmi_service[wmi_service_ext_msg] = WMI_SERVICE_EXT_MSG; + wmi_service[wmi_service_mawc] = WMI_SERVICE_MAWC; + wmi_service[wmi_service_multiple_vdev_restart] = + WMI_SERVICE_MULTIPLE_VDEV_RESTART; + + wmi_service[wmi_service_roam_offload] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_ratectrl] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_smart_antenna_sw_support] = + WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_smart_antenna_hw_support] = + WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_enhanced_proxy_sta] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_tt] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_atf] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_peer_caching] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_coex_gpio] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_aux_spectral_intf] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_aux_chan_load_intf] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_bss_channel_info_64] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_ext_res_cfg_support] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_mesh] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_restrt_chnl_support] = WMI_SERVICE_UNAVAILABLE; + + wmi_service[wmi_service_peer_stats] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_mesh_11s] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_periodic_chan_stat_support] = + WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_tx_mode_push_only] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_tx_mode_push_pull] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_tx_mode_dynamic] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_btcoex_duty_cycle] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_4_wire_coex_support] = WMI_SERVICE_UNAVAILABLE; + wmi_service[wmi_service_mesh] = WMI_SERVICE_ENTERPRISE_MESH; +} + /** * populate_pdev_param_tlv() - populates pdev params * @@ -17066,7 +17066,6 @@ static void populate_vdev_param_tlv(uint32_t *vdev_param) static void populate_target_defines_tlv(struct wmi_unified *wmi_handle) { populate_tlv_service(wmi_handle->services); - populate_tlv_events_id(wmi_handle->wmi_events); populate_pdev_param_tlv(wmi_handle->pdev_param); populate_vdev_param_tlv(wmi_handle->vdev_param); } @@ -17087,5 +17086,6 @@ void wmi_tlv_attach(wmi_unified_t wmi_handle) wmi_handle->log_info.buf_offset_command = 2; wmi_handle->log_info.buf_offset_event = 4; #endif + populate_tlv_events_id(wmi_handle->wmi_events); populate_target_defines_tlv(wmi_handle); }