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:

committed by
Gerrit - the friendly Code Review server

parent
e6eb894c8f
commit
a5e18c4829
@@ -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_ */
|
||||||
|
@@ -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
@@ -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
|
||||||
|
@@ -34,7 +34,9 @@
|
|||||||
#include "a_debug.h"
|
#include "a_debug.h"
|
||||||
#include "ol_if_athvar.h"
|
#include "ol_if_athvar.h"
|
||||||
#include "ol_defines.h"
|
#include "ol_defines.h"
|
||||||
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
#include "ol_fw.h"
|
#include "ol_fw.h"
|
||||||
|
#endif
|
||||||
#include "htc_api.h"
|
#include "htc_api.h"
|
||||||
#include "htc_api.h"
|
#include "htc_api.h"
|
||||||
#include "dbglog_host.h"
|
#include "dbglog_host.h"
|
||||||
@@ -159,7 +161,6 @@ wmi_mgmt_event_log_buffer[WMI_MGMT_EVENT_DEBUG_MAX_ENTRY];
|
|||||||
|
|
||||||
#endif /*WMI_INTERFACE_EVENT_LOGGING */
|
#endif /*WMI_INTERFACE_EVENT_LOGGING */
|
||||||
|
|
||||||
static void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
|
|
||||||
int wmi_get_host_credits(wmi_unified_t wmi_handle);
|
int wmi_get_host_credits(wmi_unified_t wmi_handle);
|
||||||
/* WMI buffer APIs */
|
/* WMI buffer APIs */
|
||||||
|
|
||||||
@@ -242,6 +243,7 @@ uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle)
|
|||||||
return wmi_handle->max_msg_len - WMI_MIN_HEAD_ROOM;
|
return wmi_handle->max_msg_len - WMI_MIN_HEAD_ROOM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
static uint8_t *get_wmi_cmd_string(WMI_CMD_ID wmi_command)
|
static uint8_t *get_wmi_cmd_string(WMI_CMD_ID wmi_command)
|
||||||
{
|
{
|
||||||
switch (wmi_command) {
|
switch (wmi_command) {
|
||||||
@@ -578,10 +580,10 @@ static uint8_t *get_wmi_cmd_string(WMI_CMD_ID wmi_command)
|
|||||||
* as we MUST have a fixed value here to maintain compatibility between
|
* as we MUST have a fixed value here to maintain compatibility between
|
||||||
* UTF and the ART2 driver
|
* UTF and the ART2 driver
|
||||||
*/
|
*/
|
||||||
/** UTF WMI commands */
|
/* UTF WMI commands */
|
||||||
CASE_RETURN_STRING(WMI_PDEV_UTF_CMDID);
|
CASE_RETURN_STRING(WMI_PDEV_UTF_CMDID);
|
||||||
|
|
||||||
/** set debug log config */
|
/* set debug log config */
|
||||||
CASE_RETURN_STRING(WMI_DBGLOG_CFG_CMDID);
|
CASE_RETURN_STRING(WMI_DBGLOG_CFG_CMDID);
|
||||||
/* QVIT specific command id */
|
/* QVIT specific command id */
|
||||||
CASE_RETURN_STRING(WMI_PDEV_QVIT_CMDID);
|
CASE_RETURN_STRING(WMI_PDEV_QVIT_CMDID);
|
||||||
@@ -662,7 +664,7 @@ static uint8_t *get_wmi_cmd_string(WMI_CMD_ID wmi_command)
|
|||||||
CASE_RETURN_STRING(WMI_RMC_CONFIG_CMDID);
|
CASE_RETURN_STRING(WMI_RMC_CONFIG_CMDID);
|
||||||
|
|
||||||
/* WLAN MHF offload commands */
|
/* WLAN MHF offload commands */
|
||||||
/** enable/disable MHF offload */
|
/* enable/disable MHF offload */
|
||||||
CASE_RETURN_STRING(WMI_MHF_OFFLOAD_SET_MODE_CMDID);
|
CASE_RETURN_STRING(WMI_MHF_OFFLOAD_SET_MODE_CMDID);
|
||||||
/* Plumb routing table for MHF offload */
|
/* Plumb routing table for MHF offload */
|
||||||
CASE_RETURN_STRING(WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID);
|
CASE_RETURN_STRING(WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID);
|
||||||
@@ -820,6 +822,7 @@ static inline void wma_log_cmd_id(WMI_CMD_ID cmd_id)
|
|||||||
get_wmi_cmd_string(cmd_id), cmd_id);
|
get_wmi_cmd_string(cmd_id), cmd_id);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_is_runtime_pm_cmd() - check if a cmd is from suspend resume sequence
|
* wmi_is_runtime_pm_cmd() - check if a cmd is from suspend resume sequence
|
||||||
@@ -827,6 +830,7 @@ static inline void wma_log_cmd_id(WMI_CMD_ID cmd_id)
|
|||||||
*
|
*
|
||||||
* Return: true if the command is part of the suspend resume sequence.
|
* Return: true if the command is part of the suspend resume sequence.
|
||||||
*/
|
*/
|
||||||
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
static bool wmi_is_runtime_pm_cmd(WMI_CMD_ID cmd_id)
|
static bool wmi_is_runtime_pm_cmd(WMI_CMD_ID cmd_id)
|
||||||
{
|
{
|
||||||
switch (cmd_id) {
|
switch (cmd_id) {
|
||||||
@@ -845,6 +849,34 @@ static bool wmi_is_runtime_pm_cmd(WMI_CMD_ID cmd_id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_is_pm_resume_cmd() - check if a cmd is part of the resume sequence
|
||||||
|
* @cmd_id: command to check
|
||||||
|
*
|
||||||
|
* Return: true if the command is part of the resume sequence.
|
||||||
|
*/
|
||||||
|
static bool wmi_is_pm_resume_cmd(WMI_CMD_ID cmd_id)
|
||||||
|
{
|
||||||
|
switch (cmd_id) {
|
||||||
|
case WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID:
|
||||||
|
case WMI_PDEV_RESUME_CMDID:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static bool wmi_is_runtime_pm_cmd(WMI_CMD_ID cmd_id)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
static bool wmi_is_pm_resume_cmd(WMI_CMD_ID cmd_id)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_unified_cmd_send() - WMI command API
|
* wmi_unified_cmd_send() - WMI command API
|
||||||
* @wmi_handle: handle to wmi
|
* @wmi_handle: handle to wmi
|
||||||
@@ -865,16 +897,21 @@ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t len,
|
|||||||
if (wmi_is_runtime_pm_cmd(cmd_id))
|
if (wmi_is_runtime_pm_cmd(cmd_id))
|
||||||
htc_tag = HTC_TX_PACKET_TAG_AUTO_PM;
|
htc_tag = HTC_TX_PACKET_TAG_AUTO_PM;
|
||||||
} else if (qdf_atomic_read(&wmi_handle->is_target_suspended) &&
|
} else if (qdf_atomic_read(&wmi_handle->is_target_suspended) &&
|
||||||
((WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID != cmd_id) &&
|
(!wmi_is_pm_resume_cmd(cmd_id))) {
|
||||||
(WMI_PDEV_RESUME_CMDID != cmd_id))) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||||
"%s: Target is suspended", __func__);
|
"%s: Target is suspended", __func__);
|
||||||
QDF_ASSERT(0);
|
QDF_ASSERT(0);
|
||||||
return QDF_STATUS_E_BUSY;
|
return QDF_STATUS_E_BUSY;
|
||||||
}
|
}
|
||||||
|
if (wmi_handle->wmi_stopinprogress) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||||
|
"WMI stop in progress\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Do sanity check on the TLV parameter structure */
|
/* Do sanity check on the TLV parameter structure */
|
||||||
{
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
|
if (wmi_handle->target_type == WMI_TLV_TARGET) {
|
||||||
void *buf_ptr = (void *)qdf_nbuf_data(buf);
|
void *buf_ptr = (void *)qdf_nbuf_data(buf);
|
||||||
|
|
||||||
if (wmitlv_check_command_tlv_params(NULL, buf_ptr, len, cmd_id)
|
if (wmitlv_check_command_tlv_params(NULL, buf_ptr, len, cmd_id)
|
||||||
@@ -885,6 +922,7 @@ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t len,
|
|||||||
return QDF_STATUS_E_INVAL;
|
return QDF_STATUS_E_INVAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (qdf_nbuf_push_head(buf, sizeof(WMI_CMD_HDR)) == NULL) {
|
if (qdf_nbuf_push_head(buf, sizeof(WMI_CMD_HDR)) == NULL) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||||
@@ -899,7 +937,7 @@ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t len,
|
|||||||
if (qdf_atomic_read(&wmi_handle->pending_cmds) >= WMI_MAX_CMDS) {
|
if (qdf_atomic_read(&wmi_handle->pending_cmds) >= WMI_MAX_CMDS) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||||
"\n%s: hostcredits = %d", __func__,
|
"\n%s: hostcredits = %d", __func__,
|
||||||
wmi_get_host_credits(wmi_handle));
|
wmi_get_host_credits(wmi_handle));
|
||||||
htc_dump_counter_info(wmi_handle->htc_handle);
|
htc_dump_counter_info(wmi_handle->htc_handle);
|
||||||
qdf_atomic_dec(&wmi_handle->pending_cmds);
|
qdf_atomic_dec(&wmi_handle->pending_cmds);
|
||||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||||
@@ -923,8 +961,9 @@ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t len,
|
|||||||
wmi_handle->wmi_endpoint_id, htc_tag);
|
wmi_handle->wmi_endpoint_id, htc_tag);
|
||||||
|
|
||||||
SET_HTC_PACKET_NET_BUF_CONTEXT(pkt, buf);
|
SET_HTC_PACKET_NET_BUF_CONTEXT(pkt, buf);
|
||||||
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
wma_log_cmd_id(cmd_id);
|
wma_log_cmd_id(cmd_id);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef WMI_INTERFACE_EVENT_LOGGING
|
#ifdef WMI_INTERFACE_EVENT_LOGGING
|
||||||
qdf_spin_lock_bh(&wmi_handle->wmi_record_lock);
|
qdf_spin_lock_bh(&wmi_handle->wmi_record_lock);
|
||||||
@@ -961,10 +1000,11 @@ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t len,
|
|||||||
* Return: event handler's index
|
* Return: event handler's index
|
||||||
*/
|
*/
|
||||||
int wmi_unified_get_event_handler_ix(wmi_unified_t wmi_handle,
|
int wmi_unified_get_event_handler_ix(wmi_unified_t wmi_handle,
|
||||||
WMI_EVT_ID event_id)
|
uint32_t event_id)
|
||||||
{
|
{
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
int32_t invalid_idx = -1;
|
int32_t invalid_idx = -1;
|
||||||
|
|
||||||
for (idx = 0; (idx < wmi_handle->max_event_idx &&
|
for (idx = 0; (idx < wmi_handle->max_event_idx &&
|
||||||
idx < WMI_UNIFIED_MAX_EVENT); ++idx) {
|
idx < WMI_UNIFIED_MAX_EVENT); ++idx) {
|
||||||
if (wmi_handle->event_id[idx] == event_id &&
|
if (wmi_handle->event_id[idx] == event_id &&
|
||||||
@@ -986,25 +1026,37 @@ int wmi_unified_get_event_handler_ix(wmi_unified_t wmi_handle,
|
|||||||
* Return: 0 on success
|
* Return: 0 on success
|
||||||
*/
|
*/
|
||||||
int wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
|
int 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)
|
||||||
{
|
{
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
|
uint32_t evt_id;
|
||||||
|
|
||||||
if (wmi_unified_get_event_handler_ix(wmi_handle, event_id) != -1) {
|
#ifdef WMI_TLV_AND_NON_TLV_SUPPORT
|
||||||
qdf_print("%s : event handler already registered 0x%x \n",
|
if (event_id >= wmi_events_max ||
|
||||||
__func__, event_id);
|
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];
|
||||||
|
#else
|
||||||
|
evt_id = event_id;
|
||||||
|
#endif
|
||||||
|
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;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
if (wmi_handle->max_event_idx == WMI_UNIFIED_MAX_EVENT) {
|
if (wmi_handle->max_event_idx == WMI_UNIFIED_MAX_EVENT) {
|
||||||
qdf_print("%s : no more event handlers 0x%x \n",
|
qdf_print("%s : no more event handlers 0x%x\n",
|
||||||
__func__, event_id);
|
__func__, evt_id);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
idx = wmi_handle->max_event_idx;
|
idx = wmi_handle->max_event_idx;
|
||||||
wmi_handle->event_handler[idx] = handler_func;
|
wmi_handle->event_handler[idx] = handler_func;
|
||||||
wmi_handle->event_id[idx] = event_id;
|
wmi_handle->event_id[idx] = evt_id;
|
||||||
qdf_spin_lock_bh(&wmi_handle->ctx_lock);
|
qdf_spin_lock_bh(&wmi_handle->ctx_lock);
|
||||||
wmi_handle->ctx[idx] = rx_ctx;
|
wmi_handle->ctx[idx] = rx_ctx;
|
||||||
qdf_spin_unlock_bh(&wmi_handle->ctx_lock);
|
qdf_spin_unlock_bh(&wmi_handle->ctx_lock);
|
||||||
@@ -1021,14 +1073,27 @@ int wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
|
|||||||
* Return: 0 on success
|
* Return: 0 on success
|
||||||
*/
|
*/
|
||||||
int wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
|
int wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
|
||||||
WMI_EVT_ID event_id)
|
uint32_t event_id)
|
||||||
{
|
{
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
|
uint32_t evt_id;
|
||||||
|
|
||||||
idx = wmi_unified_get_event_handler_ix(wmi_handle, event_id);
|
#ifdef WMI_TLV_AND_NON_TLV_SUPPORT
|
||||||
|
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];
|
||||||
|
#else
|
||||||
|
evt_id = event_id;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
idx = wmi_unified_get_event_handler_ix(wmi_handle, evt_id);
|
||||||
if (idx == -1) {
|
if (idx == -1) {
|
||||||
qdf_print("%s : event handler is not registered: event id 0x%x \n",
|
qdf_print("%s : event handler is not registered: evt id 0x%x\n",
|
||||||
__func__, event_id);
|
__func__, evt_id);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
wmi_handle->event_handler[idx] = NULL;
|
wmi_handle->event_handler[idx] = NULL;
|
||||||
@@ -1046,6 +1111,7 @@ int wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
|
|||||||
* wmi_process_fw_event_default_ctx() - process in default caller context
|
* wmi_process_fw_event_default_ctx() - process in default caller context
|
||||||
* @wmi_handle: handle to wmi
|
* @wmi_handle: handle to wmi
|
||||||
* @htc_packet: pointer to htc packet
|
* @htc_packet: pointer to htc packet
|
||||||
|
* @exec_ctx: execution context for wmi fw event
|
||||||
*
|
*
|
||||||
* Event process by below function will be in default caller context.
|
* Event process by below function will be in default caller context.
|
||||||
* wmi internally provides rx work thread processing context.
|
* wmi internally provides rx work thread processing context.
|
||||||
@@ -1058,8 +1124,13 @@ static void wmi_process_fw_event_default_ctx(struct wmi_unified *wmi_handle,
|
|||||||
wmi_buf_t evt_buf;
|
wmi_buf_t evt_buf;
|
||||||
evt_buf = (wmi_buf_t) htc_packet->pPktContext;
|
evt_buf = (wmi_buf_t) htc_packet->pPktContext;
|
||||||
|
|
||||||
|
#ifdef WMI_NON_TLV_SUPPORT
|
||||||
|
wmi_handle->rx_ops.wma_process_fw_event_handler_cbk
|
||||||
|
(wmi_handle->scn_handle, evt_buf, exec_ctx);
|
||||||
|
#else
|
||||||
wmi_handle->rx_ops.wma_process_fw_event_handler_cbk(wmi_handle,
|
wmi_handle->rx_ops.wma_process_fw_event_handler_cbk(wmi_handle,
|
||||||
evt_buf, exec_ctx);
|
evt_buf, exec_ctx);
|
||||||
|
#endif
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1086,10 +1157,12 @@ static void wmi_process_fw_event_worker_thread_ctx
|
|||||||
id = WMI_GET_FIELD(qdf_nbuf_data(evt_buf), WMI_CMD_HDR, COMMANDID);
|
id = WMI_GET_FIELD(qdf_nbuf_data(evt_buf), WMI_CMD_HDR, COMMANDID);
|
||||||
data = qdf_nbuf_data(evt_buf);
|
data = qdf_nbuf_data(evt_buf);
|
||||||
|
|
||||||
|
#ifdef WMI_INTERFACE_EVENT_LOGGING
|
||||||
qdf_spin_lock_bh(&wmi_handle->wmi_record_lock);
|
qdf_spin_lock_bh(&wmi_handle->wmi_record_lock);
|
||||||
/* Exclude 4 bytes of TLV header */
|
/* Exclude 4 bytes of TLV header */
|
||||||
WMI_RX_EVENT_RECORD(id, ((uint8_t *) data + 4));
|
WMI_RX_EVENT_RECORD(id, ((uint8_t *) data + 4));
|
||||||
qdf_spin_unlock_bh(&wmi_handle->wmi_record_lock);
|
qdf_spin_unlock_bh(&wmi_handle->wmi_record_lock);
|
||||||
|
#endif
|
||||||
qdf_spin_lock_bh(&wmi_handle->eventq_lock);
|
qdf_spin_lock_bh(&wmi_handle->eventq_lock);
|
||||||
qdf_nbuf_queue_add(&wmi_handle->event_queue, evt_buf);
|
qdf_nbuf_queue_add(&wmi_handle->event_queue, evt_buf);
|
||||||
qdf_spin_unlock_bh(&wmi_handle->eventq_lock);
|
qdf_spin_unlock_bh(&wmi_handle->eventq_lock);
|
||||||
@@ -1166,7 +1239,9 @@ void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf)
|
|||||||
uint8_t *data;
|
uint8_t *data;
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
void *wmi_cmd_struct_ptr = NULL;
|
void *wmi_cmd_struct_ptr = NULL;
|
||||||
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
int tlv_ok_status = 0;
|
int tlv_ok_status = 0;
|
||||||
|
#endif
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
|
|
||||||
id = WMI_GET_FIELD(qdf_nbuf_data(evt_buf), WMI_CMD_HDR, COMMANDID);
|
id = WMI_GET_FIELD(qdf_nbuf_data(evt_buf), WMI_CMD_HDR, COMMANDID);
|
||||||
@@ -1177,16 +1252,21 @@ void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf)
|
|||||||
data = qdf_nbuf_data(evt_buf);
|
data = qdf_nbuf_data(evt_buf);
|
||||||
len = qdf_nbuf_len(evt_buf);
|
len = qdf_nbuf_len(evt_buf);
|
||||||
|
|
||||||
/* Validate and pad(if necessary) the TLVs */
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
tlv_ok_status = wmitlv_check_and_pad_event_tlvs(wmi_handle->scn_handle,
|
if (wmi_handle->target_type == WMI_TLV_TARGET) {
|
||||||
|
/* Validate and pad(if necessary) the TLVs */
|
||||||
|
tlv_ok_status =
|
||||||
|
wmitlv_check_and_pad_event_tlvs(wmi_handle->scn_handle,
|
||||||
data, len, id,
|
data, len, id,
|
||||||
&wmi_cmd_struct_ptr);
|
&wmi_cmd_struct_ptr);
|
||||||
if (tlv_ok_status != 0) {
|
if (tlv_ok_status != 0) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||||
"%s: Error: id=0x%d, wmitlv check status=%d\n",
|
"%s: Error: id=0x%d, wmitlv check status=%d\n",
|
||||||
__func__, id, tlv_ok_status);
|
__func__, id, tlv_ok_status);
|
||||||
goto end;
|
goto end;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
idx = wmi_unified_get_event_handler_ix(wmi_handle, id);
|
idx = wmi_unified_get_event_handler_ix(wmi_handle, id);
|
||||||
if (idx == A_ERROR) {
|
if (idx == A_ERROR) {
|
||||||
@@ -1206,12 +1286,19 @@ void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf)
|
|||||||
qdf_spin_unlock_bh(&wmi_handle->wmi_record_lock);
|
qdf_spin_unlock_bh(&wmi_handle->wmi_record_lock);
|
||||||
#endif
|
#endif
|
||||||
/* Call the WMI registered event handler */
|
/* Call the WMI registered event handler */
|
||||||
wmi_handle->event_handler[idx] (wmi_handle->scn_handle,
|
if (wmi_handle->target_type == WMI_TLV_TARGET)
|
||||||
wmi_cmd_struct_ptr, len);
|
wmi_handle->event_handler[idx] (wmi_handle->scn_handle,
|
||||||
|
wmi_cmd_struct_ptr, len);
|
||||||
|
else
|
||||||
|
wmi_handle->event_handler[idx] (wmi_handle->scn_handle,
|
||||||
|
data, len);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
/* Free event buffer and allocated event tlv */
|
/* Free event buffer and allocated event tlv */
|
||||||
wmitlv_free_allocated_event_tlvs(id, &wmi_cmd_struct_ptr);
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
|
if (wmi_handle->target_type == WMI_TLV_TARGET)
|
||||||
|
wmitlv_free_allocated_event_tlvs(id, &wmi_cmd_struct_ptr);
|
||||||
|
#endif
|
||||||
qdf_nbuf_free(evt_buf);
|
qdf_nbuf_free(evt_buf);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1290,17 +1377,24 @@ void *wmi_unified_attach(void *scn_handle,
|
|||||||
bool use_cookie, struct wmi_rx_ops *rx_ops)
|
bool use_cookie, struct wmi_rx_ops *rx_ops)
|
||||||
{
|
{
|
||||||
struct wmi_unified *wmi_handle;
|
struct wmi_unified *wmi_handle;
|
||||||
|
|
||||||
|
#ifndef WMI_NON_TLV_SUPPORT
|
||||||
wmi_handle =
|
wmi_handle =
|
||||||
(struct wmi_unified *)os_malloc(NULL,
|
(struct wmi_unified *)os_malloc(NULL,
|
||||||
sizeof(struct wmi_unified),
|
sizeof(struct wmi_unified),
|
||||||
GFP_ATOMIC);
|
GFP_ATOMIC);
|
||||||
|
#else
|
||||||
|
wmi_handle =
|
||||||
|
(struct wmi_unified *) qdf_mem_malloc(
|
||||||
|
sizeof(struct wmi_unified));
|
||||||
|
#endif
|
||||||
if (wmi_handle == NULL) {
|
if (wmi_handle == NULL) {
|
||||||
qdf_print("allocation of wmi handle failed %zu\n",
|
qdf_print("allocation of wmi handle failed %zu\n",
|
||||||
sizeof(struct wmi_unified));
|
sizeof(struct wmi_unified));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
OS_MEMZERO(wmi_handle, sizeof(struct wmi_unified));
|
OS_MEMZERO(wmi_handle, sizeof(struct wmi_unified));
|
||||||
wmi_handle->scn_handle = (ol_scn_t *)scn_handle;
|
wmi_handle->scn_handle = scn_handle;
|
||||||
qdf_atomic_init(&wmi_handle->pending_cmds);
|
qdf_atomic_init(&wmi_handle->pending_cmds);
|
||||||
qdf_atomic_init(&wmi_handle->is_target_suspended);
|
qdf_atomic_init(&wmi_handle->is_target_suspended);
|
||||||
wmi_runtime_pm_init(wmi_handle);
|
wmi_runtime_pm_init(wmi_handle);
|
||||||
@@ -1317,13 +1411,15 @@ void *wmi_unified_attach(void *scn_handle,
|
|||||||
/* Attach mc_thread context processing function */
|
/* Attach mc_thread context processing function */
|
||||||
wmi_handle->rx_ops.wma_process_fw_event_handler_cbk =
|
wmi_handle->rx_ops.wma_process_fw_event_handler_cbk =
|
||||||
rx_ops->wma_process_fw_event_handler_cbk;
|
rx_ops->wma_process_fw_event_handler_cbk;
|
||||||
|
wmi_handle->target_type = target_type;
|
||||||
if (target_type == WMI_TLV_TARGET)
|
if (target_type == WMI_TLV_TARGET)
|
||||||
wmi_handle->ops = wmi_get_tlv_ops();
|
wmi_tlv_attach(wmi_handle);
|
||||||
else
|
else
|
||||||
wmi_handle->ops = wmi_get_non_tlv_ops();
|
wmi_non_tlv_attach(wmi_handle);
|
||||||
/* Assign target cookie capablity */
|
/* Assign target cookie capablity */
|
||||||
wmi_handle->use_cookie = use_cookie;
|
wmi_handle->use_cookie = use_cookie;
|
||||||
wmi_handle->osdev = osdev;
|
wmi_handle->osdev = osdev;
|
||||||
|
wmi_handle->wmi_stopinprogress = 0;
|
||||||
qdf_spinlock_create(&wmi_handle->ctx_lock);
|
qdf_spinlock_create(&wmi_handle->ctx_lock);
|
||||||
|
|
||||||
return wmi_handle;
|
return wmi_handle;
|
||||||
@@ -1385,10 +1481,19 @@ wmi_unified_remove_work(struct wmi_unified *wmi_handle)
|
|||||||
"Done: %s", __func__);
|
"Done: %s", __func__);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_htc_tx_complete() - Process htc tx completion
|
||||||
|
*
|
||||||
|
* @ctx: handle to wmi
|
||||||
|
* @htc_packet: pointer to htc packet
|
||||||
|
*
|
||||||
|
* @Return: none.
|
||||||
|
*/
|
||||||
void wmi_htc_tx_complete(void *ctx, HTC_PACKET *htc_pkt)
|
void wmi_htc_tx_complete(void *ctx, HTC_PACKET *htc_pkt)
|
||||||
{
|
{
|
||||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)ctx;
|
struct wmi_unified *wmi_handle = (struct wmi_unified *)ctx;
|
||||||
wmi_buf_t wmi_cmd_buf = GET_HTC_PACKET_NET_BUF_CONTEXT(htc_pkt);
|
wmi_buf_t wmi_cmd_buf = GET_HTC_PACKET_NET_BUF_CONTEXT(htc_pkt);
|
||||||
|
|
||||||
#ifdef WMI_INTERFACE_EVENT_LOGGING
|
#ifdef WMI_INTERFACE_EVENT_LOGGING
|
||||||
uint32_t cmd_id;
|
uint32_t cmd_id;
|
||||||
#endif
|
#endif
|
||||||
@@ -1481,7 +1586,7 @@ wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle,
|
|||||||
*/
|
*/
|
||||||
int wmi_get_host_credits(wmi_unified_t wmi_handle)
|
int wmi_get_host_credits(wmi_unified_t wmi_handle)
|
||||||
{
|
{
|
||||||
int host_credits;
|
int host_credits = 0;
|
||||||
|
|
||||||
htc_get_control_endpoint_tx_host_credits(wmi_handle->htc_handle,
|
htc_get_control_endpoint_tx_host_credits(wmi_handle->htc_handle,
|
||||||
&host_credits);
|
&host_credits);
|
||||||
@@ -1489,7 +1594,8 @@ int wmi_get_host_credits(wmi_unified_t wmi_handle)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_get_pending_cmds() - WMI API to get WMI Pending Commands in the HTC queue
|
* wmi_get_pending_cmds() - WMI API to get WMI Pending Commands in the HTC
|
||||||
|
* queue
|
||||||
*
|
*
|
||||||
* @wmi_handle: handle to WMI.
|
* @wmi_handle: handle to WMI.
|
||||||
*
|
*
|
||||||
@@ -1513,3 +1619,30 @@ void wmi_set_target_suspend(wmi_unified_t wmi_handle, A_BOOL val)
|
|||||||
qdf_atomic_set(&wmi_handle->is_target_suspended, val);
|
qdf_atomic_set(&wmi_handle->is_target_suspended, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WMI_NON_TLV_SUPPORT
|
||||||
|
/**
|
||||||
|
* 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)
|
||||||
|
{
|
||||||
|
htc_flush_endpoint(wmi_handle->htc_handle,
|
||||||
|
wmi_handle->wmi_endpoint_id, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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)
|
||||||
|
{
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_INFO,
|
||||||
|
"WMI Stop\n");
|
||||||
|
wmi_handle->wmi_stopinprogress = 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -10510,12 +10510,11 @@ struct wmi_ops tlv_ops = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_get_tlv_ops() - gives pointer to wmi tlv ops
|
* wmi_tlv_attach() - Attach TLV APIs
|
||||||
*
|
*
|
||||||
* Return: pointer to wmi tlv ops
|
* Return: None
|
||||||
*/
|
*/
|
||||||
struct wmi_ops *wmi_get_tlv_ops(void)
|
void wmi_tlv_attach(wmi_unified_t wmi_handle)
|
||||||
{
|
{
|
||||||
return &tlv_ops;
|
wmi_handle->ops = &tlv_ops;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user