linux/drivers/net/wireless/realtek/rtw89/core.c

// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/* Copyright(c) 2019-2020  Realtek Corporation
 */
#include <linux/ip.h>
#include <linux/udp.h>

#include "cam.h"
#include "chan.h"
#include "coex.h"
#include "core.h"
#include "efuse.h"
#include "fw.h"
#include "mac.h"
#include "phy.h"
#include "ps.h"
#include "reg.h"
#include "sar.h"
#include "ser.h"
#include "txrx.h"
#include "util.h"
#include "wow.h"

static bool rtw89_disable_ps_mode;
module_param_named(disable_ps_mode, rtw89_disable_ps_mode, bool, 0644);
MODULE_PARM_DESC();

#define RTW89_DEF_CHAN(_freq, _hw_val, _flags, _band)
#define RTW89_DEF_CHAN_2G(_freq, _hw_val)
#define RTW89_DEF_CHAN_5G(_freq, _hw_val)
#define RTW89_DEF_CHAN_5G_NO_HT40MINUS(_freq, _hw_val)
#define RTW89_DEF_CHAN_6G(_freq, _hw_val)

static struct ieee80211_channel rtw89_channels_2ghz[] =;

static struct ieee80211_channel rtw89_channels_5ghz[] =;

static_assert();

static struct ieee80211_channel rtw89_channels_6ghz[] =;

static struct ieee80211_rate rtw89_bitrates[] =;

static const struct ieee80211_iface_limit rtw89_iface_limits[] =;

static const struct ieee80211_iface_limit rtw89_iface_limits_mcc[] =;

static const struct ieee80211_iface_combination rtw89_iface_combs[] =;

bool rtw89_ra_report_to_bitrate(struct rtw89_dev *rtwdev, u8 rpt_rate, u16 *bitrate)
{}

static const struct ieee80211_supported_band rtw89_sband_2ghz =;

static const struct ieee80211_supported_band rtw89_sband_5ghz =;

static const struct ieee80211_supported_band rtw89_sband_6ghz =;

static void rtw89_traffic_stats_accu(struct rtw89_dev *rtwdev,
				     struct rtw89_traffic_stats *stats,
				     struct sk_buff *skb, bool tx)
{}

void rtw89_get_default_chandef(struct cfg80211_chan_def *chandef)
{}

void rtw89_get_channel_params(const struct cfg80211_chan_def *chandef,
			      struct rtw89_chan *chan)
{}

void rtw89_core_set_chip_txpwr(struct rtw89_dev *rtwdev)
{}

int rtw89_set_channel(struct rtw89_dev *rtwdev)
{}

void rtw89_get_channel(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
		       struct rtw89_chan *chan)
{}

static enum rtw89_core_tx_type
rtw89_core_get_tx_type(struct rtw89_dev *rtwdev,
		       struct sk_buff *skb)
{}

static void
rtw89_core_tx_update_ampdu_info(struct rtw89_dev *rtwdev,
				struct rtw89_core_tx_request *tx_req,
				enum btc_pkt_type pkt_type)
{}

static void
rtw89_core_tx_update_sec_key(struct rtw89_dev *rtwdev,
			     struct rtw89_core_tx_request *tx_req)
{}

static u16 rtw89_core_get_mgmt_rate(struct rtw89_dev *rtwdev,
				    struct rtw89_core_tx_request *tx_req,
				    const struct rtw89_chan *chan)
{}

static u8 rtw89_core_tx_get_mac_id(struct rtw89_dev *rtwdev,
				   struct rtw89_core_tx_request *tx_req)
{}

static void rtw89_core_tx_update_llc_hdr(struct rtw89_dev *rtwdev,
					 struct rtw89_tx_desc_info *desc_info,
					 struct sk_buff *skb)
{}

static void
rtw89_core_tx_update_mgmt_info(struct rtw89_dev *rtwdev,
			       struct rtw89_core_tx_request *tx_req)
{}

static void
rtw89_core_tx_update_h2c_info(struct rtw89_dev *rtwdev,
			      struct rtw89_core_tx_request *tx_req)
{}

