qcacmn: Add non-tlv implementation in common wmi layer

WIN platform uses non-tlv implementation for host to
target wmi commands. Add support for non-tlv
implementation in common wmi layer.

Change-Id: I1f832695b0d41b521be6b18df0cad31aae11b6c9
Acked-by: Kiran Venkatappa <kiranv@qti.qualcomm.com>
CRs-Fixed: 1005778
This commit is contained in:
Govind Singh
2016-04-15 13:58:27 +05:30
committed by Gerrit - the friendly Code Review server
parent b8c59389e0
commit 8972788adb
4 changed files with 4733 additions and 32 deletions

View File

@@ -102,6 +102,9 @@ enum wmi_rx_exec_ctx {
* attach for unified WMI * attach for unified WMI
* *
* @param scn_handle : handle to SCN. * @param scn_handle : handle to SCN.
* @param target_type : type of supported wmi command
* @param use_cookie : flag to indicate cookie based allocation
* @param ops : handle to wmi ops
* @return opaque handle. * @return opaque handle.
*/ */
void *wmi_unified_attach(void *scn_handle, void *wmi_unified_attach(void *scn_handle,
@@ -148,11 +151,12 @@ void wmi_buf_free(wmi_buf_t net_buf);
* @param wmi_handle : handle to WMI. * @param wmi_handle : handle to WMI.
* @param buf : wmi command buffer * @param buf : wmi command buffer
* @param buflen : wmi command buffer length * @param buflen : wmi command buffer length
* @param cmd_id : WMI cmd id
* @return 0 on success and -ve on failure. * @return 0 on success and -ve on failure.
*/ */
int int
wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen, wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen,
WMI_CMD_ID cmd_id); WMI_CMD_ID cmd_id);
/** /**
* wmi_unified_register_event_handler() - WMI event handler * wmi_unified_register_event_handler() - WMI event handler
@@ -167,7 +171,7 @@ wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen,
*/ */
int int
wmi_unified_register_event_handler(wmi_unified_t wmi_handle, wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
WMI_EVT_ID event_id, uint32_t event_id,
wmi_unified_event_handler handler_func, wmi_unified_event_handler handler_func,
uint8_t rx_ctx); uint8_t rx_ctx);
@@ -180,11 +184,12 @@ wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
*/ */
int int
wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle, wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
WMI_EVT_ID event_id); uint32_t event_id);
/** /**
* request wmi to connet its htc service. * request wmi to connet its htc service.
* @param wmi_handle : handle to WMI. * @param wmi_handle : handle to WMI.
* @param htc_handle : handle to HTC.
* @return void * @return void
*/ */
int int
@@ -193,27 +198,56 @@ wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle,
/* /*
* WMI API to verify the host has enough credits to suspend * WMI API to verify the host has enough credits to suspend
* @param wmi_handle : handle to WMI.
*/ */
int wmi_is_suspend_ready(wmi_unified_t wmi_handle); int wmi_is_suspend_ready(wmi_unified_t wmi_handle);
/** /**
WMI API to get updated host_credits * WMI API to get updated host_credits
* @param wmi_handle : handle to WMI.
*/ */
int wmi_get_host_credits(wmi_unified_t wmi_handle); int wmi_get_host_credits(wmi_unified_t wmi_handle);
/** /**
WMI API to get WMI Pending Commands in the HTC queue * WMI API to get WMI Pending Commands in the HTC queue
* @param wmi_handle : handle to WMI.
*/ */
int wmi_get_pending_cmds(wmi_unified_t wmi_handle); int wmi_get_pending_cmds(wmi_unified_t wmi_handle);
/** /**
WMI API to set target suspend state * WMI API to set target suspend state
* @param wmi_handle : handle to WMI.
* @param val : suspend state boolean
*/ */
void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val); void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val);
/**
* generic function to block unified WMI command
* @param wmi_handle : handle to WMI.
* @return 0 on success and -ve on failure.
*/
int
wmi_stop(wmi_unified_t wmi_handle);
/**
* API to flush all the previous packets associated with the wmi endpoint
*
* @param wmi_handle : handle to WMI.
*/
void
wmi_flush_endpoint(wmi_unified_t wmi_handle);
/**
* API to handle wmi rx event after UMAC has taken care of execution
* context
*
* @param wmi_handle : handle to WMI.
* @param evt_buf : wmi event buffer
*/
void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
#ifdef FEATURE_RUNTIME_PM #ifdef FEATURE_RUNTIME_PM
void void
wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val); wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val);
@@ -233,6 +267,8 @@ static inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle)
/** /**
* UMAC Callback to process fw event. * UMAC Callback to process fw event.
* @param wmi_handle : handle to WMI.
* @param evt_buf : wmi event buffer
*/ */
void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf); void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle); uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle);
@@ -296,10 +332,16 @@ QDF_STATUS wmi_unified_wow_enable_send(void *wmi_hdl,
struct wow_cmd_params *param, struct wow_cmd_params *param,
uint8_t mac_id); uint8_t mac_id);
#ifdef WMI_NON_TLV_SUPPORT
QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl,
WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT);
#else
QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN], uint8_t macaddr[IEEE80211_ADDR_LEN],
struct packet_enable_params *param); struct packet_enable_params *param);
#endif
QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl);
QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl, QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl,
struct suspend_params *param, struct suspend_params *param,
@@ -313,6 +355,10 @@ wmi_unified_pdev_param_send(void *wmi_hdl,
struct pdev_params *param, struct pdev_params *param,
uint8_t mac_id); uint8_t mac_id);
QDF_STATUS wmi_unified_beacon_tmpl_send_cmd(void *wmi_hdl,
struct beacon_tmpl_params *param);
QDF_STATUS wmi_unified_beacon_send_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_beacon_send_cmd(void *wmi_hdl,
struct beacon_params *param); struct beacon_params *param);
@@ -404,8 +450,10 @@ QDF_STATUS wmi_unified_set_mcc_channel_time_latency_cmd
QDF_STATUS wmi_unified_set_enable_disable_mcc_adaptive_scheduler_cmd( QDF_STATUS wmi_unified_set_enable_disable_mcc_adaptive_scheduler_cmd(
void *wmi_hdl, uint32_t mcc_adaptive_scheduler); void *wmi_hdl, uint32_t mcc_adaptive_scheduler);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS wmi_unified_bcn_buf_ll_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_bcn_buf_ll_cmd(void *wmi_hdl,
wmi_bcn_send_from_host_cmd_fixed_param *param); wmi_bcn_send_from_host_cmd_fixed_param *param);
#endif
QDF_STATUS wmi_unified_set_sta_sa_query_param_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_set_sta_sa_query_param_cmd(void *wmi_hdl,
uint8_t vdev_id, uint32_t max_retries, uint8_t vdev_id, uint32_t max_retries,
@@ -418,10 +466,11 @@ QDF_STATUS wmi_unified_set_sta_keep_alive_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id, QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id,
struct wmi_gtx_config *gtx_info); struct wmi_gtx_config *gtx_info);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl, QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl,
uint8_t vdev_id, uint8_t vdev_id,
wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]); wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]);
#endif
QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl,
@@ -451,9 +500,11 @@ QDF_STATUS wmi_unified_reset_passpoint_network_list_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_set_passpoint_network_list_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_set_passpoint_network_list_cmd(void *wmi_hdl,
struct wifi_passpoint_req_param *req); struct wifi_passpoint_req_param *req);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(void *wmi_hdl,
wmi_start_scan_cmd_fixed_param *scan_cmd_fp, wmi_start_scan_cmd_fixed_param *scan_cmd_fp,
struct roam_offload_scan_params *roam_req); struct roam_offload_scan_params *roam_req);
#endif
QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(void *wmi_hdl,
struct roam_offload_scan_rssi_params *roam_req); struct roam_offload_scan_rssi_params *roam_req);
@@ -500,9 +551,11 @@ QDF_STATUS wmi_unified_plm_start_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id); QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id);
#ifdef FEATURE_WLAN_SCAN_PNO
QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl,
struct pno_scan_req_params *pno, struct pno_scan_req_params *pno,
uint32_t *gchannel_freq_list); uint32_t *gchannel_freq_list);
#endif
QDF_STATUS wmi_unified_set_ric_req_cmd(void *wmi_hdl, void *msg, QDF_STATUS wmi_unified_set_ric_req_cmd(void *wmi_hdl, void *msg,
uint8_t is_add_ts); uint8_t is_add_ts);
@@ -529,6 +582,7 @@ QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id);
QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl,
struct link_status_params *link_status); struct link_status_params *link_status);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS wmi_unified_lphb_config_hbenable_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_lphb_config_hbenable_cmd(void *wmi_hdl,
wmi_hb_set_enable_cmd_fixed_param *params); wmi_hb_set_enable_cmd_fixed_param *params);
@@ -542,16 +596,17 @@ QDF_STATUS wmi_unified_lphb_config_udp_params_cmd(void *wmi_hdl,
wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req); wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req);
QDF_STATUS wmi_unified_lphb_config_udp_pkt_filter_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_lphb_config_udp_pkt_filter_cmd(void *wmi_hdl,
wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req); wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req);
QDF_STATUS wmi_unified_process_dhcp_ind(void *wmi_hdl, QDF_STATUS wmi_unified_process_dhcp_ind(void *wmi_hdl,
wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind); wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind);
QDF_STATUS wmi_unified_get_link_speed_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_get_link_speed_cmd(void *wmi_hdl,
wmi_mac_addr peer_macaddr); wmi_mac_addr peer_macaddr);
QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl,
wmi_ap_ps_egap_param_cmd_fixed_param *egap_params); wmi_ap_ps_egap_param_cmd_fixed_param *egap_params);
#endif
QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl,
uint32_t cmd, uint32_t value1, uint32_t value2); uint32_t cmd, uint32_t value1, uint32_t value2);
@@ -571,9 +626,11 @@ QDF_STATUS wmi_unified_start_oem_data_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl,
bool dfs_phyerr_filter_offload); bool dfs_phyerr_filter_offload);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl,
WMI_PKTLOG_EVENT pktlog_event, WMI_PKTLOG_EVENT pktlog_event,
WMI_CMD_ID cmd_id); WMI_CMD_ID cmd_id);
#endif
QDF_STATUS wmi_unified_add_wow_wakeup_event_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_add_wow_wakeup_event_cmd(void *wmi_hdl,
uint32_t vdev_id, uint32_t vdev_id,
@@ -608,9 +665,9 @@ QDF_STATUS wmi_unified_config_packet_filter_cmd(void *wmi_hdl,
uint8_t filter_id, bool enable); uint8_t filter_id, bool enable);
QDF_STATUS wmi_unified_add_clear_mcbc_filter_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_add_clear_mcbc_filter_cmd(void *wmi_hdl,
uint8_t vdev_id, uint8_t vdev_id,
struct qdf_mac_addr multicast_addr, struct qdf_mac_addr multicast_addr,
bool clearList); bool clearList);
QDF_STATUS wmi_unified_send_gtk_offload_cmd(void *wmi_hdl, uint8_t vdev_id, QDF_STATUS wmi_unified_send_gtk_offload_cmd(void *wmi_hdl, uint8_t vdev_id,
struct gtk_offload_params *params, struct gtk_offload_params *params,
@@ -740,9 +797,11 @@ QDF_STATUS wmi_unified_roam_invoke_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_roam_scan_offload_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_roam_scan_offload_cmd(void *wmi_hdl,
uint32_t command, uint32_t vdev_id); uint32_t command, uint32_t vdev_id);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(void *wmi_hdl,
wmi_ap_profile *ap_profile_p, wmi_ap_profile *ap_profile_p,
uint32_t vdev_id); uint32_t vdev_id);
#endif
QDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl, QDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl,
uint32_t scan_period, uint32_t scan_period,
@@ -763,4 +822,407 @@ QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_get_buf_extscan_hotlist_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_get_buf_extscan_hotlist_cmd(void *wmi_hdl,
struct ext_scan_setbssi_hotlist_params * struct ext_scan_setbssi_hotlist_params *
photlist, int *buf_len); photlist, int *buf_len);
QDF_STATUS wmi_unified_stats_request_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct stats_request_params *param);
QDF_STATUS wmi_unified_pdev_get_tpc_config_cmd_send(void *wmi_hdl,
uint32_t param);
QDF_STATUS wmi_unified_set_atf_cmd_send(void *wmi_hdl,
struct set_atf_params *param);
QDF_STATUS wmi_unified_pdev_fips_cmd_send(void *wmi_hdl,
struct fips_params *param);
QDF_STATUS wmi_unified_wlan_profile_enable_cmd_send(void *wmi_hdl,
struct wlan_profile_params *param);
QDF_STATUS wmi_unified_wlan_profile_trigger_cmd_send(void *wmi_hdl,
struct wlan_profile_params *param);
QDF_STATUS wmi_unified_set_chan_cmd_send(void *wmi_hdl,
struct channel_param *param);
QDF_STATUS wmi_unified_set_ht_ie_cmd_send(void *wmi_hdl,
struct ht_ie_params *param);
QDF_STATUS wmi_unified_set_vht_ie_cmd_send(void *wmi_hdl,
struct vht_ie_params *param);
QDF_STATUS wmi_unified_wmm_update_cmd_send(void *wmi_hdl,
struct wmm_update_params *param);
QDF_STATUS wmi_unified_set_ant_switch_tbl_cmd_send(void *wmi_hdl,
struct ant_switch_tbl_params *param);
QDF_STATUS wmi_unified_set_ratepwr_table_cmd_send(void *wmi_hdl,
struct ratepwr_table_params *param);
QDF_STATUS wmi_unified_get_ratepwr_table_cmd_send(void *wmi_hdl);
QDF_STATUS wmi_unified_set_ctl_table_cmd_send(void *wmi_hdl,
struct ctl_table_params *param);
QDF_STATUS wmi_unified_set_mimogain_table_cmd_send(void *wmi_hdl,
struct mimogain_table_params *param);
QDF_STATUS wmi_unified_set_ratepwr_chainmsk_cmd_send(void *wmi_hdl,
struct ratepwr_chainmsk_params *param);
QDF_STATUS wmi_unified_set_macaddr_cmd_send(void *wmi_hdl,
struct macaddr_params *param);
QDF_STATUS wmi_unified_pdev_scan_start_cmd_send(void *wmi_hdl);
QDF_STATUS wmi_unified_pdev_scan_end_cmd_send(void *wmi_hdl);
QDF_STATUS wmi_unified_set_acparams_cmd_send(void *wmi_hdl,
struct acparams_params *param);
QDF_STATUS wmi_unified_set_vap_dscp_tid_map_cmd_send(void *wmi_hdl,
struct vap_dscp_tid_map_params *param);
QDF_STATUS wmi_unified_proxy_ast_reserve_cmd_send(void *wmi_hdl,
struct proxy_ast_reserve_params *param);
QDF_STATUS wmi_unified_pdev_qvit_cmd_send(void *wmi_hdl,
struct pdev_qvit_params *param);
QDF_STATUS wmi_unified_mcast_group_update_cmd_send(void *wmi_hdl,
struct mcast_group_update_params *param);
QDF_STATUS wmi_unified_peer_add_wds_entry_cmd_send(void *wmi_hdl,
struct peer_add_wds_entry_params *param);
QDF_STATUS wmi_unified_peer_del_wds_entry_cmd_send(void *wmi_hdl,
struct peer_del_wds_entry_params *param);
QDF_STATUS wmi_unified_peer_update_wds_entry_cmd_send(void *wmi_hdl,
struct peer_update_wds_entry_params *param);
QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl);
QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl);
QDF_STATUS wmi_unified_phyerr_disable_cmd_send(void *wmi_hdl);
QDF_STATUS wmi_unified_smart_ant_enable_cmd_send(void *wmi_hdl,
struct smart_ant_enable_params *param);
QDF_STATUS wmi_unified_smart_ant_set_rx_ant_cmd_send(void *wmi_hdl,
struct smart_ant_rx_ant_params *param);
QDF_STATUS wmi_unified_smart_ant_set_tx_ant_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct smart_ant_tx_ant_params *param);
QDF_STATUS wmi_unified_smart_ant_set_training_info_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct smart_ant_training_info_params *param);
QDF_STATUS wmi_unified_smart_ant_node_config_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct smart_ant_node_config_params *param);
QDF_STATUS wmi_unified_smart_ant_enable_tx_feedback_cmd_send(void *wmi_hdl,
struct smart_ant_enable_tx_feedback_params *param);
QDF_STATUS wmi_unified_vdev_spectral_configure_cmd_send(void *wmi_hdl,
struct vdev_spectral_configure_params *param);
QDF_STATUS wmi_unified_vdev_spectral_enable_cmd_send(void *wmi_hdl,
struct vdev_spectral_enable_params *param);
QDF_STATUS wmi_unified_bss_chan_info_request_cmd_send(void *wmi_hdl,
struct bss_chan_info_request_params *param);
QDF_STATUS wmi_unified_thermal_mitigation_param_cmd_send(void *wmi_hdl,
struct thermal_mitigation_params *param);
QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct set_neighbour_rx_params *param);
QDF_STATUS wmi_unified_vdev_set_fwtest_param_cmd_send(void *wmi_hdl,
struct set_fwtest_params *param);
QDF_STATUS wmi_unified_vdev_config_ratemask_cmd_send(void *wmi_hdl,
struct config_ratemask_params *param);
QDF_STATUS wmi_unified_vdev_install_key_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct vdev_install_key_params *param);
QDF_STATUS wmi_unified_pdev_set_regdomain_cmd_send(void *wmi_hdl,
struct pdev_set_regdomain_params *param);
QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(void *wmi_hdl,
struct set_quiet_mode_params *param);
QDF_STATUS wmi_unified_set_beacon_filter_cmd_send(void *wmi_hdl,
struct set_beacon_filter_params *param);
QDF_STATUS wmi_unified_remove_beacon_filter_cmd_send(void *wmi_hdl,
struct remove_beacon_filter_params *param);
QDF_STATUS wmi_unified_addba_clearresponse_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct addba_clearresponse_params *param);
QDF_STATUS wmi_unified_addba_send_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct addba_send_params *param);
QDF_STATUS wmi_unified_delba_send_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct delba_send_params *param);
QDF_STATUS wmi_unified_addba_setresponse_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct addba_setresponse_params *param);
QDF_STATUS wmi_unified_singleamsdu_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct singleamsdu_params *param);
QDF_STATUS wmi_unified_set_qboost_param_cmd_send(void *wmi_hdl,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct set_qboost_params *param);
QDF_STATUS wmi_unified_mu_scan_cmd_send(void *wmi_hdl,
struct mu_scan_params *param);
QDF_STATUS wmi_unified_lteu_config_cmd_send(void *wmi_hdl,
struct lteu_config_params *param);
QDF_STATUS wmi_unified_set_psmode_cmd_send(void *wmi_hdl,
struct set_ps_mode_params *param);
QDF_STATUS wmi_unified_init_cmd_send(void *wmi_hdl,
target_resource_config *res_cfg,
uint8_t num_mem_chunks,
struct wmi_host_mem_chunk *mem_chunk);
bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id);
QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf);
QDF_STATUS wmi_save_fw_version(void *wmi_hdl, void *evt_buf);
QDF_STATUS wmi_get_target_cap_from_service_ready(void *wmi_hdl,
void *evt_buf, target_capability_info *ev);
QDF_STATUS wmi_extract_hal_reg_cap(void *wmi_hdl, void *evt_buf,
TARGET_HAL_REG_CAPABILITIES *hal_reg_cap);
host_mem_req *wmi_extract_host_mem_req_from_service_ready(void *wmi_hdl,
void *evt_buf, uint8_t *num_entries);
uint32_t wmi_ready_extract_init_status(void *wmi_hdl, void *ev);
QDF_STATUS wmi_ready_extract_mac_addr(void *wmi_hdl,
void *ev, uint8_t *macaddr);
QDF_STATUS wmi_extract_fw_version(void *wmi_hdl,
void *ev, struct wmi_host_fw_ver *fw_ver);
QDF_STATUS wmi_extract_fw_abi_version(void *wmi_hdl,
void *ev, struct wmi_host_fw_abi_ver *fw_ver);
QDF_STATUS wmi_check_and_update_fw_version(void *wmi_hdl, void *ev);
uint8_t *wmi_extract_dbglog_data_len(void *wmi_hdl,
void *evt_b, uint16_t *len);
QDF_STATUS wmi_send_ext_resource_config(void *wmi_hdl,
wmi_host_ext_resource_config *ext_cfg);
QDF_STATUS wmi_unified_nf_dbr_dbm_info_get_cmd_send(void *wmi_hdl);
QDF_STATUS wmi_unified_packet_power_info_get_cmd_send(void *wmi_hdl,
struct packet_power_info_params *param);
QDF_STATUS wmi_unified_gpio_config_cmd_send(void *wmi_hdl,
struct gpio_config_params *param);
QDF_STATUS wmi_unified_gpio_output_cmd_send(void *wmi_hdl,
struct gpio_output_params *param);
QDF_STATUS wmi_unified_rtt_meas_req_test_cmd_send(void *wmi_hdl,
struct rtt_meas_req_test_params *param);
QDF_STATUS wmi_unified_rtt_meas_req_cmd_send(void *wmi_hdl,
struct rtt_meas_req_params *param);
QDF_STATUS wmi_unified_rtt_keepalive_req_cmd_send(void *wmi_hdl,
struct rtt_keepalive_req_params *param);
QDF_STATUS wmi_unified_lci_set_cmd_send(void *wmi_hdl,
struct lci_set_params *param);
QDF_STATUS wmi_unified_lcr_set_cmd_send(void *wmi_hdl,
struct lcr_set_params *param);
QDF_STATUS wmi_unified_send_periodic_chan_stats_config_cmd(void *wmi_hdl,
struct periodic_chan_stats_params *param);
QDF_STATUS
wmi_send_atf_peer_request_cmd(void *wmi_hdl,
struct atf_peer_request_params *param);
QDF_STATUS
wmi_send_set_atf_grouping_cmd(void *wmi_hdl,
struct atf_grouping_params *param);
/* Extract APIs */
QDF_STATUS wmi_extract_wds_addr_event(void *wmi_hdl,
void *evt_buf, uint16_t len, wds_addr_event_t *wds_ev);
QDF_STATUS wmi_extract_dcs_interference_type(void *wmi_hdl,
void *evt_buf, uint32_t *interference_type);
QDF_STATUS wmi_extract_dcs_cw_int(void *wmi_hdl, void *evt_buf,
wmi_host_ath_dcs_cw_int *cw_int);
QDF_STATUS wmi_extract_dcs_im_tgt_stats(void *wmi_hdl, void *evt_buf,
wmi_host_dcs_im_tgt_stats_t *wlan_stat);
QDF_STATUS wmi_extract_fips_event_error_status(void *wmi_hdl, void *evt_buf,
uint32_t *err_status);
QDF_STATUS wmi_extract_fips_event_data(void *wmi_hdl, void *evt_buf,
uint32_t *data_len, uint32_t **data);
QDF_STATUS wmi_extract_vdev_start_resp(void *wmi_hdl, void *evt_buf,
wmi_host_vdev_start_resp *vdev_rsp);
QDF_STATUS wmi_extract_tbttoffset_update_params(void *wmi_hdl, void *evt_buf,
uint32_t *vdev_map, uint32_t **tbttoffset_list);
QDF_STATUS wmi_extract_mgmt_rx_params(void *wmi_hdl, void *evt_buf,
wmi_host_mgmt_rx_hdr *hdr, uint8_t **bufp);
QDF_STATUS wmi_extract_vdev_stopped_param(void *wmi_hdl, void *evt_buf,
uint32_t *vdev_id);
QDF_STATUS wmi_extract_vdev_roam_param(void *wmi_hdl, void *evt_buf,
wmi_host_roam_event *ev);
QDF_STATUS wmi_extract_vdev_scan_ev_param(void *wmi_hdl, void *evt_buf,
wmi_host_scan_event *param);
QDF_STATUS wmi_extract_mu_ev_param(void *wmi_hdl, void *evt_buf,
wmi_host_mu_report_event *param);
QDF_STATUS wmi_extract_pdev_tpc_config_ev_param(void *wmi_hdl, void *evt_buf,
wmi_host_pdev_tpc_config_event *param);
QDF_STATUS wmi_extract_gpio_input_ev_param(void *wmi_hdl,
void *evt_buf, uint32_t *gpio_num);
QDF_STATUS wmi_extract_pdev_reserve_ast_ev_param(void *wmi_hdl,
void *evt_buf, uint32_t *result);
QDF_STATUS wmi_extract_nfcal_power_ev_param(void *wmi_hdl, void *evt_buf,
wmi_host_pdev_nfcal_power_all_channels_event *param);
QDF_STATUS wmi_extract_pdev_tpc_ev_param(void *wmi_hdl, void *evt_buf,
wmi_host_pdev_tpc_event *param);
QDF_STATUS wmi_extract_pdev_generic_buffer_ev_param(void *wmi_hdl,
void *evt_buf,
wmi_host_pdev_generic_buffer_event *param);
QDF_STATUS wmi_extract_mgmt_tx_compl_param(void *wmi_hdl, void *evt_buf,
wmi_host_mgmt_tx_compl_event *param);
QDF_STATUS wmi_extract_swba_vdev_map(void *wmi_hdl, void *evt_buf,
uint32_t *vdev_map);
QDF_STATUS wmi_extract_swba_tim_info(void *wmi_hdl, void *evt_buf,
uint32_t idx, wmi_host_tim_info *tim_info);
QDF_STATUS wmi_extract_swba_noa_info(void *wmi_hdl, void *evt_buf,
uint32_t idx, wmi_host_p2p_noa_info *p2p_desc);
QDF_STATUS wmi_extract_peer_sta_ps_statechange_ev(void *wmi_hdl,
void *evt_buf, wmi_host_peer_sta_ps_statechange_event *ev);
QDF_STATUS wmi_extract_peer_sta_kickout_ev(void *wmi_hdl, void *evt_buf,
wmi_host_peer_sta_kickout_event *ev);
QDF_STATUS wmi_extract_peer_ratecode_list_ev(void *wmi_hdl, void *evt_buf,
uint8_t *peer_mac, wmi_sa_rate_cap *rate_cap);
QDF_STATUS wmi_extract_rtt_hdr(void *wmi_hdl, void *evt_buf,
wmi_host_rtt_event_hdr *ev);
QDF_STATUS wmi_extract_rtt_ev(void *wmi_hdl, void *evt_buf,
wmi_host_rtt_meas_event *ev, uint8_t *hdump,
uint16_t hdump_len);
QDF_STATUS wmi_extract_rtt_error_report_ev(void *wmi_hdl, void *evt_buf,
wmi_host_rtt_error_report_event *ev);
QDF_STATUS wmi_extract_thermal_stats(void *wmi_hdl, void *evt_buf,
uint32_t *temp, uint32_t *level);
QDF_STATUS wmi_extract_thermal_level_stats(void *wmi_hdl, void *evt_buf,
uint8_t idx, uint32_t *levelcount, uint32_t *dccount);
QDF_STATUS wmi_extract_comb_phyerr(void *wmi_hdl, void *evt_buf,
uint16_t datalen, uint16_t *buf_offset,
wmi_host_phyerr_t *phyerr);
QDF_STATUS wmi_extract_single_phyerr(void *wmi_hdl, void *evt_buf,
uint16_t datalen, uint16_t *buf_offset,
wmi_host_phyerr_t *phyerr);
QDF_STATUS wmi_extract_composite_phyerr(void *wmi_hdl, void *evt_buf,
uint16_t datalen, wmi_host_phyerr_t *phyerr);
QDF_STATUS wmi_extract_profile_ctx(void *wmi_hdl, void *evt_buf,
wmi_host_wlan_profile_ctx_t *profile_ctx);
QDF_STATUS wmi_extract_profile_data(void *wmi_hdl, void *evt_buf,
wmi_host_wlan_profile_t *profile_data);
QDF_STATUS wmi_extract_chan_info_event(void *wmi_hdl, void *evt_buf,
wmi_host_chan_info_event *chan_info);
QDF_STATUS wmi_extract_channel_hopping_event(void *wmi_hdl, void *evt_buf,
wmi_host_pdev_channel_hopping_event *ch_hopping);
QDF_STATUS wmi_extract_stats_param(void *wmi_hdl, void *evt_buf,
wmi_host_stats_event *stats_param);
QDF_STATUS wmi_extract_pdev_stats(void *wmi_hdl, void *evt_buf,
uint32_t index,
wmi_host_pdev_stats *pdev_stats);
QDF_STATUS wmi_extract_pdev_ext_stats(void *wmi_hdl, void *evt_buf,
uint32_t index,
wmi_host_pdev_ext_stats *pdev_ext_stats);
QDF_STATUS wmi_extract_peer_extd_stats(void *wmi_hdl, void *evt_buf,
uint32_t index,
wmi_host_peer_extd_stats *peer_extd_stats);
QDF_STATUS wmi_extract_bss_chan_info_event(void *wmi_hdl, void *evt_buf,
wmi_host_pdev_bss_chan_info_event *bss_chan_info);
QDF_STATUS wmi_extract_inst_rssi_stats_event(void *wmi_hdl, void *evt_buf,
wmi_host_inst_stats_resp *inst_rssi_resp);
QDF_STATUS wmi_extract_peer_stats(void *wmi_hdl, void *evt_buf,
uint32_t index, wmi_host_peer_stats *peer_stats);
QDF_STATUS wmi_extract_tx_data_traffic_ctrl_ev(void *wmi_hdl, void *evt_buf,
wmi_host_tx_data_traffic_ctrl_event *ev);
QDF_STATUS wmi_extract_vdev_stats(void *wmi_hdl, void *evt_buf,
uint32_t index, wmi_host_vdev_stats *vdev_stats);
QDF_STATUS wmi_extract_vdev_extd_stats(void *wmi_hdl, void *evt_buf,
uint32_t index, wmi_host_vdev_extd_stats *vdev_extd_stats);
#endif /* _WMI_UNIFIED_API_H_ */ #endif /* _WMI_UNIFIED_API_H_ */

