#include "cam.h"
#include "chan.h"
#include "debug.h"
#include "efuse.h"
#include "fw.h"
#include "mac.h"
#include "pci.h"
#include "ps.h"
#include "reg.h"
#include "util.h"
static const u32 rtw89_mac_mem_base_addrs_ax[RTW89_MAC_MEM_NUM] = …;
static void rtw89_mac_mem_write(struct rtw89_dev *rtwdev, u32 offset,
u32 val, enum rtw89_mac_mem_sel sel)
{ … }
static u32 rtw89_mac_mem_read(struct rtw89_dev *rtwdev, u32 offset,
enum rtw89_mac_mem_sel sel)
{ … }
static int rtw89_mac_check_mac_en_ax(struct rtw89_dev *rtwdev, u8 mac_idx,
enum rtw89_mac_hwmod_sel sel)
{ … }
int rtw89_mac_write_lte(struct rtw89_dev *rtwdev, const u32 offset, u32 val)
{ … }
int rtw89_mac_read_lte(struct rtw89_dev *rtwdev, const u32 offset, u32 *val)
{ … }
int rtw89_mac_dle_dfi_cfg(struct rtw89_dev *rtwdev, struct rtw89_mac_dle_dfi_ctrl *ctrl)
{ … }
int rtw89_mac_dle_dfi_quota_cfg(struct rtw89_dev *rtwdev,
struct rtw89_mac_dle_dfi_quota *quota)
{ … }
int rtw89_mac_dle_dfi_qempty_cfg(struct rtw89_dev *rtwdev,
struct rtw89_mac_dle_dfi_qempty *qempty)
{ … }
static void dump_err_status_dispatcher_ax(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_mac_dump_qta_lost_ax(struct rtw89_dev *rtwdev)
{ … }
void rtw89_mac_dump_l0_to_l1(struct rtw89_dev *rtwdev,
enum mac_ax_err_info err)
{ … }
void rtw89_mac_dump_dmac_err_status(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_mac_dump_cmac_err_status_ax(struct rtw89_dev *rtwdev,
u8 band)
{ … }
static void rtw89_mac_dump_err_status_ax(struct rtw89_dev *rtwdev,
enum mac_ax_err_info err)
{ … }
static bool rtw89_mac_suppress_log(struct rtw89_dev *rtwdev, u32 err)
{ … }
u32 rtw89_mac_get_err_status(struct rtw89_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_set_err_status(struct rtw89_dev *rtwdev, u32 err)
{ … }
EXPORT_SYMBOL(…);
static int hfc_reset_param(struct rtw89_dev *rtwdev)
{ … }
static int hfc_ch_cfg_chk(struct rtw89_dev *rtwdev, u8 ch)
{ … }
static int hfc_pub_info_chk(struct rtw89_dev *rtwdev)
{ … }
static int hfc_pub_cfg_chk(struct rtw89_dev *rtwdev)
{ … }
static int hfc_ch_ctrl(struct rtw89_dev *rtwdev, u8 ch)
{ … }
static int hfc_upd_ch_info(struct rtw89_dev *rtwdev, u8 ch)
{ … }
static int hfc_pub_ctrl(struct rtw89_dev *rtwdev)
{ … }
static void hfc_get_mix_info_ax(struct rtw89_dev *rtwdev)
{ … }
static int hfc_upd_mix_info(struct rtw89_dev *rtwdev)
{ … }
static void hfc_h2c_cfg_ax(struct rtw89_dev *rtwdev)
{ … }
static void hfc_mix_cfg_ax(struct rtw89_dev *rtwdev)
{ … }
static void hfc_func_en_ax(struct rtw89_dev *rtwdev, bool en, bool h2c_en)
{ … }
int rtw89_mac_hfc_init(struct rtw89_dev *rtwdev, bool reset, bool en, bool h2c_en)
{ … }
#define PWR_POLL_CNT …
static int pwr_cmd_poll(struct rtw89_dev *rtwdev,
const struct rtw89_pwr_cfg *cfg)
{ … }
static int rtw89_mac_sub_pwr_seq(struct rtw89_dev *rtwdev, u8 cv_msk,
u8 intf_msk, const struct rtw89_pwr_cfg *cfg)
{ … }
static int rtw89_mac_pwr_seq(struct rtw89_dev *rtwdev,
const struct rtw89_pwr_cfg * const *cfg_seq)
{ … }
static enum rtw89_rpwm_req_pwr_state
rtw89_mac_get_req_pwr_state(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_mac_send_rpwm(struct rtw89_dev *rtwdev,
enum rtw89_rpwm_req_pwr_state req_pwr_state,
bool notify_wake)
{ … }
static int rtw89_mac_check_cpwm_state(struct rtw89_dev *rtwdev,
enum rtw89_rpwm_req_pwr_state req_pwr_state)
{ … }
void rtw89_mac_power_mode_change(struct rtw89_dev *rtwdev, bool enter)
{ … }
void rtw89_mac_notify_wake(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_mac_power_switch(struct rtw89_dev *rtwdev, bool on)
{ … }
void rtw89_mac_pwr_off(struct rtw89_dev *rtwdev)
{ … }
static int cmac_func_en_ax(struct rtw89_dev *rtwdev, u8 mac_idx, bool en)
{ … }
static int dmac_func_en_ax(struct rtw89_dev *rtwdev)
{ … }
static int chip_func_en_ax(struct rtw89_dev *rtwdev)
{ … }
static int sys_init_ax(struct rtw89_dev *rtwdev)
{ … }
const struct rtw89_mac_size_set rtw89_mac_size = …;
EXPORT_SYMBOL(…);
static const struct rtw89_dle_mem *get_dle_mem_cfg(struct rtw89_dev *rtwdev,
enum rtw89_qta_mode mode)
{ … }
int rtw89_mac_get_dle_rsvd_qt_cfg(struct rtw89_dev *rtwdev,
enum rtw89_mac_dle_rsvd_qt_type type,
struct rtw89_mac_dle_rsvd_qt_cfg *cfg)
{ … }
static bool mac_is_txq_empty_ax(struct rtw89_dev *rtwdev)
{ … }
static inline u32 dle_used_size(const struct rtw89_dle_mem *cfg)
{ … }
static u32 dle_expected_used_size(struct rtw89_dev *rtwdev,
enum rtw89_qta_mode mode)
{ … }
static void dle_func_en_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void dle_clk_en_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static int dle_mix_cfg_ax(struct rtw89_dev *rtwdev, const struct rtw89_dle_mem *cfg)
{ … }
static int chk_dle_rdy_ax(struct rtw89_dev *rtwdev, bool wde_or_ple)
{ … }
#define INVALID_QT_WCPU …
#define SET_QUOTA_VAL(_min_x, _max_x, _module, _idx) …
#define SET_QUOTA …
static void wde_quota_cfg_ax(struct rtw89_dev *rtwdev,
const struct rtw89_wde_quota *min_cfg,
const struct rtw89_wde_quota *max_cfg,
u16 ext_wde_min_qt_wcpu)
{ … }
static void ple_quota_cfg_ax(struct rtw89_dev *rtwdev,
const struct rtw89_ple_quota *min_cfg,
const struct rtw89_ple_quota *max_cfg)
{ … }
int rtw89_mac_resize_ple_rx_quota(struct rtw89_dev *rtwdev, bool wow)
{ … }
#undef SET_QUOTA
void rtw89_mac_hw_mgnt_sec(struct rtw89_dev *rtwdev, bool enable)
{ … }
static void dle_quota_cfg(struct rtw89_dev *rtwdev,
const struct rtw89_dle_mem *cfg,
u16 ext_wde_min_qt_wcpu)
{ … }
int rtw89_mac_dle_init(struct rtw89_dev *rtwdev, enum rtw89_qta_mode mode,
enum rtw89_qta_mode ext_mode)
{ … }
static int preload_init_set(struct rtw89_dev *rtwdev, enum rtw89_mac_idx mac_idx,
enum rtw89_qta_mode mode)
{ … }
static bool is_qta_poh(struct rtw89_dev *rtwdev)
{ … }
int rtw89_mac_preload_init(struct rtw89_dev *rtwdev, enum rtw89_mac_idx mac_idx,
enum rtw89_qta_mode mode)
{ … }
static bool dle_is_txq_empty(struct rtw89_dev *rtwdev)
{ … }
static void _patch_ss2f_path(struct rtw89_dev *rtwdev)
{ … }
static int sta_sch_init_ax(struct rtw89_dev *rtwdev)
{ … }
static int mpdu_proc_init_ax(struct rtw89_dev *rtwdev)
{ … }
static int sec_eng_init_ax(struct rtw89_dev *rtwdev)
{ … }
static int dmac_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int addr_cam_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int scheduler_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int rtw89_mac_typ_fltr_opt_ax(struct rtw89_dev *rtwdev,
enum rtw89_machdr_frame_type type,
enum rtw89_mac_fwd_target fwd_target,
u8 mac_idx)
{ … }
static int rx_fltr_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static void _patch_dis_resp_chk(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int cca_ctrl_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int nav_ctrl_init_ax(struct rtw89_dev *rtwdev)
{ … }
static int spatial_reuse_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int tmac_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int trxptcl_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static void rst_bacam(struct rtw89_dev *rtwdev)
{ … }
static int rmac_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int cmac_com_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
bool rtw89_mac_is_qta_dbcc(struct rtw89_dev *rtwdev, enum rtw89_qta_mode mode)
{ … }
static int ptcl_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int cmac_dma_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int cmac_init_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int rtw89_mac_read_phycap(struct rtw89_dev *rtwdev,
struct rtw89_mac_c2h_info *c2h_info)
{ … }
int rtw89_mac_setup_phycap(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_hw_sch_tx_en_h2c(struct rtw89_dev *rtwdev, u8 band,
u16 tx_en_u16, u16 mask_u16)
{ … }
static int rtw89_set_hw_sch_tx_en(struct rtw89_dev *rtwdev, u8 mac_idx,
u16 tx_en, u16 tx_en_mask)
{ … }
static int rtw89_set_hw_sch_tx_en_v1(struct rtw89_dev *rtwdev, u8 mac_idx,
u32 tx_en, u32 tx_en_mask)
{ … }
int rtw89_mac_stop_sch_tx(struct rtw89_dev *rtwdev, u8 mac_idx,
u32 *tx_en, enum rtw89_sch_tx_sel sel)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_stop_sch_tx_v1(struct rtw89_dev *rtwdev, u8 mac_idx,
u32 *tx_en, enum rtw89_sch_tx_sel sel)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_resume_sch_tx(struct rtw89_dev *rtwdev, u8 mac_idx, u32 tx_en)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_resume_sch_tx_v1(struct rtw89_dev *rtwdev, u8 mac_idx, u32 tx_en)
{ … }
EXPORT_SYMBOL(…);
static int dle_buf_req_ax(struct rtw89_dev *rtwdev, u16 buf_len, bool wd, u16 *pkt_id)
{ … }
static int set_cpuio_ax(struct rtw89_dev *rtwdev,
struct rtw89_cpuio_ctrl *ctrl_para, bool wd)
{ … }
int rtw89_mac_dle_quota_change(struct rtw89_dev *rtwdev, enum rtw89_qta_mode mode,
bool band1_en)
{ … }
static int dle_quota_change_ax(struct rtw89_dev *rtwdev, bool band1_en)
{ … }
static int band_idle_ck_b(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int band1_enable_ax(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wdrls_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wsec_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_mpdu_trx_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_sta_sch_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_txpktctl_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_wde_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_ple_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_pktin_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_dispatcher_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_cpuio_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_bbrpt_imr_enable(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_scheduler_imr_enable(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static void rtw89_ptcl_imr_enable(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static void rtw89_cdma_imr_enable(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static void rtw89_phy_intf_imr_enable(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static void rtw89_rmac_imr_enable(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static void rtw89_tmac_imr_enable(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int enable_imr_ax(struct rtw89_dev *rtwdev, u8 mac_idx,
enum rtw89_mac_hwmod_sel sel)
{ … }
static void err_imr_ctrl_ax(struct rtw89_dev *rtwdev, bool en)
{ … }
static int dbcc_enable_ax(struct rtw89_dev *rtwdev, bool enable)
{ … }
static int set_host_rpr_ax(struct rtw89_dev *rtwdev)
{ … }
static int trx_init_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_mac_feat_init(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_disable_fw_watchdog(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_mac_disable_cpu_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_mac_enable_cpu_ax(struct rtw89_dev *rtwdev, u8 boot_reason,
bool dlfw, bool include_bb)
{ … }
static void rtw89_mac_hci_func_en_ax(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_mac_dmac_func_pre_en_ax(struct rtw89_dev *rtwdev)
{ … }
static int rtw89_mac_dmac_pre_init(struct rtw89_dev *rtwdev)
{ … }
int rtw89_mac_enable_bb_rf(struct rtw89_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_disable_bb_rf(struct rtw89_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_partial_init(struct rtw89_dev *rtwdev, bool include_bb)
{ … }
int rtw89_mac_init(struct rtw89_dev *rtwdev)
{ … }
static void rtw89_mac_dmac_tbl_init(struct rtw89_dev *rtwdev, u8 macid)
{ … }
static void rtw89_mac_cmac_tbl_init(struct rtw89_dev *rtwdev, u8 macid)
{ … }
int rtw89_mac_set_macid_pause(struct rtw89_dev *rtwdev, u8 macid, bool pause)
{ … }
static const struct rtw89_port_reg rtw89_port_base_ax = …;
static void rtw89_mac_check_packet_ctrl(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif, u8 type)
{ … }
static void rtw89_mac_bcn_drop(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
#define BCN_INTERVAL …
#define BCN_ERLY_DEF …
#define BCN_SETUP_DEF …
#define BCN_HOLD_DEF …
#define BCN_MASK_DEF …
#define TBTT_ERLY_DEF …
#define BCN_SET_UNIT …
#define BCN_ERLY_SET_DLY …
static void rtw89_mac_port_cfg_func_sw(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_tx_rpt(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif, bool en)
{ … }
static void rtw89_mac_port_cfg_rx_rpt(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif, bool en)
{ … }
static void rtw89_mac_port_cfg_net_type(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_bcn_prct(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_rx_sw(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
void rtw89_mac_port_cfg_rx_sync(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif, bool en)
{ … }
static void rtw89_mac_port_cfg_rx_sync_by_nettype(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_tx_sw(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif, bool en)
{ … }
static void rtw89_mac_port_cfg_tx_sw_by_nettype(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
void rtw89_mac_enable_beacon_for_ap_vifs(struct rtw89_dev *rtwdev, bool en)
{ … }
static void rtw89_mac_port_cfg_bcn_intv(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_hiq_win(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_hiq_dtim(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_bcn_setup_time(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_bcn_hold_time(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_bcn_mask_area(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_tbtt_early(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_bss_color(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_mbssid(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_hiq_drop(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_func_en(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif, bool enable)
{ … }
static void rtw89_mac_port_cfg_bcn_early(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
static void rtw89_mac_port_cfg_tbtt_shift(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif)
{ … }
void rtw89_mac_port_tsf_sync(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif,
struct rtw89_vif *rtwvif_src,
u16 offset_tu)
{ … }
static void rtw89_mac_port_tsf_sync_rand(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif,
struct rtw89_vif *rtwvif_src,
u8 offset, int *n_offset)
{ … }
static void rtw89_mac_port_tsf_resync_all(struct rtw89_dev *rtwdev)
{ … }
int rtw89_mac_vif_init(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
int rtw89_mac_vif_deinit(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
int rtw89_mac_port_update(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
int rtw89_mac_port_get_tsf(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
u64 *tsf)
{ … }
static void rtw89_mac_check_he_obss_narrow_bw_ru_iter(struct wiphy *wiphy,
struct cfg80211_bss *bss,
void *data)
{ … }
void rtw89_mac_set_he_obss_narrow_bw_ru(struct rtw89_dev *rtwdev,
struct ieee80211_vif *vif)
{ … }
void rtw89_mac_stop_ap(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
int rtw89_mac_add_vif(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
int rtw89_mac_remove_vif(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
static void
rtw89_mac_c2h_macid_pause(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static bool rtw89_is_op_chan(struct rtw89_dev *rtwdev, u8 band, u8 channel)
{ … }
static void
rtw89_mac_c2h_scanofld_rsp(struct rtw89_dev *rtwdev, struct sk_buff *skb,
u32 len)
{ … }
static void
rtw89_mac_bcn_fltr_rpt(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
struct sk_buff *skb)
{ … }
static void
rtw89_mac_c2h_bcn_fltr_rpt(struct rtw89_dev *rtwdev, struct sk_buff *c2h,
u32 len)
{ … }
static void
rtw89_mac_c2h_rec_ack(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_done_ack(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_log(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_bcn_cnt(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_pkt_ofld_rsp(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h,
u32 len)
{ … }
static void
rtw89_mac_c2h_tsf32_toggle_rpt(struct rtw89_dev *rtwdev, struct sk_buff *c2h,
u32 len)
{ … }
static void
rtw89_mac_c2h_mcc_rcv_ack(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_mcc_req_ack(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_mcc_tsf_rpt(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_mcc_status_rpt(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_mrc_tsf_rpt(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static void
rtw89_mac_c2h_wow_aoac_rpt(struct rtw89_dev *rtwdev, struct sk_buff *skb, u32 len)
{ … }
static void
rtw89_mac_c2h_mrc_status_rpt(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
{ … }
static
void (* const rtw89_mac_c2h_ofld_handler[])(struct rtw89_dev *rtwdev,
struct sk_buff *c2h, u32 len) = …;
static
void (* const rtw89_mac_c2h_info_handler[])(struct rtw89_dev *rtwdev,
struct sk_buff *c2h, u32 len) = …;
static
void (* const rtw89_mac_c2h_mcc_handler[])(struct rtw89_dev *rtwdev,
struct sk_buff *c2h, u32 len) = …;
static
void (* const rtw89_mac_c2h_mrc_handler[])(struct rtw89_dev *rtwdev,
struct sk_buff *c2h, u32 len) = …;
static
void (* const rtw89_mac_c2h_wow_handler[])(struct rtw89_dev *rtwdev,
struct sk_buff *c2h, u32 len) = …;
static void rtw89_mac_c2h_scanofld_rsp_atomic(struct rtw89_dev *rtwdev,
struct sk_buff *skb)
{ … }
bool rtw89_mac_c2h_chk_atomic(struct rtw89_dev *rtwdev, struct sk_buff *c2h,
u8 class, u8 func)
{ … }
void rtw89_mac_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb,
u32 len, u8 class, u8 func)
{ … }
static
bool rtw89_mac_get_txpwr_cr_ax(struct rtw89_dev *rtwdev,
enum rtw89_phy_idx phy_idx,
u32 reg_base, u32 *cr)
{ … }
static
int rtw89_mac_cfg_ppdu_status_ax(struct rtw89_dev *rtwdev, u8 mac_idx, bool enable)
{ … }
void rtw89_mac_update_rts_threshold(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
void rtw89_mac_flush_txq(struct rtw89_dev *rtwdev, u32 queues, bool drop)
{ … }
int rtw89_mac_coex_init(struct rtw89_dev *rtwdev, const struct rtw89_mac_ax_coex *coex)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_coex_init_v1(struct rtw89_dev *rtwdev,
const struct rtw89_mac_ax_coex *coex)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_cfg_gnt(struct rtw89_dev *rtwdev,
const struct rtw89_mac_ax_coex_gnt *gnt_cfg)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_cfg_gnt_v1(struct rtw89_dev *rtwdev,
const struct rtw89_mac_ax_coex_gnt *gnt_cfg)
{ … }
EXPORT_SYMBOL(…);
static
int rtw89_mac_cfg_plt_ax(struct rtw89_dev *rtwdev, struct rtw89_mac_ax_plt *plt)
{ … }
void rtw89_mac_cfg_sb(struct rtw89_dev *rtwdev, u32 val)
{ … }
u32 rtw89_mac_get_sb(struct rtw89_dev *rtwdev)
{ … }
int rtw89_mac_cfg_ctrl_path(struct rtw89_dev *rtwdev, bool wl)
{ … }
EXPORT_SYMBOL(…);
int rtw89_mac_cfg_ctrl_path_v1(struct rtw89_dev *rtwdev, bool wl)
{ … }
EXPORT_SYMBOL(…);
bool rtw89_mac_get_ctrl_path(struct rtw89_dev *rtwdev)
{ … }
static u16 rtw89_mac_get_plt_cnt_ax(struct rtw89_dev *rtwdev, u8 band)
{ … }
static void rtw89_mac_bfee_standby_timer(struct rtw89_dev *rtwdev, u8 mac_idx,
bool keep)
{ … }
void rtw89_mac_bfee_ctrl(struct rtw89_dev *rtwdev, u8 mac_idx, bool en)
{ … }
static int rtw89_mac_init_bfee_ax(struct rtw89_dev *rtwdev, u8 mac_idx)
{ … }
static int rtw89_mac_set_csi_para_reg_ax(struct rtw89_dev *rtwdev,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
{ … }
static int rtw89_mac_csi_rrsc_ax(struct rtw89_dev *rtwdev,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
{ … }
static void rtw89_mac_bf_assoc_ax(struct rtw89_dev *rtwdev,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
{ … }
void rtw89_mac_bf_disassoc(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
struct ieee80211_sta *sta)
{ … }
void rtw89_mac_bf_set_gid_table(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *conf)
{ … }
struct rtw89_mac_bf_monitor_iter_data { … };
static
void rtw89_mac_bf_monitor_calc_iter(void *data, struct ieee80211_sta *sta)
{ … }
void rtw89_mac_bf_monitor_calc(struct rtw89_dev *rtwdev,
struct ieee80211_sta *sta, bool disconnect)
{ … }
void _rtw89_mac_bf_monitor_track(struct rtw89_dev *rtwdev)
{ … }
static int
__rtw89_mac_set_tx_time(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta,
u32 tx_time)
{ … }
int rtw89_mac_set_tx_time(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta,
bool resume, u32 tx_time)
{ … }
int rtw89_mac_get_tx_time(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta,
u32 *tx_time)
{ … }
int rtw89_mac_set_tx_retry_limit(struct rtw89_dev *rtwdev,
struct rtw89_sta *rtwsta,
bool resume, u8 tx_retry)
{ … }
int rtw89_mac_get_tx_retry_limit(struct rtw89_dev *rtwdev,
struct rtw89_sta *rtwsta, u8 *tx_retry)
{ … }
int rtw89_mac_set_hw_muedca_ctrl(struct rtw89_dev *rtwdev,
struct rtw89_vif *rtwvif, bool en)
{ … }
static
int rtw89_mac_write_xtal_si_ax(struct rtw89_dev *rtwdev, u8 offset, u8 val, u8 mask)
{ … }
static
int rtw89_mac_read_xtal_si_ax(struct rtw89_dev *rtwdev, u8 offset, u8 *val)
{ … }
static
void rtw89_mac_pkt_drop_sta(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta)
{ … }
static void rtw89_mac_pkt_drop_vif_iter(void *data, struct ieee80211_sta *sta)
{ … }
void rtw89_mac_pkt_drop_vif(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{ … }
int rtw89_mac_ptk_drop_by_band_and_wait(struct rtw89_dev *rtwdev,
enum rtw89_mac_idx band)
{ … }
int rtw89_mac_cpu_io_rx(struct rtw89_dev *rtwdev, bool wow_enable)
{ … }
static int rtw89_wow_config_mac_ax(struct rtw89_dev *rtwdev, bool enable_wow)
{ … }
static u8 rtw89_fw_get_rdy_ax(struct rtw89_dev *rtwdev, enum rtw89_fwdl_check_type type)
{ … }
static
int rtw89_fwdl_check_path_ready_ax(struct rtw89_dev *rtwdev,
bool h2c_or_fwdl)
{ … }
const struct rtw89_mac_gen_def rtw89_mac_gen_ax = …;
EXPORT_SYMBOL(…);