static void rtw89_core_get_no_ul_ofdma_htc(struct rtw89_dev *rtwdev, __le32 *htc,
					   const struct rtw89_chan *chan)
{}

static bool
__rtw89_core_tx_check_he_qos_htc(struct rtw89_dev *rtwdev,
				 struct rtw89_core_tx_request *tx_req,
				 enum btc_pkt_type pkt_type)
{}

static void
__rtw89_core_tx_adjust_he_qos_htc(struct rtw89_dev *rtwdev,
				  struct rtw89_core_tx_request *tx_req)
{}

static void
rtw89_core_tx_update_he_qos_htc(struct rtw89_dev *rtwdev,
				struct rtw89_core_tx_request *tx_req,
				enum btc_pkt_type pkt_type)
{}

static u16 rtw89_core_get_data_rate(struct rtw89_dev *rtwdev,
				    struct rtw89_core_tx_request *tx_req)
{}

static void
rtw89_core_tx_update_data_info(struct rtw89_dev *rtwdev,
			       struct rtw89_core_tx_request *tx_req)
{}

static enum btc_pkt_type
rtw89_core_tx_btc_spec_pkt_notify(struct rtw89_dev *rtwdev,
				  struct rtw89_core_tx_request *tx_req)
{}

static void
rtw89_core_tx_wake(struct rtw89_dev *rtwdev,
		   struct rtw89_core_tx_request *tx_req)
{}

static void
rtw89_core_tx_update_desc_info(struct rtw89_dev *rtwdev,
			       struct rtw89_core_tx_request *tx_req)
{}

void rtw89_core_tx_kick_off(struct rtw89_dev *rtwdev, u8 qsel)
{}

int rtw89_core_tx_kick_off_and_wait(struct rtw89_dev *rtwdev, struct sk_buff *skb,
				    int qsel, unsigned int timeout)
{}

int rtw89_h2c_tx(struct rtw89_dev *rtwdev,
		 struct sk_buff *skb, bool fwdl)
{}

int rtw89_core_tx_write(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
			struct ieee80211_sta *sta, struct sk_buff *skb, int *qsel)
{}

