#include <linux/skbuff.h>
#include <linux/ctype.h>
#include <net/mac80211.h>
#include <net/cfg80211.h>
#include <linux/completion.h>
#include <linux/if_ether.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/uuid.h>
#include <linux/time.h>
#include <linux/of.h>
#include "core.h"
#include "debug.h"
#include "mac.h"
#include "hw.h"
#include "peer.h"
#include "p2p.h"
struct ath12k_wmi_svc_ready_parse { … };
struct ath12k_wmi_dma_ring_caps_parse { … };
struct ath12k_wmi_service_ext_arg { … };
struct ath12k_wmi_svc_rdy_ext_parse { … };
struct ath12k_wmi_svc_rdy_ext2_arg { … };
struct ath12k_wmi_svc_rdy_ext2_parse { … };
struct ath12k_wmi_rdy_parse { … };
struct ath12k_wmi_dma_buf_release_arg { … };
struct ath12k_wmi_tlv_policy { … };
struct wmi_tlv_mgmt_rx_parse { … };
static const struct ath12k_wmi_tlv_policy ath12k_wmi_tlv_policies[] = …;
static __le32 ath12k_wmi_tlv_hdr(u32 cmd, u32 len)
{ … }
static __le32 ath12k_wmi_tlv_cmd_hdr(u32 cmd, u32 len)
{ … }
void ath12k_wmi_init_qcn9274(struct ath12k_base *ab,
struct ath12k_wmi_resource_config_arg *config)
{ … }
void ath12k_wmi_init_wcn7850(struct ath12k_base *ab,
struct ath12k_wmi_resource_config_arg *config)
{ … }
#define PRIMAP(_hw_mode_) …
static const int ath12k_hw_mode_pri_map[] = …;
static int
ath12k_wmi_tlv_iter(struct ath12k_base *ab, const void *ptr, size_t len,
int (*iter)(struct ath12k_base *ab, u16 tag, u16 len,
const void *ptr, void *data),
void *data)
{ … }
static int ath12k_wmi_tlv_iter_parse(struct ath12k_base *ab, u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_wmi_tlv_parse(struct ath12k_base *ar, const void **tb,
const void *ptr, size_t len)
{ … }
static const void **
ath12k_wmi_tlv_parse_alloc(struct ath12k_base *ab,
struct sk_buff *skb, gfp_t gfp)
{ … }
static int ath12k_wmi_cmd_send_nowait(struct ath12k_wmi_pdev *wmi, struct sk_buff *skb,
u32 cmd_id)
{ … }
int ath12k_wmi_cmd_send(struct ath12k_wmi_pdev *wmi, struct sk_buff *skb,
u32 cmd_id)
{ … }
static int ath12k_pull_svc_ready_ext(struct ath12k_wmi_pdev *wmi_handle,
const void *ptr,
struct ath12k_wmi_service_ext_arg *arg)
{ … }
static int
ath12k_pull_mac_phy_cap_svc_ready_ext(struct ath12k_wmi_pdev *wmi_handle,
struct ath12k_wmi_svc_rdy_ext_parse *svc,
u8 hw_mode_id, u8 phy_id,
struct ath12k_pdev *pdev)
{ … }
static int
ath12k_pull_reg_cap_svc_rdy_ext(struct ath12k_wmi_pdev *wmi_handle,
const struct ath12k_wmi_soc_hal_reg_caps_params *reg_caps,
const struct ath12k_wmi_hal_reg_caps_ext_params *ext_caps,
u8 phy_idx,
struct ath12k_wmi_hal_reg_capabilities_ext_arg *param)
{ … }
static int ath12k_pull_service_ready_tlv(struct ath12k_base *ab,
const void *evt_buf,
struct ath12k_wmi_target_cap_arg *cap)
{ … }
static void ath12k_wmi_service_bitmap_copy(struct ath12k_wmi_pdev *wmi,
const u32 *wmi_svc_bm)
{ … }
static int ath12k_wmi_svc_rdy_parse(struct ath12k_base *ab, u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_service_ready_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static u32 ath12k_wmi_mgmt_get_freq(struct ath12k *ar,
struct ieee80211_tx_info *info)
{ … }
struct sk_buff *ath12k_wmi_alloc_skb(struct ath12k_wmi_base *wmi_ab, u32 len)
{ … }
int ath12k_wmi_mgmt_send(struct ath12k *ar, u32 vdev_id, u32 buf_id,
struct sk_buff *frame)
{ … }
int ath12k_wmi_vdev_create(struct ath12k *ar, u8 *macaddr,
struct ath12k_wmi_vdev_create_arg *args)
{ … }
int ath12k_wmi_vdev_delete(struct ath12k *ar, u8 vdev_id)
{ … }
int ath12k_wmi_vdev_stop(struct ath12k *ar, u8 vdev_id)
{ … }
int ath12k_wmi_vdev_down(struct ath12k *ar, u8 vdev_id)
{ … }
static void ath12k_wmi_put_wmi_channel(struct ath12k_wmi_channel_params *chan,
struct wmi_vdev_start_req_arg *arg)
{ … }
int ath12k_wmi_vdev_start(struct ath12k *ar, struct wmi_vdev_start_req_arg *arg,
bool restart)
{ … }
int ath12k_wmi_vdev_up(struct ath12k *ar, struct ath12k_wmi_vdev_up_params *params)
{ … }
int ath12k_wmi_send_peer_create_cmd(struct ath12k *ar,
struct ath12k_wmi_peer_create_arg *arg)
{ … }
int ath12k_wmi_send_peer_delete_cmd(struct ath12k *ar,
const u8 *peer_addr, u8 vdev_id)
{ … }
int ath12k_wmi_send_pdev_set_regdomain(struct ath12k *ar,
struct ath12k_wmi_pdev_set_regdomain_arg *arg)
{ … }
int ath12k_wmi_set_peer_param(struct ath12k *ar, const u8 *peer_addr,
u32 vdev_id, u32 param_id, u32 param_val)
{ … }
int ath12k_wmi_send_peer_flush_tids_cmd(struct ath12k *ar,
u8 peer_addr[ETH_ALEN],
u32 peer_tid_bitmap,
u8 vdev_id)
{ … }
int ath12k_wmi_peer_rx_reorder_queue_setup(struct ath12k *ar,
int vdev_id, const u8 *addr,
dma_addr_t paddr, u8 tid,
u8 ba_window_size_valid,
u32 ba_window_size)
{ … }
int
ath12k_wmi_rx_reord_queue_remove(struct ath12k *ar,
struct ath12k_wmi_rx_reorder_queue_remove_arg *arg)
{ … }
int ath12k_wmi_pdev_set_param(struct ath12k *ar, u32 param_id,
u32 param_value, u8 pdev_id)
{ … }
int ath12k_wmi_pdev_set_ps_mode(struct ath12k *ar, int vdev_id, u32 enable)
{ … }
int ath12k_wmi_pdev_suspend(struct ath12k *ar, u32 suspend_opt,
u32 pdev_id)
{ … }
int ath12k_wmi_pdev_resume(struct ath12k *ar, u32 pdev_id)
{ … }
int ath12k_wmi_pdev_bss_chan_info_request(struct ath12k *ar,
enum wmi_bss_chan_info_req_type type)
{ … }
int ath12k_wmi_send_set_ap_ps_param_cmd(struct ath12k *ar, u8 *peer_addr,
struct ath12k_wmi_ap_ps_arg *arg)
{ … }
int ath12k_wmi_set_sta_ps_param(struct ath12k *ar, u32 vdev_id,
u32 param, u32 param_value)
{ … }
int ath12k_wmi_force_fw_hang_cmd(struct ath12k *ar, u32 type, u32 delay_time_ms)
{ … }
int ath12k_wmi_vdev_set_param_cmd(struct ath12k *ar, u32 vdev_id,
u32 param_id, u32 param_value)
{ … }
int ath12k_wmi_send_pdev_temperature_cmd(struct ath12k *ar)
{ … }
int ath12k_wmi_send_bcn_offload_control_cmd(struct ath12k *ar,
u32 vdev_id, u32 bcn_ctrl_op)
{ … }
int ath12k_wmi_p2p_go_bcn_ie(struct ath12k *ar, u32 vdev_id,
const u8 *p2p_ie)
{ … }
int ath12k_wmi_bcn_tmpl(struct ath12k *ar, u32 vdev_id,
struct ieee80211_mutable_offsets *offs,
struct sk_buff *bcn,
struct ath12k_wmi_bcn_tmpl_ema_arg *ema_args)
{ … }
int ath12k_wmi_vdev_install_key(struct ath12k *ar,
struct wmi_vdev_install_key_arg *arg)
{ … }
static void ath12k_wmi_copy_peer_flags(struct wmi_peer_assoc_complete_cmd *cmd,
struct ath12k_wmi_peer_assoc_arg *arg,
bool hw_crypto_disabled)
{ … }
int ath12k_wmi_send_peer_assoc_cmd(struct ath12k *ar,
struct ath12k_wmi_peer_assoc_arg *arg)
{ … }
void ath12k_wmi_start_scan_init(struct ath12k *ar,
struct ath12k_wmi_scan_req_arg *arg)
{ … }
static void ath12k_wmi_copy_scan_event_cntrl_flags(struct wmi_start_scan_cmd *cmd,
struct ath12k_wmi_scan_req_arg *arg)
{ … }
int ath12k_wmi_send_scan_start_cmd(struct ath12k *ar,
struct ath12k_wmi_scan_req_arg *arg)
{ … }
int ath12k_wmi_send_scan_stop_cmd(struct ath12k *ar,
struct ath12k_wmi_scan_cancel_arg *arg)
{ … }
int ath12k_wmi_send_scan_chan_list_cmd(struct ath12k *ar,
struct ath12k_wmi_scan_chan_list_arg *arg)
{ … }
int ath12k_wmi_send_wmm_update_cmd(struct ath12k *ar, u32 vdev_id,
struct wmi_wmm_params_all_arg *param)
{ … }
int ath12k_wmi_send_dfs_phyerr_offload_enable_cmd(struct ath12k *ar,
u32 pdev_id)
{ … }
int ath12k_wmi_set_bios_cmd(struct ath12k_base *ab, u32 param_id,
const u8 *buf, size_t buf_len)
{ … }
int ath12k_wmi_set_bios_sar_cmd(struct ath12k_base *ab, const u8 *psar_table)
{ … }
int ath12k_wmi_set_bios_geo_cmd(struct ath12k_base *ab, const u8 *pgeo_table)
{ … }
int ath12k_wmi_delba_send(struct ath12k *ar, u32 vdev_id, const u8 *mac,
u32 tid, u32 initiator, u32 reason)
{ … }
int ath12k_wmi_addba_set_resp(struct ath12k *ar, u32 vdev_id, const u8 *mac,
u32 tid, u32 status)
{ … }
int ath12k_wmi_addba_send(struct ath12k *ar, u32 vdev_id, const u8 *mac,
u32 tid, u32 buf_size)
{ … }
int ath12k_wmi_addba_clear_resp(struct ath12k *ar, u32 vdev_id, const u8 *mac)
{ … }
int ath12k_wmi_send_init_country_cmd(struct ath12k *ar,
struct ath12k_wmi_init_country_arg *arg)
{ … }
int
ath12k_wmi_send_twt_enable_cmd(struct ath12k *ar, u32 pdev_id)
{ … }
int
ath12k_wmi_send_twt_disable_cmd(struct ath12k *ar, u32 pdev_id)
{ … }
int
ath12k_wmi_send_obss_spr_cmd(struct ath12k *ar, u32 vdev_id,
struct ieee80211_he_obss_pd *he_obss_pd)
{ … }
int ath12k_wmi_obss_color_cfg_cmd(struct ath12k *ar, u32 vdev_id,
u8 bss_color, u32 period,
bool enable)
{ … }
int ath12k_wmi_send_bss_color_change_enable_cmd(struct ath12k *ar, u32 vdev_id,
bool enable)
{ … }
int ath12k_wmi_fils_discovery_tmpl(struct ath12k *ar, u32 vdev_id,
struct sk_buff *tmpl)
{ … }
int ath12k_wmi_probe_resp_tmpl(struct ath12k *ar, u32 vdev_id,
struct sk_buff *tmpl)
{ … }
int ath12k_wmi_fils_discovery(struct ath12k *ar, u32 vdev_id, u32 interval,
bool unsol_bcast_probe_resp_enabled)
{ … }
static void
ath12k_fill_band_to_mac_param(struct ath12k_base *soc,
struct ath12k_wmi_pdev_band_arg *arg)
{ … }
static void
ath12k_wmi_copy_resource_config(struct ath12k_wmi_resource_config_params *wmi_cfg,
struct ath12k_wmi_resource_config_arg *tg_cfg)
{ … }
static int ath12k_init_cmd_send(struct ath12k_wmi_pdev *wmi,
struct ath12k_wmi_init_cmd_arg *arg)
{ … }
int ath12k_wmi_pdev_lro_cfg(struct ath12k *ar,
int pdev_id)
{ … }
int ath12k_wmi_wait_for_service_ready(struct ath12k_base *ab)
{ … }
int ath12k_wmi_wait_for_unified_ready(struct ath12k_base *ab)
{ … }
int ath12k_wmi_set_hw_mode(struct ath12k_base *ab,
enum wmi_host_hw_mode_config_type mode)
{ … }
int ath12k_wmi_cmd_init(struct ath12k_base *ab)
{ … }
int ath12k_wmi_vdev_spectral_conf(struct ath12k *ar,
struct ath12k_wmi_vdev_spectral_conf_arg *arg)
{ … }
int ath12k_wmi_vdev_spectral_enable(struct ath12k *ar, u32 vdev_id,
u32 trigger, u32 enable)
{ … }
int ath12k_wmi_pdev_dma_ring_cfg(struct ath12k *ar,
struct ath12k_wmi_pdev_dma_ring_cfg_arg *arg)
{ … }
static int ath12k_wmi_dma_buf_entry_parse(struct ath12k_base *soc,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_wmi_dma_buf_meta_parse(struct ath12k_base *soc,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_wmi_dma_buf_parse(struct ath12k_base *ab,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static void ath12k_wmi_pdev_dma_ring_buf_release_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static int ath12k_wmi_hw_mode_caps_parse(struct ath12k_base *soc,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_wmi_hw_mode_caps(struct ath12k_base *soc,
u16 len, const void *ptr, void *data)
{ … }
static int ath12k_wmi_mac_phy_caps_parse(struct ath12k_base *soc,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_wmi_ext_hal_reg_caps_parse(struct ath12k_base *soc,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_wmi_ext_hal_reg_caps(struct ath12k_base *soc,
u16 len, const void *ptr, void *data)
{ … }
static int ath12k_wmi_ext_soc_hal_reg_caps_parse(struct ath12k_base *soc,
u16 len, const void *ptr,
void *data)
{ … }
static int ath12k_wmi_dma_ring_caps_parse(struct ath12k_base *soc,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_wmi_alloc_dbring_caps(struct ath12k_base *ab,
u32 num_cap)
{ … }
static void ath12k_wmi_free_dbring_caps(struct ath12k_base *ab)
{ … }
static int ath12k_wmi_dma_ring_caps(struct ath12k_base *ab,
u16 len, const void *ptr, void *data)
{ … }
static int ath12k_wmi_svc_rdy_ext_parse(struct ath12k_base *ab,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_service_ready_ext_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static int ath12k_pull_svc_ready_ext2(struct ath12k_wmi_pdev *wmi_handle,
const void *ptr,
struct ath12k_wmi_svc_rdy_ext2_arg *arg)
{ … }
static void ath12k_wmi_eht_caps_parse(struct ath12k_pdev *pdev, u32 band,
const __le32 cap_mac_info[],
const __le32 cap_phy_info[],
const __le32 supp_mcs[],
const struct ath12k_wmi_ppe_threshold_params *ppet,
__le32 cap_info_internal)
{ … }
static int
ath12k_wmi_tlv_mac_phy_caps_ext_parse(struct ath12k_base *ab,
const struct ath12k_wmi_caps_ext_params *caps,
struct ath12k_pdev *pdev)
{ … }
static int ath12k_wmi_tlv_mac_phy_caps_ext(struct ath12k_base *ab, u16 tag,
u16 len, const void *ptr,
void *data)
{ … }
static int ath12k_wmi_svc_rdy_ext2_parse(struct ath12k_base *ab,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_service_ready_ext2_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static int ath12k_pull_vdev_start_resp_tlv(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_vdev_start_resp_event *vdev_rsp)
{ … }
static struct ath12k_reg_rule
*create_ext_reg_rules_from_wmi(u32 num_reg_rules,
struct ath12k_wmi_reg_rule_ext_params *wmi_reg_rule)
{ … }
static int ath12k_pull_reg_chan_list_ext_update_ev(struct ath12k_base *ab,
struct sk_buff *skb,
struct ath12k_reg_info *reg_info)
{ … }
static int ath12k_pull_peer_del_resp_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_peer_delete_resp_event *peer_del_resp)
{ … }
static int ath12k_pull_vdev_del_resp_ev(struct ath12k_base *ab,
struct sk_buff *skb,
u32 *vdev_id)
{ … }
static int ath12k_pull_bcn_tx_status_ev(struct ath12k_base *ab,
struct sk_buff *skb,
u32 *vdev_id, u32 *tx_status)
{ … }
static int ath12k_pull_vdev_stopped_param_tlv(struct ath12k_base *ab, struct sk_buff *skb,
u32 *vdev_id)
{ … }
static int ath12k_wmi_tlv_mgmt_rx_parse(struct ath12k_base *ab,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_pull_mgmt_rx_params_tlv(struct ath12k_base *ab,
struct sk_buff *skb,
struct ath12k_wmi_mgmt_rx_arg *hdr)
{ … }
static int wmi_process_mgmt_tx_comp(struct ath12k *ar, u32 desc_id,
u32 status)
{ … }
static int ath12k_pull_mgmt_tx_compl_param_tlv(struct ath12k_base *ab,
struct sk_buff *skb,
struct wmi_mgmt_tx_compl_event *param)
{ … }
static void ath12k_wmi_event_scan_started(struct ath12k *ar)
{ … }
static void ath12k_wmi_event_scan_start_failed(struct ath12k *ar)
{ … }
static void ath12k_wmi_event_scan_completed(struct ath12k *ar)
{ … }
static void ath12k_wmi_event_scan_bss_chan(struct ath12k *ar)
{ … }
static void ath12k_wmi_event_scan_foreign_chan(struct ath12k *ar, u32 freq)
{ … }
static const char *
ath12k_wmi_event_scan_type_str(enum wmi_scan_event_type type,
enum wmi_scan_completion_reason reason)
{ … }
static int ath12k_pull_scan_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_scan_event *scan_evt_param)
{ … }
static int ath12k_pull_peer_sta_kickout_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_peer_sta_kickout_arg *arg)
{ … }
static int ath12k_pull_roam_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_roam_event *roam_ev)
{ … }
static int freq_to_idx(struct ath12k *ar, int freq)
{ … }
static int ath12k_pull_chan_info_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_chan_info_event *ch_info_ev)
{ … }
static int
ath12k_pull_pdev_bss_chan_info_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_pdev_bss_chan_info_event *bss_ch_info_ev)
{ … }
static int
ath12k_pull_vdev_install_key_compl_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_vdev_install_key_complete_arg *arg)
{ … }
static int ath12k_pull_peer_assoc_conf_ev(struct ath12k_base *ab, struct sk_buff *skb,
struct wmi_peer_assoc_conf_arg *peer_assoc_conf)
{ … }
static int
ath12k_pull_pdev_temp_ev(struct ath12k_base *ab, struct sk_buff *skb,
const struct wmi_pdev_temperature_event *ev)
{ … }
static void ath12k_wmi_op_ep_tx_credits(struct ath12k_base *ab)
{ … }
static void ath12k_wmi_htc_tx_complete(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static bool ath12k_reg_is_world_alpha(char *alpha)
{ … }
static int ath12k_reg_chan_list_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static int ath12k_wmi_rdy_parse(struct ath12k_base *ab, u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static int ath12k_ready_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_peer_delete_resp_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_vdev_delete_resp_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static const char *ath12k_wmi_vdev_resp_print(u32 vdev_resp_status)
{ … }
static void ath12k_vdev_start_resp_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_bcn_tx_status_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_vdev_stopped_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_mgmt_rx_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_mgmt_tx_compl_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static struct ath12k *ath12k_get_ar_on_scan_state(struct ath12k_base *ab,
u32 vdev_id,
enum ath12k_scan_state state)
{ … }
static void ath12k_scan_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_peer_sta_kickout_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_roam_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_chan_info_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void
ath12k_pdev_bss_chan_info_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_vdev_install_key_compl_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static int ath12k_wmi_tlv_services_parser(struct ath12k_base *ab,
u16 tag, u16 len,
const void *ptr,
void *data)
{ … }
static int ath12k_service_available_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_peer_assoc_conf_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_update_stats_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_pdev_ctl_failsafe_check_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void
ath12k_wmi_process_csa_switch_count_event(struct ath12k_base *ab,
const struct ath12k_wmi_pdev_csa_event *ev,
const u32 *vdev_ids)
{ … }
static void
ath12k_wmi_pdev_csa_switch_count_status_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void
ath12k_wmi_pdev_dfs_radar_detected_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void
ath12k_wmi_pdev_temperature_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void ath12k_fils_discovery_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void ath12k_probe_resp_tx_status_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static int ath12k_wmi_p2p_noa_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void ath12k_rfkill_state_change_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void
ath12k_wmi_diag_event(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_wmi_twt_enable_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void ath12k_wmi_twt_disable_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static int ath12k_wmi_wow_wakeup_host_parse(struct ath12k_base *ab,
u16 tag, u16 len,
const void *ptr, void *data)
{ … }
static void ath12k_wmi_event_wow_wakeup_host(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static void ath12k_wmi_gtk_offload_status_event(struct ath12k_base *ab,
struct sk_buff *skb)
{ … }
static void ath12k_wmi_op_rx(struct ath12k_base *ab, struct sk_buff *skb)
{ … }
static int ath12k_connect_pdev_htc_service(struct ath12k_base *ab,
u32 pdev_idx)
{ … }
static int
ath12k_wmi_send_unit_test_cmd(struct ath12k *ar,
struct wmi_unit_test_cmd ut_cmd,
u32 *test_args)
{ … }
int ath12k_wmi_simulate_radar(struct ath12k *ar)
{ … }
int ath12k_wmi_connect(struct ath12k_base *ab)
{ … }
static void ath12k_wmi_pdev_detach(struct ath12k_base *ab, u8 pdev_id)
{ … }
int ath12k_wmi_pdev_attach(struct ath12k_base *ab,
u8 pdev_id)
{ … }
int ath12k_wmi_attach(struct ath12k_base *ab)
{ … }
void ath12k_wmi_detach(struct ath12k_base *ab)
{ … }
int ath12k_wmi_hw_data_filter_cmd(struct ath12k *ar, struct wmi_hw_data_filter_arg *arg)
{ … }
int ath12k_wmi_wow_host_wakeup_ind(struct ath12k *ar)
{ … }
int ath12k_wmi_wow_enable(struct ath12k *ar)
{ … }
int ath12k_wmi_wow_add_wakeup_event(struct ath12k *ar, u32 vdev_id,
enum wmi_wow_wakeup_event event,
u32 enable)
{ … }
int ath12k_wmi_wow_add_pattern(struct ath12k *ar, u32 vdev_id, u32 pattern_id,
const u8 *pattern, const u8 *mask,
int pattern_len, int pattern_offset)
{ … }
int ath12k_wmi_wow_del_pattern(struct ath12k *ar, u32 vdev_id, u32 pattern_id)
{ … }
static struct sk_buff *
ath12k_wmi_op_gen_config_pno_start(struct ath12k *ar, u32 vdev_id,
struct wmi_pno_scan_req_arg *pno)
{ … }
static struct sk_buff *ath12k_wmi_op_gen_config_pno_stop(struct ath12k *ar,
u32 vdev_id)
{ … }
int ath12k_wmi_wow_config_pno(struct ath12k *ar, u32 vdev_id,
struct wmi_pno_scan_req_arg *pno_scan)
{ … }
static void ath12k_wmi_fill_ns_offload(struct ath12k *ar,
struct wmi_arp_ns_offload_arg *offload,
void **ptr,
bool enable,
bool ext)
{ … }
static void ath12k_wmi_fill_arp_offload(struct ath12k *ar,
struct wmi_arp_ns_offload_arg *offload,
void **ptr,
bool enable)
{ … }
int ath12k_wmi_arp_ns_offload(struct ath12k *ar,
struct ath12k_vif *arvif,
struct wmi_arp_ns_offload_arg *offload,
bool enable)
{ … }
int ath12k_wmi_gtk_rekey_offload(struct ath12k *ar,
struct ath12k_vif *arvif, bool enable)
{ … }
int ath12k_wmi_gtk_rekey_getinfo(struct ath12k *ar,
struct ath12k_vif *arvif)
{ … }
int ath12k_wmi_sta_keepalive(struct ath12k *ar,
const struct wmi_sta_keepalive_arg *arg)
{ … }