#include <linux/skbuff.h>
#include <linux/ctype.h>
#include "core.h"
#include "htc.h"
#include "debug.h"
#include "wmi.h"
#include "wmi-tlv.h"
#include "mac.h"
#include "testmode.h"
#include "wmi-ops.h"
#include "p2p.h"
#include "hw.h"
#include "hif.h"
#include "txrx.h"
#define ATH10K_WMI_BARRIER_ECHO_ID …
#define ATH10K_WMI_BARRIER_TIMEOUT_HZ …
#define ATH10K_WMI_DFS_CONF_TIMEOUT_HZ …
static struct wmi_cmd_map wmi_cmd_map = …;
static struct wmi_cmd_map wmi_10x_cmd_map = …;
static struct wmi_cmd_map wmi_10_2_4_cmd_map = …;
static struct wmi_cmd_map wmi_10_4_cmd_map = …;
static struct wmi_peer_param_map wmi_peer_param_map = …;
static struct wmi_vdev_param_map wmi_vdev_param_map = …;
static struct wmi_vdev_param_map wmi_10x_vdev_param_map = …;
static struct wmi_vdev_param_map wmi_10_2_4_vdev_param_map = …;
static struct wmi_vdev_param_map wmi_10_4_vdev_param_map = …;
static struct wmi_pdev_param_map wmi_pdev_param_map = …;
static struct wmi_pdev_param_map wmi_10x_pdev_param_map = …;
static struct wmi_pdev_param_map wmi_10_2_4_pdev_param_map = …;
static struct wmi_cmd_map wmi_10_2_cmd_map = …;
static struct wmi_pdev_param_map wmi_10_4_pdev_param_map = …;
static const u8 wmi_key_cipher_suites[] = …;
static const u8 wmi_tlv_key_cipher_suites[] = …;
static const struct wmi_peer_flags_map wmi_peer_flags_map = …;
static const struct wmi_peer_flags_map wmi_10x_peer_flags_map = …;
static const struct wmi_peer_flags_map wmi_10_2_peer_flags_map = …;
void ath10k_wmi_put_wmi_channel(struct ath10k *ar, struct wmi_channel *ch,
const struct wmi_channel_arg *arg)
{ … }
int ath10k_wmi_wait_for_service_ready(struct ath10k *ar)
{ … }
int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar)
{ … }
struct sk_buff *ath10k_wmi_alloc_skb(struct ath10k *ar, u32 len)
{ … }
static void ath10k_wmi_htc_tx_complete(struct ath10k *ar, struct sk_buff *skb)
{ … }
int ath10k_wmi_cmd_send_nowait(struct ath10k *ar, struct sk_buff *skb,
u32 cmd_id)
{ … }
static void ath10k_wmi_tx_beacon_nowait(struct ath10k_vif *arvif)
{ … }
static void ath10k_wmi_tx_beacons_iter(void *data, u8 *mac,
struct ieee80211_vif *vif)
{ … }
static void ath10k_wmi_tx_beacons_nowait(struct ath10k *ar)
{ … }
static void ath10k_wmi_op_ep_tx_credits(struct ath10k *ar)
{ … }
int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_mgmt_tx(struct ath10k *ar, struct sk_buff *msdu)
{ … }
static void ath10k_wmi_event_scan_started(struct ath10k *ar)
{ … }
static void ath10k_wmi_event_scan_start_failed(struct ath10k *ar)
{ … }
static void ath10k_wmi_event_scan_completed(struct ath10k *ar)
{ … }
static void ath10k_wmi_event_scan_bss_chan(struct ath10k *ar)
{ … }
static void ath10k_wmi_event_scan_foreign_chan(struct ath10k *ar, u32 freq)
{ … }
static const char *
ath10k_wmi_event_scan_type_str(enum wmi_scan_event_type type,
enum wmi_scan_completion_reason reason)
{ … }
static int ath10k_wmi_op_pull_scan_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_scan_ev_arg *arg)
{ … }
int ath10k_wmi_event_scan(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_wmi_handle_wep_reauth(struct ath10k *ar,
struct sk_buff *skb,
struct ieee80211_rx_status *status)
{ … }
static int ath10k_wmi_op_pull_mgmt_rx_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_mgmt_rx_ev_arg *arg)
{ … }
static int ath10k_wmi_10_4_op_pull_mgmt_rx_ev(struct ath10k *ar,
struct sk_buff *skb,
struct wmi_mgmt_rx_ev_arg *arg)
{ … }
static bool ath10k_wmi_rx_is_decrypted(struct ath10k *ar,
struct ieee80211_hdr *hdr)
{ … }
static int
wmi_process_mgmt_tx_comp(struct ath10k *ar, struct mgmt_tx_compl_params *param)
{ … }
int ath10k_wmi_event_mgmt_tx_compl(struct ath10k *ar, struct sk_buff *skb)
{ … }
int ath10k_wmi_event_mgmt_tx_bundle_compl(struct ath10k *ar, struct sk_buff *skb)
{ … }
int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int freq_to_idx(struct ath10k *ar, int freq)
{ … }
static int ath10k_wmi_op_pull_ch_info_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_ch_info_ev_arg *arg)
{ … }
static int ath10k_wmi_10_4_op_pull_ch_info_ev(struct ath10k *ar,
struct sk_buff *skb,
struct wmi_ch_info_ev_arg *arg)
{ … }
static void ath10k_wmi_event_chan_info_unpaired(struct ath10k *ar,
struct chan_info_params *params)
{ … }
static void ath10k_wmi_event_chan_info_paired(struct ath10k *ar,
struct chan_info_params *params)
{ … }
void ath10k_wmi_event_chan_info(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_echo(struct ath10k *ar, struct sk_buff *skb)
{ … }
int ath10k_wmi_event_debug_mesg(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_pull_pdev_stats_base(const struct wmi_pdev_stats_base *src,
struct ath10k_fw_stats_pdev *dst)
{ … }
void ath10k_wmi_pull_pdev_stats_tx(const struct wmi_pdev_stats_tx *src,
struct ath10k_fw_stats_pdev *dst)
{ … }
static void
ath10k_wmi_10_4_pull_pdev_stats_tx(const struct wmi_10_4_pdev_stats_tx *src,
struct ath10k_fw_stats_pdev *dst)
{ … }
void ath10k_wmi_pull_pdev_stats_rx(const struct wmi_pdev_stats_rx *src,
struct ath10k_fw_stats_pdev *dst)
{ … }
void ath10k_wmi_pull_pdev_stats_extra(const struct wmi_pdev_stats_extra *src,
struct ath10k_fw_stats_pdev *dst)
{ … }
void ath10k_wmi_pull_peer_stats(const struct wmi_peer_stats *src,
struct ath10k_fw_stats_peer *dst)
{ … }
static void
ath10k_wmi_10_4_pull_peer_stats(const struct wmi_10_4_peer_stats *src,
struct ath10k_fw_stats_peer *dst)
{ … }
static void
ath10k_wmi_10_4_pull_vdev_stats(const struct wmi_vdev_stats_extd *src,
struct ath10k_fw_stats_vdev_extd *dst)
{ … }
static int ath10k_wmi_main_op_pull_fw_stats(struct ath10k *ar,
struct sk_buff *skb,
struct ath10k_fw_stats *stats)
{ … }
static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar,
struct sk_buff *skb,
struct ath10k_fw_stats *stats)
{ … }
static int ath10k_wmi_10_2_op_pull_fw_stats(struct ath10k *ar,
struct sk_buff *skb,
struct ath10k_fw_stats *stats)
{ … }
static int ath10k_wmi_10_2_4_op_pull_fw_stats(struct ath10k *ar,
struct sk_buff *skb,
struct ath10k_fw_stats *stats)
{ … }
static int ath10k_wmi_10_4_op_pull_fw_stats(struct ath10k *ar,
struct sk_buff *skb,
struct ath10k_fw_stats *stats)
{ … }
void ath10k_wmi_event_update_stats(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int
ath10k_wmi_op_pull_vdev_start_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_vdev_start_ev_arg *arg)
{ … }
void ath10k_wmi_event_vdev_start_resp(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_vdev_stopped(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int
ath10k_wmi_op_pull_peer_kick_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_peer_kick_ev_arg *arg)
{ … }
void ath10k_wmi_event_peer_sta_kickout(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_wmi_update_tim(struct ath10k *ar,
struct ath10k_vif *arvif,
struct sk_buff *bcn,
const struct wmi_tim_info_arg *tim_info)
{ … }
static void ath10k_wmi_update_noa(struct ath10k *ar, struct ath10k_vif *arvif,
struct sk_buff *bcn,
const struct wmi_p2p_noa_info *noa)
{ … }
static int ath10k_wmi_op_pull_swba_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_swba_ev_arg *arg)
{ … }
static int ath10k_wmi_10_2_4_op_pull_swba_ev(struct ath10k *ar,
struct sk_buff *skb,
struct wmi_swba_ev_arg *arg)
{ … }
static int ath10k_wmi_10_4_op_pull_swba_ev(struct ath10k *ar,
struct sk_buff *skb,
struct wmi_swba_ev_arg *arg)
{ … }
static enum wmi_txbf_conf ath10k_wmi_10_4_txbf_conf_scheme(struct ath10k *ar)
{ … }
void ath10k_wmi_event_host_swba(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_tbttoffset_update(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_radar_detected(struct ath10k *ar)
{ … }
static void ath10k_radar_confirmation_work(struct work_struct *work)
{ … }
static void ath10k_dfs_radar_report(struct ath10k *ar,
struct wmi_phyerr_ev_arg *phyerr,
const struct phyerr_radar_report *rr,
u64 tsf)
{ … }
static int ath10k_dfs_fft_report(struct ath10k *ar,
struct wmi_phyerr_ev_arg *phyerr,
const struct phyerr_fft_report *fftr,
u64 tsf)
{ … }
void ath10k_wmi_event_dfs(struct ath10k *ar,
struct wmi_phyerr_ev_arg *phyerr,
u64 tsf)
{ … }
void ath10k_wmi_event_spectral_scan(struct ath10k *ar,
struct wmi_phyerr_ev_arg *phyerr,
u64 tsf)
{ … }
static int ath10k_wmi_op_pull_phyerr_ev_hdr(struct ath10k *ar,
struct sk_buff *skb,
struct wmi_phyerr_hdr_arg *arg)
{ … }
static int ath10k_wmi_10_4_op_pull_phyerr_ev_hdr(struct ath10k *ar,
struct sk_buff *skb,
struct wmi_phyerr_hdr_arg *arg)
{ … }
int ath10k_wmi_op_pull_phyerr_ev(struct ath10k *ar,
const void *phyerr_buf,
int left_len,
struct wmi_phyerr_ev_arg *arg)
{ … }
static int ath10k_wmi_10_4_op_pull_phyerr_ev(struct ath10k *ar,
const void *phyerr_buf,
int left_len,
struct wmi_phyerr_ev_arg *arg)
{ … }
void ath10k_wmi_event_phyerr(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int
ath10k_wmi_10_4_op_pull_dfs_status_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_dfs_status_ev_arg *arg)
{ … }
static void
ath10k_wmi_event_dfs_status_check(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_roam(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_profile_match(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_debug_print(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_pdev_qvit(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_wlan_profile_data(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_rtt_measurement_report(struct ath10k *ar,
struct sk_buff *skb)
{ … }
void ath10k_wmi_event_tsf_measurement_report(struct ath10k *ar,
struct sk_buff *skb)
{ … }
void ath10k_wmi_event_rtt_error_report(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_wow_wakeup_host(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_dcs_interference(struct ath10k *ar, struct sk_buff *skb)
{ … }
static u8 ath10k_tpc_config_get_rate(struct ath10k *ar,
struct wmi_pdev_tpc_config_event *ev,
u32 rate_idx, u32 num_chains,
u32 rate_code, u8 type)
{ … }
static void ath10k_tpc_config_disp_tables(struct ath10k *ar,
struct wmi_pdev_tpc_config_event *ev,
struct ath10k_tpc_stats *tpc_stats,
u8 *rate_code, u16 *pream_table, u8 type)
{ … }
void ath10k_wmi_tpc_config_get_rate_code(u8 *rate_code, u16 *pream_table,
u32 num_tx_chain)
{ … }
void ath10k_wmi_event_pdev_tpc_config(struct ath10k *ar, struct sk_buff *skb)
{ … }
static u8
ath10k_wmi_tpc_final_get_rate(struct ath10k *ar,
struct wmi_pdev_tpc_final_table_event *ev,
u32 rate_idx, u32 num_chains,
u32 rate_code, u8 type, u32 pream_idx)
{ … }
static void
ath10k_wmi_tpc_stats_final_disp_tables(struct ath10k *ar,
struct wmi_pdev_tpc_final_table_event *ev,
struct ath10k_tpc_stats_final *tpc_stats,
u8 *rate_code, u16 *pream_table, u8 type)
{ … }
void ath10k_wmi_event_tpc_final_table(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void
ath10k_wmi_handle_tdls_peer_event(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void
ath10k_wmi_event_peer_sta_ps_state_chg(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_pdev_ftm_intg(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_gtk_offload_status(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_gtk_rekey_fail(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_delba_complete(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_addba_complete(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_vdev_install_key_complete(struct ath10k *ar,
struct sk_buff *skb)
{ … }
void ath10k_wmi_event_inst_rssi_stats(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_vdev_standby_req(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_vdev_resume_req(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int ath10k_wmi_alloc_chunk(struct ath10k *ar, u32 req_id,
u32 num_units, u32 unit_len)
{ … }
static int ath10k_wmi_alloc_host_mem(struct ath10k *ar, u32 req_id,
u32 num_units, u32 unit_len)
{ … }
static bool
ath10k_wmi_is_host_mem_allocated(struct ath10k *ar,
const struct wlan_host_mem_req **mem_reqs,
u32 num_mem_reqs)
{ … }
static int
ath10k_wmi_main_op_pull_svc_rdy_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_svc_rdy_ev_arg *arg)
{ … }
static int
ath10k_wmi_10x_op_pull_svc_rdy_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_svc_rdy_ev_arg *arg)
{ … }
static void ath10k_wmi_event_service_ready_work(struct work_struct *work)
{ … }
void ath10k_wmi_event_service_ready(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int ath10k_wmi_op_pull_rdy_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_rdy_ev_arg *arg)
{ … }
static int ath10k_wmi_op_pull_roam_ev(struct ath10k *ar, struct sk_buff *skb,
struct wmi_roam_ev_arg *arg)
{ … }
static int ath10k_wmi_op_pull_echo_ev(struct ath10k *ar,
struct sk_buff *skb,
struct wmi_echo_ev_arg *arg)
{ … }
int ath10k_wmi_event_ready(struct ath10k *ar, struct sk_buff *skb)
{ … }
void ath10k_wmi_event_service_available(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int ath10k_wmi_event_temperature(struct ath10k *ar, struct sk_buff *skb)
{ … }
static int ath10k_wmi_event_pdev_bss_chan_info(struct ath10k *ar,
struct sk_buff *skb)
{ … }
static inline void ath10k_wmi_queue_set_coverage_class_work(struct ath10k *ar)
{ … }
static void ath10k_wmi_op_rx(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_wmi_10_1_op_rx(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_wmi_10_2_op_rx(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_wmi_10_4_op_rx(struct ath10k *ar, struct sk_buff *skb)
{ … }
static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb)
{ … }
int ath10k_wmi_connect(struct ath10k *ar)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_set_base_macaddr(struct ath10k *ar,
const u8 macaddr[ETH_ALEN])
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_set_rd(struct ath10k *ar, u16 rd, u16 rd2g, u16 rd5g,
u16 ctl2g, u16 ctl5g,
enum wmi_dfs_region dfs_reg)
{ … }
static struct sk_buff *
ath10k_wmi_10x_op_gen_pdev_set_rd(struct ath10k *ar, u16 rd, u16 rd2g, u16
rd5g, u16 ctl2g, u16 ctl5g,
enum wmi_dfs_region dfs_reg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_suspend(struct ath10k *ar, u32 suspend_opt)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_resume(struct ath10k *ar)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_set_param(struct ath10k *ar, u32 id, u32 value)
{ … }
void ath10k_wmi_put_host_mem_chunks(struct ath10k *ar,
struct wmi_host_mem_chunks *chunks)
{ … }
static struct sk_buff *ath10k_wmi_op_gen_init(struct ath10k *ar)
{ … }
static struct sk_buff *ath10k_wmi_10_1_op_gen_init(struct ath10k *ar)
{ … }
static struct sk_buff *ath10k_wmi_10_2_op_gen_init(struct ath10k *ar)
{ … }
static struct sk_buff *ath10k_wmi_10_4_op_gen_init(struct ath10k *ar)
{ … }
int ath10k_wmi_start_scan_verify(const struct wmi_start_scan_arg *arg)
{ … }
static size_t
ath10k_wmi_start_scan_tlvs_len(const struct wmi_start_scan_arg *arg)
{ … }
void ath10k_wmi_put_start_scan_common(struct wmi_start_scan_common *cmn,
const struct wmi_start_scan_arg *arg)
{ … }
static void
ath10k_wmi_put_start_scan_tlvs(u8 *tlvs,
const struct wmi_start_scan_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_start_scan(struct ath10k *ar,
const struct wmi_start_scan_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_10x_op_gen_start_scan(struct ath10k *ar,
const struct wmi_start_scan_arg *arg)
{ … }
void ath10k_wmi_start_scan_init(struct ath10k *ar,
struct wmi_start_scan_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_stop_scan(struct ath10k *ar,
const struct wmi_stop_scan_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_create(struct ath10k *ar, u32 vdev_id,
enum wmi_vdev_type type,
enum wmi_vdev_subtype subtype,
const u8 macaddr[ETH_ALEN])
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_delete(struct ath10k *ar, u32 vdev_id)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_start(struct ath10k *ar,
const struct wmi_vdev_start_request_arg *arg,
bool restart)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_stop(struct ath10k *ar, u32 vdev_id)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_up(struct ath10k *ar, u32 vdev_id, u32 aid,
const u8 *bssid)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_down(struct ath10k *ar, u32 vdev_id)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_set_param(struct ath10k *ar, u32 vdev_id,
u32 param_id, u32 param_value)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_install_key(struct ath10k *ar,
const struct wmi_vdev_install_key_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_spectral_conf(struct ath10k *ar,
const struct wmi_vdev_spectral_conf_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_vdev_spectral_enable(struct ath10k *ar, u32 vdev_id,
u32 trigger, u32 enable)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_peer_create(struct ath10k *ar, u32 vdev_id,
const u8 peer_addr[ETH_ALEN],
enum wmi_peer_type peer_type)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_peer_delete(struct ath10k *ar, u32 vdev_id,
const u8 peer_addr[ETH_ALEN])
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_peer_flush(struct ath10k *ar, u32 vdev_id,
const u8 peer_addr[ETH_ALEN], u32 tid_bitmap)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_peer_set_param(struct ath10k *ar, u32 vdev_id,
const u8 *peer_addr,
enum wmi_peer_param param_id,
u32 param_value)
{ … }
static struct sk_buff *ath10k_wmi_op_gen_gpio_config(struct ath10k *ar,
u32 gpio_num, u32 input,
u32 pull_type, u32 intr_mode)
{ … }
static struct sk_buff *ath10k_wmi_op_gen_gpio_output(struct ath10k *ar,
u32 gpio_num, u32 set)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
enum wmi_sta_ps_mode psmode)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_set_sta_ps(struct ath10k *ar, u32 vdev_id,
enum wmi_sta_powersave_param param_id,
u32 value)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_set_ap_ps(struct ath10k *ar, u32 vdev_id, const u8 *mac,
enum wmi_ap_ps_peer_param param_id, u32 value)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_scan_chan_list(struct ath10k *ar,
const struct wmi_scan_chan_list_arg *arg)
{ … }
static void
ath10k_wmi_peer_assoc_fill(struct ath10k *ar, void *buf,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static void
ath10k_wmi_peer_assoc_fill_main(struct ath10k *ar, void *buf,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static void
ath10k_wmi_peer_assoc_fill_10_1(struct ath10k *ar, void *buf,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static void
ath10k_wmi_peer_assoc_fill_10_2(struct ath10k *ar, void *buf,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static void
ath10k_wmi_peer_assoc_fill_10_4(struct ath10k *ar, void *buf,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static int
ath10k_wmi_peer_assoc_check_arg(const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_peer_assoc(struct ath10k *ar,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_10_1_op_gen_peer_assoc(struct ath10k *ar,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_10_2_op_gen_peer_assoc(struct ath10k *ar,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_op_gen_peer_assoc(struct ath10k *ar,
const struct wmi_peer_assoc_complete_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_10_2_op_gen_pdev_get_temperature(struct ath10k *ar)
{ … }
static struct sk_buff *
ath10k_wmi_10_2_op_gen_pdev_bss_chan_info(struct ath10k *ar,
enum wmi_bss_survey_req_type type)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_beacon_dma(struct ath10k *ar, u32 vdev_id, const void *bcn,
size_t bcn_len, u32 bcn_paddr, bool dtim_zero,
bool deliver_cab)
{ … }
void ath10k_wmi_set_wmm_param(struct wmi_wmm_params *params,
const struct wmi_wmm_params_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_set_wmm(struct ath10k *ar,
const struct wmi_wmm_params_all_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_request_stats(struct ath10k *ar, u32 stats_mask)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_force_fw_hang(struct ath10k *ar,
enum wmi_force_fw_hang_type type, u32 delay_ms)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_dbglog_cfg(struct ath10k *ar, u64 module_enable,
u32 log_level)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_op_gen_dbglog_cfg(struct ath10k *ar, u64 module_enable,
u32 log_level)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pktlog_enable(struct ath10k *ar, u32 ev_bitmap)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pktlog_disable(struct ath10k *ar)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_set_quiet_mode(struct ath10k *ar, u32 period,
u32 duration, u32 next_offset,
u32 enabled)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_addba_clear_resp(struct ath10k *ar, u32 vdev_id,
const u8 *mac)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_addba_send(struct ath10k *ar, u32 vdev_id, const u8 *mac,
u32 tid, u32 buf_size)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_addba_set_resp(struct ath10k *ar, u32 vdev_id, const u8 *mac,
u32 tid, u32 status)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_delba_send(struct ath10k *ar, u32 vdev_id, const u8 *mac,
u32 tid, u32 initiator, u32 reason)
{ … }
static struct sk_buff *
ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config(struct ath10k *ar, u32 param)
{ … }
static void
ath10k_wmi_fw_pdev_base_stats_fill(const struct ath10k_fw_stats_pdev *pdev,
char *buf, u32 *length)
{ … }
static void
ath10k_wmi_fw_pdev_extra_stats_fill(const struct ath10k_fw_stats_pdev *pdev,
char *buf, u32 *length)
{ … }
static void
ath10k_wmi_fw_pdev_tx_stats_fill(const struct ath10k_fw_stats_pdev *pdev,
char *buf, u32 *length)
{ … }
static void
ath10k_wmi_fw_pdev_rx_stats_fill(const struct ath10k_fw_stats_pdev *pdev,
char *buf, u32 *length)
{ … }
static void
ath10k_wmi_fw_vdev_stats_fill(const struct ath10k_fw_stats_vdev *vdev,
char *buf, u32 *length)
{ … }
static void
ath10k_wmi_fw_peer_stats_fill(const struct ath10k_fw_stats_peer *peer,
char *buf, u32 *length, bool extended_peer)
{ … }
static void
ath10k_wmi_fw_extd_peer_stats_fill(const struct ath10k_fw_extd_stats_peer *peer,
char *buf, u32 *length)
{ … }
void ath10k_wmi_main_op_fw_stats_fill(struct ath10k *ar,
struct ath10k_fw_stats *fw_stats,
char *buf)
{ … }
void ath10k_wmi_10x_op_fw_stats_fill(struct ath10k *ar,
struct ath10k_fw_stats *fw_stats,
char *buf)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_pdev_enable_adaptive_cca(struct ath10k *ar, u8 enable,
u32 detect_level, u32 detect_margin)
{ … }
static void
ath10k_wmi_fw_vdev_stats_extd_fill(const struct ath10k_fw_stats_vdev_extd *vdev,
char *buf, u32 *length)
{ … }
void ath10k_wmi_10_4_op_fw_stats_fill(struct ath10k *ar,
struct ath10k_fw_stats *fw_stats,
char *buf)
{ … }
int ath10k_wmi_op_get_vdev_subtype(struct ath10k *ar,
enum wmi_vdev_subtype subtype)
{ … }
static int ath10k_wmi_10_2_4_op_get_vdev_subtype(struct ath10k *ar,
enum wmi_vdev_subtype subtype)
{ … }
static int ath10k_wmi_10_4_op_get_vdev_subtype(struct ath10k *ar,
enum wmi_vdev_subtype subtype)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_ext_resource_config(struct ath10k *ar,
enum wmi_host_platform_type type,
u32 fw_feature_bitmap)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_gen_update_fw_tdls_state(struct ath10k *ar, u32 vdev_id,
enum wmi_tdls_state state)
{ … }
static u32 ath10k_wmi_prepare_peer_qos(u8 uapsd_queues, u8 sp)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_op_gen_pdev_get_tpc_table_cmdid(struct ath10k *ar, u32 param)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_gen_tdls_peer_update(struct ath10k *ar,
const struct wmi_tdls_peer_update_cmd_arg *arg,
const struct wmi_tdls_peer_capab_arg *cap,
const struct wmi_channel_arg *chan_arg)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_gen_radar_found(struct ath10k *ar,
const struct ath10k_radar_found_info *arg)
{ … }
static struct sk_buff *
ath10k_wmi_10_4_gen_per_peer_per_tid_cfg(struct ath10k *ar,
const struct wmi_per_peer_per_tid_cfg_arg *arg)
{ … }
static struct sk_buff *
ath10k_wmi_op_gen_echo(struct ath10k *ar, u32 value)
{ … }
int
ath10k_wmi_barrier(struct ath10k *ar)
{ … }
static struct sk_buff *
ath10k_wmi_10_2_4_op_gen_bb_timing(struct ath10k *ar,
const struct wmi_bb_timing_cfg_arg *arg)
{ … }
static const struct wmi_ops wmi_ops = …;
static const struct wmi_ops wmi_10_1_ops = …;
static const struct wmi_ops wmi_10_2_ops = …;
static const struct wmi_ops wmi_10_2_4_ops = …;
static const struct wmi_ops wmi_10_4_ops = …;
int ath10k_wmi_attach(struct ath10k *ar)
{ … }
void ath10k_wmi_free_host_mem(struct ath10k *ar)
{ … }
static int ath10k_wmi_mgmt_tx_clean_up_pending(int msdu_id, void *ptr,
void *ctx)
{ … }
void ath10k_wmi_detach(struct ath10k *ar)
{ … }