static __le32 rtw89_build_txwd_body0(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body0_v1(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body1_v1(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body3(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body4(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body5(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body7_v1(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info0(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info0_v1(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info1(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info2_v1(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info4(struct rtw89_tx_desc_info *desc_info)
{}

void rtw89_core_fill_txdesc(struct rtw89_dev *rtwdev,
			    struct rtw89_tx_desc_info *desc_info,
			    void *txdesc)
{}
EXPORT_SYMBOL();

void rtw89_core_fill_txdesc_v1(struct rtw89_dev *rtwdev,
			       struct rtw89_tx_desc_info *desc_info,
			       void *txdesc)
{}
EXPORT_SYMBOL();

static __le32 rtw89_build_txwd_body0_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body1_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body2_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body3_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body4_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body5_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_body7_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info0_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info1_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info2_v2(struct rtw89_tx_desc_info *desc_info)
{}

static __le32 rtw89_build_txwd_info4_v2(struct rtw89_tx_desc_info *desc_info)
{}

void rtw89_core_fill_txdesc_v2(struct rtw89_dev *rtwdev,
			       struct rtw89_tx_desc_info *desc_info,
			       void *txdesc)
{}
EXPORT_SYMBOL();

static __le32 rtw89_build_txwd_fwcmd0_v1(struct rtw89_tx_desc_info *desc_info)
{}

void rtw89_core_fill_txdesc_fwcmd_v1(struct rtw89_dev *rtwdev,
				     struct rtw89_tx_desc_info *desc_info,
				     void *txdesc)
{}
EXPORT_SYMBOL();

static __le32 rtw89_build_txwd_fwcmd0_v2(struct rtw89_tx_desc_info *desc_info)
{}

void rtw89_core_fill_txdesc_fwcmd_v2(struct rtw89_dev *rtwdev,
				     struct rtw89_tx_desc_info *desc_info,
				     void *txdesc)
{}
EXPORT_SYMBOL();

static int rtw89_core_rx_process_mac_ppdu(struct rtw89_dev *rtwdev,
					  struct sk_buff *skb,
					  struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static u8 rtw89_get_data_rate_nss(struct rtw89_dev *rtwdev, u16 data_rate)
{}

static void rtw89_core_rx_process_phy_ppdu_iter(void *data,
						struct ieee80211_sta *sta)
{}

#define VAR_LEN
#define VAR_LEN_UNIT
static u16 rtw89_core_get_phy_status_ie_len(struct rtw89_dev *rtwdev,
					    const struct rtw89_phy_sts_iehdr *iehdr)
{}

static void rtw89_core_parse_phy_status_ie01_v2(struct rtw89_dev *rtwdev,
						const struct rtw89_phy_sts_iehdr *iehdr,
						struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static void rtw89_core_parse_phy_status_ie01(struct rtw89_dev *rtwdev,
					     const struct rtw89_phy_sts_iehdr *iehdr,
					     struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static void rtw89_core_parse_phy_status_ie00(struct rtw89_dev *rtwdev,
					     const struct rtw89_phy_sts_iehdr *iehdr,
					     struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static void rtw89_core_parse_phy_status_ie00_v2(struct rtw89_dev *rtwdev,
						const struct rtw89_phy_sts_iehdr *iehdr,
						struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static int rtw89_core_process_phy_status_ie(struct rtw89_dev *rtwdev,
					    const struct rtw89_phy_sts_iehdr *iehdr,
					    struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static void rtw89_core_update_phy_ppdu_hdr_v2(struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static void rtw89_core_update_phy_ppdu(struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static int rtw89_core_rx_process_phy_ppdu(struct rtw89_dev *rtwdev,
					  struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static int rtw89_core_rx_parse_phy_sts(struct rtw89_dev *rtwdev,
				       struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static void rtw89_core_rx_process_phy_sts(struct rtw89_dev *rtwdev,
					  struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static u8 rtw89_rxdesc_to_nl_he_eht_gi(struct rtw89_dev *rtwdev,
				       u8 desc_info_gi,
				       bool rx_status, bool eht)
{}

static
bool rtw89_check_rx_statu_gi_match(struct ieee80211_rx_status *status, u8 gi_ltf,
				   bool eht)
{}

static bool rtw89_core_rx_ppdu_match(struct rtw89_dev *rtwdev,
				     struct rtw89_rx_desc_info *desc_info,
				     struct ieee80211_rx_status *status)
{}

struct rtw89_vif_rx_stats_iter_data {};

static void rtw89_stats_trigger_frame(struct rtw89_dev *rtwdev,
				      struct ieee80211_vif *vif,
				      struct sk_buff *skb)
{}

static void rtw89_cancel_6ghz_probe_work(struct work_struct *work)
{}

static void rtw89_core_cancel_6ghz_probe_tx(struct rtw89_dev *rtwdev,
					    struct sk_buff *skb)
{}

static void rtw89_vif_sync_bcn_tsf(struct rtw89_vif *rtwvif,
				   struct ieee80211_hdr *hdr, size_t len)
{}

static void rtw89_vif_rx_stats_iter(void *data, u8 *mac,
				    struct ieee80211_vif *vif)
{}

static void rtw89_core_rx_stats(struct rtw89_dev *rtwdev,
				struct rtw89_rx_phy_ppdu *phy_ppdu,
				struct rtw89_rx_desc_info *desc_info,
				struct sk_buff *skb)
{}

static void rtw89_correct_cck_chan(struct rtw89_dev *rtwdev,
				   struct ieee80211_rx_status *status)
{}

static void rtw89_core_hw_to_sband_rate(struct ieee80211_rx_status *rx_status)
{}

static
void rtw89_core_update_rx_status_by_ppdu(struct rtw89_dev *rtwdev,
					 struct ieee80211_rx_status *rx_status,
					 struct rtw89_rx_phy_ppdu *phy_ppdu)
{}

static const u8 rx_status_bw_to_radiotap_eht_usig[] =;

static void rtw89_core_update_radiotap_eht(struct rtw89_dev *rtwdev,
					   struct sk_buff *skb,
					   struct ieee80211_rx_status *rx_status)
{}

static void rtw89_core_update_radiotap(struct rtw89_dev *rtwdev,
				       struct sk_buff *skb,
				       struct ieee80211_rx_status *rx_status)
{}

static void rtw89_core_rx_to_mac80211(struct rtw89_dev *rtwdev,
				      struct rtw89_rx_phy_ppdu *phy_ppdu,
				      struct rtw89_rx_desc_info *desc_info,
				      struct sk_buff *skb_ppdu,
				      struct ieee80211_rx_status *rx_status)
{}

static void rtw89_core_rx_pending_skb(struct rtw89_dev *rtwdev,
				      struct rtw89_rx_phy_ppdu *phy_ppdu,
				      struct rtw89_rx_desc_info *desc_info,
				      struct sk_buff *skb)
{}

static void rtw89_core_rx_process_ppdu_sts(struct rtw89_dev *rtwdev,
					   struct rtw89_rx_desc_info *desc_info,
					   struct sk_buff *skb)
{}

static void rtw89_core_rx_process_report(struct rtw89_dev *rtwdev,
					 struct rtw89_rx_desc_info *desc_info,
					 struct sk_buff *skb)
{}

void rtw89_core_query_rxdesc(struct rtw89_dev *rtwdev,
			     struct rtw89_rx_desc_info *desc_info,
			     u8 *data, u32 data_offset)
{}
EXPORT_SYMBOL();

void rtw89_core_query_rxdesc_v2(struct rtw89_dev *rtwdev,
				struct rtw89_rx_desc_info *desc_info,
				u8 *data, u32 data_offset)
{}
EXPORT_SYMBOL();

struct rtw89_core_iter_rx_status {};

static
void rtw89_core_stats_sta_rx_status_iter(void *data, struct ieee80211_sta *sta)
{}

static void rtw89_core_stats_sta_rx_status(struct rtw89_dev *rtwdev,
					   struct rtw89_rx_desc_info *desc_info,
					   struct ieee80211_rx_status *rx_status)
{}

static void rtw89_core_update_rx_status(struct rtw89_dev *rtwdev,
					struct rtw89_rx_desc_info *desc_info,
					struct ieee80211_rx_status *rx_status)
{}

static enum rtw89_ps_mode rtw89_update_ps_mode(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_flush_ppdu_rx_queue(struct rtw89_dev *rtwdev,
					   struct rtw89_rx_desc_info *desc_info)
{}

void rtw89_core_rx(struct rtw89_dev *rtwdev,
		   struct rtw89_rx_desc_info *desc_info,
		   struct sk_buff *skb)
{}
EXPORT_SYMBOL();

void rtw89_core_napi_start(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

void rtw89_core_napi_stop(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

int rtw89_core_napi_init(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

void rtw89_core_napi_deinit(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

static void rtw89_core_ba_work(struct work_struct *work)
{}

static void rtw89_core_free_sta_pending_ba(struct rtw89_dev *rtwdev,
					   struct ieee80211_sta *sta)
{}

static void rtw89_core_free_sta_pending_forbid_ba(struct rtw89_dev *rtwdev,
						  struct ieee80211_sta *sta)
{}

static void rtw89_core_free_sta_pending_roc_tx(struct rtw89_dev *rtwdev,
					       struct ieee80211_sta *sta)
{}

static void rtw89_core_stop_tx_ba_session(struct rtw89_dev *rtwdev,
					  struct rtw89_txq *rtwtxq)
{}

static void rtw89_core_txq_check_agg(struct rtw89_dev *rtwdev,
				     struct rtw89_txq *rtwtxq,
				     struct sk_buff *skb)
{}

static void rtw89_core_txq_push(struct rtw89_dev *rtwdev,
				struct rtw89_txq *rtwtxq,
				unsigned long frame_cnt,
				unsigned long byte_cnt)
{}

static u32 rtw89_check_and_reclaim_tx_resource(struct rtw89_dev *rtwdev, u8 tid)
{}

static bool rtw89_core_txq_agg_wait(struct rtw89_dev *rtwdev,
				    struct ieee80211_txq *txq,
				    unsigned long *frame_cnt,
				    bool *sched_txq, bool *reinvoke)
{}

static void rtw89_core_txq_schedule(struct rtw89_dev *rtwdev, u8 ac, bool *reinvoke)
{}

static void rtw89_ips_work(struct work_struct *work)
{}

static void rtw89_core_txq_work(struct work_struct *w)
{}

static void rtw89_core_txq_reinvoke_work(struct work_struct *w)
{}

static void rtw89_forbid_ba_work(struct work_struct *w)
{}

static void rtw89_core_sta_pending_tx_iter(void *data,
					   struct ieee80211_sta *sta)
{}

static void rtw89_core_handle_sta_pending_tx(struct rtw89_dev *rtwdev,
					     struct rtw89_vif *rtwvif)
{}

static int rtw89_core_send_nullfunc(struct rtw89_dev *rtwdev,
				    struct rtw89_vif *rtwvif, bool qos, bool ps)
{}

void rtw89_roc_start(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{}

void rtw89_roc_end(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{}

void rtw89_roc_work(struct work_struct *work)
{}

static enum rtw89_tfc_lv rtw89_get_traffic_level(struct rtw89_dev *rtwdev,
						 u32 throughput, u64 cnt)
{}

static bool rtw89_traffic_stats_calc(struct rtw89_dev *rtwdev,
				     struct rtw89_traffic_stats *stats)
{}

static bool rtw89_traffic_stats_track(struct rtw89_dev *rtwdev)
{}

static void rtw89_vif_enter_lps(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
{}

static void rtw89_enter_lps_track(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_rfk_track(struct rtw89_dev *rtwdev)
{}

void rtw89_core_update_p2p_ps(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif)
{}

void rtw89_traffic_stats_init(struct rtw89_dev *rtwdev,
			      struct rtw89_traffic_stats *stats)
{}

static void rtw89_track_work(struct work_struct *work)
{}

u8 rtw89_core_acquire_bit_map(unsigned long *addr, unsigned long size)
{}

void rtw89_core_release_bit_map(unsigned long *addr, u8 bit)
{}

void rtw89_core_release_all_bits_map(unsigned long *addr, unsigned int nbits)
{}

int rtw89_core_acquire_sta_ba_entry(struct rtw89_dev *rtwdev,
				    struct rtw89_sta *rtwsta, u8 tid, u8 *cam_idx)
{}

int rtw89_core_release_sta_ba_entry(struct rtw89_dev *rtwdev,
				    struct rtw89_sta *rtwsta, u8 tid, u8 *cam_idx)
{}

#define RTW89_TYPE_MAPPING(_type)
void rtw89_vif_type_mapping(struct ieee80211_vif *vif, bool assoc)
{}

int rtw89_core_sta_add(struct rtw89_dev *rtwdev,
		       struct ieee80211_vif *vif,
		       struct ieee80211_sta *sta)
{}

int rtw89_core_sta_disassoc(struct rtw89_dev *rtwdev,
			    struct ieee80211_vif *vif,
			    struct ieee80211_sta *sta)
{}

int rtw89_core_sta_disconnect(struct rtw89_dev *rtwdev,
			      struct ieee80211_vif *vif,
			      struct ieee80211_sta *sta)
{}

int rtw89_core_sta_assoc(struct rtw89_dev *rtwdev,
			 struct ieee80211_vif *vif,
			 struct ieee80211_sta *sta)
{}

int rtw89_core_sta_remove(struct rtw89_dev *rtwdev,
			  struct ieee80211_vif *vif,
			  struct ieee80211_sta *sta)
{}

static void _rtw89_core_set_tid_config(struct rtw89_dev *rtwdev,
				       struct ieee80211_sta *sta,
				       struct cfg80211_tid_cfg *tid_conf)
{}

void rtw89_core_set_tid_config(struct rtw89_dev *rtwdev,
			       struct ieee80211_sta *sta,
			       struct cfg80211_tid_config *tid_config)
{}

static void rtw89_init_ht_cap(struct rtw89_dev *rtwdev,
			      struct ieee80211_sta_ht_cap *ht_cap)
{}

static void rtw89_init_vht_cap(struct rtw89_dev *rtwdev,
			       struct ieee80211_sta_vht_cap *vht_cap)
{}

static void rtw89_init_he_cap(struct rtw89_dev *rtwdev,
			      enum nl80211_band band,
			      enum nl80211_iftype iftype,
			      struct ieee80211_sband_iftype_data *iftype_data)
{}

static void rtw89_init_eht_cap(struct rtw89_dev *rtwdev,
			       enum nl80211_band band,
			       enum nl80211_iftype iftype,
			       struct ieee80211_sband_iftype_data *iftype_data)
{}

#define RTW89_SBAND_IFTYPES_NR

static void rtw89_init_he_eht_cap(struct rtw89_dev *rtwdev,
				  enum nl80211_band band,
				  struct ieee80211_supported_band *sband)
{}

static int rtw89_core_set_supported_band(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_clr_supported_band(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_ppdu_sts_init(struct rtw89_dev *rtwdev)
{}

void rtw89_core_update_beacon_work(struct work_struct *work)
{}

int rtw89_wait_for_cond(struct rtw89_wait_info *wait, unsigned int cond)
{}

void rtw89_complete_cond(struct rtw89_wait_info *wait, unsigned int cond,
			 const struct rtw89_completion_data *data)
{}

void rtw89_core_ntfy_btc_event(struct rtw89_dev *rtwdev, enum rtw89_btc_hmsg event)
{}

void rtw89_check_quirks(struct rtw89_dev *rtwdev, const struct dmi_system_id *quirks)
{}
EXPORT_SYMBOL();

int rtw89_core_start(struct rtw89_dev *rtwdev)
{}

void rtw89_core_stop(struct rtw89_dev *rtwdev)
{}

u8 rtw89_acquire_mac_id(struct rtw89_dev *rtwdev)
{}

void rtw89_release_mac_id(struct rtw89_dev *rtwdev, u8 mac_id)
{}

int rtw89_core_init(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

void rtw89_core_deinit(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

void rtw89_core_scan_start(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
			   const u8 *mac_addr, bool hw_scan)
{}

void rtw89_core_scan_complete(struct rtw89_dev *rtwdev,
			      struct ieee80211_vif *vif, bool hw_scan)
{}

static void rtw89_read_chip_ver(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_setup_phycap(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_setup_rfe_parms(struct rtw89_dev *rtwdev)
{}

static int rtw89_chip_efuse_info_setup(struct rtw89_dev *rtwdev)
{}

static int rtw89_chip_board_info_setup(struct rtw89_dev *rtwdev)
{}

static bool rtw89_chip_has_rfkill(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_rfkill_init(struct rtw89_dev *rtwdev)
{}

static bool rtw89_core_rfkill_get(struct rtw89_dev *rtwdev)
{}

static void rtw89_rfkill_polling_init(struct rtw89_dev *rtwdev)
{}

static void rtw89_rfkill_polling_deinit(struct rtw89_dev *rtwdev)
{}

void rtw89_core_rfkill_poll(struct rtw89_dev *rtwdev, bool force)
{}

int rtw89_chip_info_setup(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

static int rtw89_core_register_hw(struct rtw89_dev *rtwdev)
{}

static void rtw89_core_unregister_hw(struct rtw89_dev *rtwdev)
{}

int rtw89_core_register(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

void rtw89_core_unregister(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

struct rtw89_dev *rtw89_alloc_ieee80211_hw(struct device *device,
					   u32 bus_data_size,
					   const struct rtw89_chip_info *chip)
{}
EXPORT_SYMBOL();

void rtw89_free_ieee80211_hw(struct rtw89_dev *rtwdev)
{}
EXPORT_SYMBOL();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();