View File

@@ -108,10 +108,6 @@ QDF_STATUS send_stats_request_cmd_non_tlv(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN], uint8_t macaddr[IEEE80211_ADDR_LEN],
struct stats_request_params *param); struct stats_request_params *param);
QDF_STATUS send_packet_log_enable_cmd_non_tlv(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct packet_enable_params *param);
QDF_STATUS send_beacon_send_cmd_non_tlv(wmi_unified_t wmi_handle, QDF_STATUS send_beacon_send_cmd_non_tlv(wmi_unified_t wmi_handle,
struct beacon_params *param); struct beacon_params *param);

File diff suppressed because it is too large Load Diff

View File

@@ -35,6 +35,7 @@
#include "a_types.h" #include "a_types.h"
#include "wmi.h" #include "wmi.h"
#include "wmi_unified.h" #include "wmi_unified.h"
#include "wmi_unified_param.h"
#include "qdf_atomic.h" #include "qdf_atomic.h"
#define WMI_UNIFIED_MAX_EVENT 0x100 #define WMI_UNIFIED_MAX_EVENT 0x100
@@ -152,13 +153,23 @@ QDF_STATUS (*send_stats_request_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN], uint8_t macaddr[IEEE80211_ADDR_LEN],
struct stats_request_params *param); struct stats_request_params *param);
#ifdef WMI_NON_TLV_SUPPORT
QDF_STATUS (*send_packet_log_enable_cmd)(wmi_unified_t wmi_handle,
WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT);
#else
QDF_STATUS (*send_packet_log_enable_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_packet_log_enable_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN], uint8_t macaddr[IEEE80211_ADDR_LEN],
struct packet_enable_params *param); struct packet_enable_params *param);
#endif
QDF_STATUS (*send_packet_log_disable_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_beacon_send_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_beacon_send_cmd)(wmi_unified_t wmi_handle,
struct beacon_params *param); struct beacon_params *param);
QDF_STATUS (*send_beacon_tmpl_send_cmd)(wmi_unified_t wmi_handle,
struct beacon_tmpl_params *param);
QDF_STATUS (*send_peer_assoc_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_peer_assoc_cmd)(wmi_unified_t wmi_handle,
struct peer_assoc_params *param); struct peer_assoc_params *param);
@@ -251,9 +262,11 @@ QDF_STATUS (*send_probe_rsp_tmpl_send_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_setup_install_key_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_setup_install_key_cmd)(wmi_unified_t wmi_handle,
struct set_key_params *key_params); struct set_key_params *key_params);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS (*send_process_update_edca_param_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_process_update_edca_param_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id, uint8_t vdev_id,
wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]); wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]);
#endif
QDF_STATUS (*send_vdev_set_gtx_cfg_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_vdev_set_gtx_cfg_cmd)(wmi_unified_t wmi_handle,
uint32_t if_id, uint32_t if_id,
@@ -265,9 +278,10 @@ QDF_STATUS (*send_set_sta_keep_alive_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_set_sta_sa_query_param_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_set_sta_sa_query_param_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id, uint32_t max_retries, uint8_t vdev_id, uint32_t max_retries,
uint32_t retry_interval); uint32_t retry_interval);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS (*send_bcn_buf_ll_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_bcn_buf_ll_cmd)(wmi_unified_t wmi_handle,
wmi_bcn_send_from_host_cmd_fixed_param *param); wmi_bcn_send_from_host_cmd_fixed_param *param);
#endif
QDF_STATUS (*send_set_gateway_params_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_set_gateway_params_cmd)(wmi_unified_t wmi_handle,
struct gateway_update_req_param *req); struct gateway_update_req_param *req);
@@ -280,10 +294,11 @@ QDF_STATUS (*send_scan_probe_setoui_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_reset_passpoint_network_list_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_reset_passpoint_network_list_cmd)(wmi_unified_t wmi_handle,
struct wifi_passpoint_req_param *req); struct wifi_passpoint_req_param *req);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS (*send_roam_scan_offload_mode_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_roam_scan_offload_mode_cmd)(wmi_unified_t wmi_handle,
wmi_start_scan_cmd_fixed_param *scan_cmd_fp, wmi_start_scan_cmd_fixed_param *scan_cmd_fp,
struct roam_offload_scan_params *roam_req); struct roam_offload_scan_params *roam_req);
#endif
QDF_STATUS (*send_roam_scan_offload_rssi_thresh_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_roam_scan_offload_rssi_thresh_cmd)(wmi_unified_t wmi_handle,
struct roam_offload_scan_rssi_params *roam_req); struct roam_offload_scan_rssi_params *roam_req);
@@ -322,6 +337,7 @@ QDF_STATUS (*send_start_extscan_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_plm_stop_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_plm_stop_cmd)(wmi_unified_t wmi_handle,
const struct plm_req_params *plm); const struct plm_req_params *plm);
QDF_STATUS (*send_plm_start_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_plm_start_cmd)(wmi_unified_t wmi_handle,
const struct plm_req_params *plm, const struct plm_req_params *plm,
uint32_t *gchannel_list); uint32_t *gchannel_list);
@@ -331,9 +347,11 @@ QDF_STATUS (*send_csa_offload_enable_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_pno_stop_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id); QDF_STATUS (*send_pno_stop_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id);
#ifdef FEATURE_WLAN_SCAN_PNO
QDF_STATUS (*send_pno_start_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_pno_start_cmd)(wmi_unified_t wmi_handle,
struct pno_scan_req_params *pno, struct pno_scan_req_params *pno,
uint32_t *gchannel_freq_list); uint32_t *gchannel_freq_list);
#endif
QDF_STATUS (*send_ipa_offload_control_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_ipa_offload_control_cmd)(wmi_unified_t wmi_handle,
struct ipa_offload_control_params *ipa_offload); struct ipa_offload_control_params *ipa_offload);
@@ -363,7 +381,7 @@ QDF_STATUS (*send_snr_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id);
QDF_STATUS (*send_link_status_req_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_link_status_req_cmd)(wmi_unified_t wmi_handle,
struct link_status_params *link_status); struct link_status_params *link_status);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS (*send_lphb_config_hbenable_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_lphb_config_hbenable_cmd)(wmi_unified_t wmi_handle,
wmi_hb_set_enable_cmd_fixed_param *params); wmi_hb_set_enable_cmd_fixed_param *params);
@@ -387,6 +405,7 @@ QDF_STATUS (*send_get_link_speed_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_egap_conf_params_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_egap_conf_params_cmd)(wmi_unified_t wmi_handle,
wmi_ap_ps_egap_param_cmd_fixed_param *egap_params); wmi_ap_ps_egap_param_cmd_fixed_param *egap_params);
#endif
QDF_STATUS (*send_fw_profiling_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_fw_profiling_cmd)(wmi_unified_t wmi_handle,
uint32_t cmd, uint32_t value1, uint32_t value2); uint32_t cmd, uint32_t value1, uint32_t value2);
@@ -404,10 +423,11 @@ QDF_STATUS (*send_start_oem_data_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS QDF_STATUS
(*send_dfs_phyerr_filter_offload_en_cmd)(wmi_unified_t wmi_handle, (*send_dfs_phyerr_filter_offload_en_cmd)(wmi_unified_t wmi_handle,
bool dfs_phyerr_filter_offload); bool dfs_phyerr_filter_offload);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS (*send_pktlog_wmi_send_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_pktlog_wmi_send_cmd)(wmi_unified_t wmi_handle,
WMI_PKTLOG_EVENT pktlog_event, WMI_PKTLOG_EVENT pktlog_event,
WMI_CMD_ID cmd_id); WMI_CMD_ID cmd_id);
#endif
QDF_STATUS (*send_add_wow_wakeup_event_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_add_wow_wakeup_event_cmd)(wmi_unified_t wmi_handle,
uint32_t vdev_id, uint32_t vdev_id,
@@ -564,10 +584,11 @@ QDF_STATUS (*send_roam_invoke_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_roam_scan_offload_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_roam_scan_offload_cmd)(wmi_unified_t wmi_handle,
uint32_t command, uint32_t vdev_id); uint32_t command, uint32_t vdev_id);
#ifndef WMI_NON_TLV_SUPPORT
QDF_STATUS (*send_roam_scan_offload_ap_profile_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_roam_scan_offload_ap_profile_cmd)(wmi_unified_t wmi_handle,
wmi_ap_profile *ap_profile_p, wmi_ap_profile *ap_profile_p,
uint32_t vdev_id); uint32_t vdev_id);
#endif
QDF_STATUS (*send_roam_scan_offload_scan_period_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_roam_scan_offload_scan_period_cmd)(wmi_unified_t wmi_handle,
uint32_t scan_period, uint32_t scan_period,
@@ -588,6 +609,431 @@ QDF_STATUS (*send_roam_scan_offload_rssi_change_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_get_buf_extscan_hotlist_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_get_buf_extscan_hotlist_cmd)(wmi_unified_t wmi_handle,
struct ext_scan_setbssi_hotlist_params * struct ext_scan_setbssi_hotlist_params *
photlist, int *buf_len); photlist, int *buf_len);
QDF_STATUS (*send_pdev_get_tpc_config_cmd)(wmi_unified_t wmi_handle,
uint32_t param);
QDF_STATUS (*send_set_atf_cmd)(wmi_unified_t wmi_handle,
struct set_atf_params *param);
QDF_STATUS (*send_pdev_fips_cmd)(wmi_unified_t wmi_handle,
struct fips_params *param);
QDF_STATUS (*send_wlan_profile_enable_cmd)(wmi_unified_t wmi_handle,
struct wlan_profile_params *param);
QDF_STATUS (*send_wlan_profile_trigger_cmd)(wmi_unified_t wmi_handle,
struct wlan_profile_params *param);
QDF_STATUS (*send_pdev_set_chan_cmd)(wmi_unified_t wmi_handle,
struct channel_param *param);
QDF_STATUS (*send_set_ht_ie_cmd)(wmi_unified_t wmi_handle,
struct ht_ie_params *param);
QDF_STATUS (*send_set_vht_ie_cmd)(wmi_unified_t wmi_handle,
struct vht_ie_params *param);
QDF_STATUS (*send_wmm_update_cmd)(wmi_unified_t wmi_handle,
struct wmm_update_params *param);
QDF_STATUS (*send_set_ant_switch_tbl_cmd)(wmi_unified_t wmi_handle,
struct ant_switch_tbl_params *param);
QDF_STATUS (*send_set_ratepwr_table_cmd)(wmi_unified_t wmi_handle,
struct ratepwr_table_params *param);
QDF_STATUS (*send_get_ratepwr_table_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_set_ctl_table_cmd)(wmi_unified_t wmi_handle,
struct ctl_table_params *param);
QDF_STATUS (*send_set_mimogain_table_cmd)(wmi_unified_t wmi_handle,
struct mimogain_table_params *param);
QDF_STATUS (*send_set_ratepwr_chainmsk_cmd)(wmi_unified_t wmi_handle,
struct ratepwr_chainmsk_params *param);
QDF_STATUS (*send_set_macaddr_cmd)(wmi_unified_t wmi_handle,
struct macaddr_params *param);
QDF_STATUS (*send_pdev_scan_start_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_pdev_scan_end_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_set_acparams_cmd)(wmi_unified_t wmi_handle,
struct acparams_params *param);
QDF_STATUS (*send_set_vap_dscp_tid_map_cmd)(wmi_unified_t wmi_handle,
struct vap_dscp_tid_map_params *param);
QDF_STATUS (*send_proxy_ast_reserve_cmd)(wmi_unified_t wmi_handle,
struct proxy_ast_reserve_params *param);
QDF_STATUS (*send_pdev_qvit_cmd)(wmi_unified_t wmi_handle,
struct pdev_qvit_params *param);
QDF_STATUS (*send_mcast_group_update_cmd)(wmi_unified_t wmi_handle,
struct mcast_group_update_params *param);
QDF_STATUS (*send_peer_add_wds_entry_cmd)(wmi_unified_t wmi_handle,
struct peer_add_wds_entry_params *param);
QDF_STATUS (*send_peer_del_wds_entry_cmd)(wmi_unified_t wmi_handle,
struct peer_del_wds_entry_params *param);
QDF_STATUS (*send_peer_update_wds_entry_cmd)(wmi_unified_t wmi_handle,
struct peer_update_wds_entry_params *param);
QDF_STATUS (*send_phyerr_enable_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_phyerr_disable_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_smart_ant_enable_cmd)(wmi_unified_t wmi_handle,
struct smart_ant_enable_params *param);
QDF_STATUS (*send_smart_ant_set_rx_ant_cmd)(wmi_unified_t wmi_handle,
struct smart_ant_rx_ant_params *param);
QDF_STATUS (*send_smart_ant_set_tx_ant_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct smart_ant_tx_ant_params *param);
QDF_STATUS (*send_smart_ant_set_training_info_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct smart_ant_training_info_params *param);
QDF_STATUS (*send_smart_ant_set_node_config_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct smart_ant_node_config_params *param);
QDF_STATUS (*send_smart_ant_enable_tx_feedback_cmd)(wmi_unified_t wmi_handle,
struct smart_ant_enable_tx_feedback_params *param);
QDF_STATUS (*send_vdev_spectral_configure_cmd)(wmi_unified_t wmi_handle,
struct vdev_spectral_configure_params *param);
QDF_STATUS (*send_vdev_spectral_enable_cmd)(wmi_unified_t wmi_handle,
struct vdev_spectral_enable_params *param);
QDF_STATUS (*send_bss_chan_info_request_cmd)(wmi_unified_t wmi_handle,
struct bss_chan_info_request_params *param);
QDF_STATUS (*send_thermal_mitigation_param_cmd)(wmi_unified_t wmi_handle,
struct thermal_mitigation_params *param);
QDF_STATUS (*send_vdev_set_neighbour_rx_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct set_neighbour_rx_params *param);
QDF_STATUS (*send_vdev_set_fwtest_param_cmd)(wmi_unified_t wmi_handle,
struct set_fwtest_params *param);
QDF_STATUS (*send_vdev_config_ratemask_cmd)(wmi_unified_t wmi_handle,
struct config_ratemask_params *param);
QDF_STATUS (*send_vdev_install_key_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct vdev_install_key_params *param);
QDF_STATUS (*send_wow_wakeup_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_wow_add_wakeup_event_cmd)(wmi_unified_t wmi_handle,
struct wow_add_wakeup_params *param);
QDF_STATUS (*send_wow_add_wakeup_pattern_cmd)(wmi_unified_t wmi_handle,
struct wow_add_wakeup_pattern_params *param);
QDF_STATUS (*send_wow_remove_wakeup_pattern_cmd)(wmi_unified_t wmi_handle,
struct wow_remove_wakeup_pattern_params *param);
QDF_STATUS (*send_pdev_set_regdomain_cmd)(wmi_unified_t wmi_handle,
struct pdev_set_regdomain_params *param);
QDF_STATUS (*send_set_quiet_mode_cmd)(wmi_unified_t wmi_handle,
struct set_quiet_mode_params *param);
QDF_STATUS (*send_set_beacon_filter_cmd)(wmi_unified_t wmi_handle,
struct set_beacon_filter_params *param);
QDF_STATUS (*send_remove_beacon_filter_cmd)(wmi_unified_t wmi_handle,
struct remove_beacon_filter_params *param);
/*
QDF_STATUS (*send_mgmt_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct mgmt_params *param);
*/
QDF_STATUS (*send_addba_clearresponse_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct addba_clearresponse_params *param);
QDF_STATUS (*send_addba_send_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct addba_send_params *param);
QDF_STATUS (*send_delba_send_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct delba_send_params *param);
QDF_STATUS (*send_addba_setresponse_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct addba_setresponse_params *param);
QDF_STATUS (*send_singleamsdu_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct singleamsdu_params *param);
QDF_STATUS (*send_set_qboost_param_cmd)(wmi_unified_t wmi_handle,
uint8_t macaddr[IEEE80211_ADDR_LEN],
struct set_qboost_params *param);
QDF_STATUS (*send_mu_scan_cmd)(wmi_unified_t wmi_handle,
struct mu_scan_params *param);
QDF_STATUS (*send_lteu_config_cmd)(wmi_unified_t wmi_handle,
struct lteu_config_params *param);
QDF_STATUS (*send_set_ps_mode_cmd)(wmi_unified_t wmi_handle,
struct set_ps_mode_params *param);
void (*save_service_bitmap)(wmi_unified_t wmi_handle,
void *evt_buf);
bool (*is_service_enabled)(wmi_unified_t wmi_handle,
uint32_t service_id);
QDF_STATUS (*get_target_cap_from_service_ready)(wmi_unified_t wmi_handle,
void *evt_buf, target_capability_info *ev);
QDF_STATUS (*extract_fw_version)(wmi_unified_t wmi_handle,
void *ev, struct wmi_host_fw_ver *fw_ver);
QDF_STATUS (*extract_fw_abi_version)(wmi_unified_t wmi_handle,
void *ev, struct wmi_host_fw_abi_ver *fw_ver);
QDF_STATUS (*extract_hal_reg_cap)(wmi_unified_t wmi_handle, void *evt_buf,
TARGET_HAL_REG_CAPABILITIES *hal_reg_cap);
host_mem_req * (*extract_host_mem_req)(wmi_unified_t wmi_handle,
void *evt_buf, uint8_t *num_entries);
QDF_STATUS (*init_cmd_send)(wmi_unified_t wmi_handle,
target_resource_config *res_cfg,
uint8_t num_mem_chunks,
struct wmi_host_mem_chunk *mem_chunk);
QDF_STATUS (*save_fw_version)(wmi_unified_t wmi_handle, void *evt_buf);
uint32_t (*ready_extract_init_status)(wmi_unified_t wmi_hdl, void *ev);
QDF_STATUS (*ready_extract_mac_addr)(wmi_unified_t wmi_hdl, void *ev,
uint8_t *macaddr);
QDF_STATUS (*check_and_update_fw_version)(wmi_unified_t wmi_hdl, void *ev);
uint8_t* (*extract_dbglog_data_len)(wmi_unified_t wmi_handle, void *evt_buf,
uint16_t *len);
QDF_STATUS (*send_ext_resource_config)(wmi_unified_t wmi_handle,
wmi_host_ext_resource_config *ext_cfg);
QDF_STATUS (*send_nf_dbr_dbm_info_get_cmd)(wmi_unified_t wmi_handle);
QDF_STATUS (*send_packet_power_info_get_cmd)(wmi_unified_t wmi_handle,
struct packet_power_info_params *param);
QDF_STATUS (*send_gpio_config_cmd)(wmi_unified_t wmi_handle,
struct gpio_config_params *param);
QDF_STATUS (*send_gpio_output_cmd)(wmi_unified_t wmi_handle,
struct gpio_output_params *param);
QDF_STATUS (*send_rtt_meas_req_test_cmd)(wmi_unified_t wmi_handle,
struct rtt_meas_req_test_params *param);
QDF_STATUS (*send_rtt_meas_req_cmd)(wmi_unified_t wmi_handle,
struct rtt_meas_req_params *param);
QDF_STATUS (*send_rtt_keepalive_req_cmd)(wmi_unified_t wmi_handle,
struct rtt_keepalive_req_params *param);
QDF_STATUS (*send_lci_set_cmd)(wmi_unified_t wmi_handle,
struct lci_set_params *param);
QDF_STATUS (*send_lcr_set_cmd)(wmi_unified_t wmi_handle,
struct lcr_set_params *param);
QDF_STATUS (*send_periodic_chan_stats_config_cmd)(wmi_unified_t wmi_handle,
struct periodic_chan_stats_params *param);
QDF_STATUS
(*send_atf_peer_request_cmd)(wmi_unified_t wmi_handle,
struct atf_peer_request_params *param);
QDF_STATUS
(*send_set_atf_grouping_cmd)(wmi_unified_t wmi_handle,
struct atf_grouping_params *param);
QDF_STATUS (*extract_wds_addr_event)(wmi_unified_t wmi_handle,
void *evt_buf, uint16_t len, wds_addr_event_t *wds_ev);
QDF_STATUS (*extract_dcs_interference_type)(wmi_unified_t wmi_handle,
void *evt_buf, uint32_t *interference_type);
QDF_STATUS (*extract_dcs_cw_int)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_ath_dcs_cw_int *cw_int);
QDF_STATUS (*extract_dcs_im_tgt_stats)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_dcs_im_tgt_stats_t *wlan_stat);
QDF_STATUS (*extract_fips_event_error_status)(wmi_unified_t wmi_handle,
void *evt_buf, uint32_t *err_status);
QDF_STATUS (*extract_fips_event_data)(wmi_unified_t wmi_handle,
void *evt_buf, uint32_t *data_len, uint32_t **data);
QDF_STATUS (*extract_vdev_start_resp)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_vdev_start_resp *vdev_rsp);
QDF_STATUS (*extract_tbttoffset_update_params)(void *wmi_hdl, void *evt_buf,
uint32_t *vdev_map, uint32_t **tbttoffset_list);
QDF_STATUS (*extract_mgmt_rx_params)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_mgmt_rx_hdr *hdr, uint8_t **bufp);
QDF_STATUS (*extract_vdev_stopped_param)(wmi_unified_t wmi_handle,
void *evt_buf, uint32_t *vdev_id);
QDF_STATUS (*extract_vdev_roam_param)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_roam_event *param);
QDF_STATUS (*extract_vdev_scan_ev_param)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_scan_event *param);
QDF_STATUS (*extract_mu_ev_param)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_mu_report_event *param);
QDF_STATUS (*extract_pdev_tpc_config_ev_param)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_pdev_tpc_config_event *param);
QDF_STATUS (*extract_gpio_input_ev_param)(wmi_unified_t wmi_handle,
void *evt_buf, uint32_t *gpio_num);
QDF_STATUS (*extract_pdev_reserve_ast_ev_param)(wmi_unified_t wmi_handle,
void *evt_buf, uint32_t *result);
QDF_STATUS (*extract_nfcal_power_ev_param)(wmi_unified_t wmi_handle,
void *evt_buf,
wmi_host_pdev_nfcal_power_all_channels_event *param);
QDF_STATUS (*extract_pdev_tpc_ev_param)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_pdev_tpc_event *param);
QDF_STATUS (*extract_pdev_generic_buffer_ev_param)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_pdev_generic_buffer_event *param);
QDF_STATUS (*extract_mgmt_tx_compl_param)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_mgmt_tx_compl_event *param);
QDF_STATUS (*extract_swba_vdev_map)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t *vdev_map);
QDF_STATUS (*extract_swba_tim_info)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t idx, wmi_host_tim_info *tim_info);
QDF_STATUS (*extract_swba_noa_info)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t idx, wmi_host_p2p_noa_info *p2p_desc);
QDF_STATUS (*extract_peer_sta_ps_statechange_ev)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_peer_sta_ps_statechange_event *ev);
QDF_STATUS (*extract_peer_sta_kickout_ev)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_peer_sta_kickout_event *ev);
QDF_STATUS (*extract_peer_ratecode_list_ev)(wmi_unified_t wmi_handle,
void *evt_buf, uint8_t *peer_mac, wmi_sa_rate_cap *rate_cap);
QDF_STATUS (*extract_comb_phyerr)(wmi_unified_t wmi_handle, void *evt_buf,
uint16_t datalen, uint16_t *buf_offset, wmi_host_phyerr_t *phyerr);
QDF_STATUS (*extract_single_phyerr)(wmi_unified_t wmi_handle, void *evt_buf,
uint16_t datalen, uint16_t *buf_offset, wmi_host_phyerr_t *phyerr);
QDF_STATUS (*extract_composite_phyerr)(wmi_unified_t wmi_handle, void *evt_buf,
uint16_t datalen, wmi_host_phyerr_t *phyerr);
QDF_STATUS (*extract_rtt_hdr)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_rtt_event_hdr *ev);
QDF_STATUS (*extract_rtt_ev)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_rtt_meas_event *ev, uint8_t *hdump, uint16_t hdump_len);
QDF_STATUS (*extract_rtt_error_report_ev)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_rtt_error_report_event *ev);
QDF_STATUS (*extract_all_stats_count)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_stats_event *stats_param);
QDF_STATUS (*extract_pdev_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_pdev_stats *pdev_stats);
QDF_STATUS (*extract_pdev_ext_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_pdev_ext_stats *pdev_ext_stats);
QDF_STATUS (*extract_vdev_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_vdev_stats *vdev_stats);
QDF_STATUS (*extract_peer_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_peer_stats *peer_stats);
QDF_STATUS (*extract_bcnflt_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats);
QDF_STATUS (*extract_peer_extd_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_peer_extd_stats *peer_extd_stats);
QDF_STATUS (*extract_chan_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_chan_stats *chan_stats);
QDF_STATUS (*extract_thermal_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t *temp, uint32_t *level);
QDF_STATUS (*extract_thermal_level_stats)(wmi_unified_t wmi_handle,
void *evt_buf, uint8_t idx, uint32_t *levelcount,
uint32_t *dccount);
QDF_STATUS (*extract_profile_ctx)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_wlan_profile_ctx_t *profile_ctx);
QDF_STATUS (*extract_profile_data)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_wlan_profile_t *profile_data);
QDF_STATUS (*extract_chan_info_event)(wmi_unified_t wmi_handle, void *evt_buf,
wmi_host_chan_info_event *chan_info);
QDF_STATUS (*extract_channel_hopping_event)(wmi_unified_t wmi_handle,
void *evt_buf,
wmi_host_pdev_channel_hopping_event *ch_hopping);
QDF_STATUS (*extract_bss_chan_info_event)(wmi_unified_t wmi_handle,
void *evt_buf,
wmi_host_pdev_bss_chan_info_event *bss_chan_info);
QDF_STATUS (*extract_inst_rssi_stats_event)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_inst_stats_resp *inst_rssi_resp);
QDF_STATUS (*extract_tx_data_traffic_ctrl_ev)(wmi_unified_t wmi_handle,
void *evt_buf, wmi_host_tx_data_traffic_ctrl_event *ev);
QDF_STATUS (*extract_vdev_extd_stats)(wmi_unified_t wmi_handle, void *evt_buf,
uint32_t index, wmi_host_vdev_extd_stats *vdev_extd_stats);
};
struct target_abi_version {
A_UINT32 abi_version_0;
/** WMI Major and Minor versions */
A_UINT32 abi_version_1;
/** WMI change revision */
A_UINT32 abi_version_ns_0;
/** ABI version namespace first four dwords */
A_UINT32 abi_version_ns_1;
/** ABI version namespace second four dwords */
A_UINT32 abi_version_ns_2;
/** ABI version namespace third four dwords */
A_UINT32 abi_version_ns_3;
/** ABI version namespace fourth four dwords */
}; };
/** /**
@@ -601,7 +1047,7 @@ struct wmi_cmd_init {
}; };
struct wmi_unified { struct wmi_unified {
ol_scn_t scn_handle; /* handle to device */ void *scn_handle; /* handle to device */
osdev_t osdev; /* handle to use OS-independent services */ osdev_t osdev; /* handle to use OS-independent services */
qdf_atomic_t pending_cmds; qdf_atomic_t pending_cmds;
HTC_ENDPOINT_ID wmi_endpoint_id; HTC_ENDPOINT_ID wmi_endpoint_id;
@@ -615,8 +1061,10 @@ struct wmi_unified {
qdf_nbuf_queue_t event_queue; qdf_nbuf_queue_t event_queue;
struct work_struct rx_event_work; struct work_struct rx_event_work;
int wmi_stop_in_progress; int wmi_stop_in_progress;
#ifndef WMI_NON_TLV_SUPPORT
struct _wmi_abi_version fw_abi_version; struct _wmi_abi_version fw_abi_version;
struct _wmi_abi_version final_abi_vers; struct _wmi_abi_version final_abi_vers;
#endif
struct wmi_cmd_init saved_wmi_init_cmd; struct wmi_cmd_init saved_wmi_init_cmd;
uint32_t num_of_diag_events_logs; uint32_t num_of_diag_events_logs;
uint32_t *events_logs_list; uint32_t *events_logs_list;
@@ -636,14 +1084,27 @@ struct wmi_unified {
qdf_atomic_t runtime_pm_inprogress; qdf_atomic_t runtime_pm_inprogress;
#endif #endif
enum wmi_target_type target_type;
struct wmi_rx_ops rx_ops; struct wmi_rx_ops rx_ops;
struct wmi_ops *ops; struct wmi_ops *ops;
void *event_handler_cookie[WMI_UNIFIED_MAX_EVENT];
bool use_cookie; bool use_cookie;
bool wmi_stopinprogress;
qdf_spinlock_t ctx_lock; qdf_spinlock_t ctx_lock;
#ifdef WMI_TLV_AND_NON_TLV_SUPPORT
/* 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];
#endif
}; };
struct wmi_ops *wmi_get_tlv_ops(void); #ifdef WMI_NON_TLV_SUPPORT
struct wmi_ops *wmi_get_non_tlv_ops(void); #define wmi_tlv_attach(x) qdf_print("TLV Unavailable\n")
#else
void wmi_tlv_attach(wmi_unified_t wmi_handle);
#endif
void wmi_non_tlv_attach(wmi_unified_t wmi_handle);
/** /**
* wmi_align() - provides word aligned parameter * wmi_align() - provides word aligned parameter