#include <linux/devcoredump.h>
#include "main.h"
#include "regd.h"
#include "fw.h"
#include "ps.h"
#include "sec.h"
#include "mac.h"
#include "coex.h"
#include "phy.h"
#include "reg.h"
#include "efuse.h"
#include "tx.h"
#include "debug.h"
#include "bf.h"
#include "sar.h"
#include "sdio.h"
bool rtw_disable_lps_deep_mode;
EXPORT_SYMBOL(…);
bool rtw_bf_support = …;
unsigned int rtw_debug_mask;
EXPORT_SYMBOL(…);
bool rtw_edcca_enabled = …;
module_param_named(disable_lps_deep, rtw_disable_lps_deep_mode, bool, 0644);
module_param_named(support_bf, rtw_bf_support, bool, 0644);
module_param_named(debug_mask, rtw_debug_mask, uint, 0644);
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
static struct ieee80211_channel rtw_channeltable_2g[] = …;
static struct ieee80211_channel rtw_channeltable_5g[] = …;
static struct ieee80211_rate rtw_ratetable[] = …;
static const struct ieee80211_iface_limit rtw_iface_limits[] = …;
static const struct ieee80211_iface_combination rtw_iface_combs[] = …;
u16 rtw_desc_to_bitrate(u8 desc_rate)
{ … }
static struct ieee80211_supported_band rtw_band_2ghz = …;
static struct ieee80211_supported_band rtw_band_5ghz = …;
struct rtw_watch_dog_iter_data { … };
static void rtw_dynamic_csi_rate(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif)
{ … }
static void rtw_vif_watch_dog_iter(void *data, struct ieee80211_vif *vif)
{ … }
static void rtw_watch_dog_work(struct work_struct *work)
{ … }
static void rtw_c2h_work(struct work_struct *work)
{ … }
static void rtw_ips_work(struct work_struct *work)
{ … }
static void rtw_sta_rc_work(struct work_struct *work)
{ … }
int rtw_sta_add(struct rtw_dev *rtwdev, struct ieee80211_sta *sta,
struct ieee80211_vif *vif)
{ … }
void rtw_sta_remove(struct rtw_dev *rtwdev, struct ieee80211_sta *sta,
bool fw_exist)
{ … }
struct rtw_fwcd_hdr { … } __packed;
static int rtw_fwcd_prep(struct rtw_dev *rtwdev)
{ … }
static u8 *rtw_fwcd_next(struct rtw_dev *rtwdev, u32 item, u32 size)
{ … }
static void rtw_fwcd_dump(struct rtw_dev *rtwdev)
{ … }
static void rtw_fwcd_free(struct rtw_dev *rtwdev, bool free_self)
{ … }
static int rtw_fw_dump_crash_log(struct rtw_dev *rtwdev)
{ … }
int rtw_dump_fw(struct rtw_dev *rtwdev, const u32 ocp_src, u32 size,
u32 fwcd_item)
{ … }
EXPORT_SYMBOL(…);
int rtw_dump_reg(struct rtw_dev *rtwdev, const u32 addr, const u32 size)
{ … }
EXPORT_SYMBOL(…);
void rtw_vif_assoc_changed(struct rtw_vif *rtwvif,
struct ieee80211_bss_conf *conf)
{ … }
static void rtw_reset_key_iter(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key,
void *data)
{ … }
static void rtw_reset_sta_iter(void *data, struct ieee80211_sta *sta)
{ … }
static void rtw_reset_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif)
{ … }
void rtw_fw_recovery(struct rtw_dev *rtwdev)
{ … }
static void __fw_recovery_work(struct rtw_dev *rtwdev)
{ … }
static void rtw_fw_recovery_work(struct work_struct *work)
{ … }
struct rtw_txq_ba_iter_data { … };
static void rtw_txq_ba_iter(void *data, struct ieee80211_sta *sta)
{ … }
static void rtw_txq_ba_work(struct work_struct *work)
{ … }
void rtw_set_rx_freq_band(struct rtw_rx_pkt_stat *pkt_stat, u8 channel)
{ … }
EXPORT_SYMBOL(…);
void rtw_set_dtim_period(struct rtw_dev *rtwdev, int dtim_period)
{ … }
void rtw_update_channel(struct rtw_dev *rtwdev, u8 center_channel,
u8 primary_channel, enum rtw_supported_band band,
enum rtw_bandwidth bandwidth)
{ … }
void rtw_get_channel_params(struct cfg80211_chan_def *chandef,
struct rtw_channel_params *chan_params)
{ … }
void rtw_set_channel(struct rtw_dev *rtwdev)
{ … }
void rtw_chip_prepare_tx(struct rtw_dev *rtwdev)
{ … }
static void rtw_vif_write_addr(struct rtw_dev *rtwdev, u32 start, u8 *addr)
{ … }
void rtw_vif_port_config(struct rtw_dev *rtwdev,
struct rtw_vif *rtwvif,
u32 config)
{ … }
static u8 hw_bw_cap_to_bitamp(u8 bw_cap)
{ … }
static void rtw_hw_config_rf_ant_num(struct rtw_dev *rtwdev, u8 hw_ant_num)
{ … }
static u64 get_vht_ra_mask(struct ieee80211_sta *sta)
{ … }
static u8 get_rate_id(u8 wireless_set, enum rtw_bandwidth bw_mode, u8 tx_num)
{ … }
#define RA_MASK_CCK_RATES …
#define RA_MASK_OFDM_RATES …
#define RA_MASK_HT_RATES_1SS …
#define RA_MASK_HT_RATES_2SS …
#define RA_MASK_HT_RATES_3SS …
#define RA_MASK_HT_RATES …
#define RA_MASK_VHT_RATES_1SS …
#define RA_MASK_VHT_RATES_2SS …
#define RA_MASK_VHT_RATES_3SS …
#define RA_MASK_VHT_RATES …
#define RA_MASK_CCK_IN_BG …
#define RA_MASK_CCK_IN_HT …
#define RA_MASK_CCK_IN_VHT …
#define RA_MASK_OFDM_IN_VHT …
#define RA_MASK_OFDM_IN_HT_2G …
#define RA_MASK_OFDM_IN_HT_5G …
static u64 rtw_rate_mask_rssi(struct rtw_sta_info *si, u8 wireless_set)
{ … }
static u64 rtw_rate_mask_recover(u64 ra_mask, u64 ra_mask_bak)
{ … }
static u64 rtw_rate_mask_cfg(struct rtw_dev *rtwdev, struct rtw_sta_info *si,
u64 ra_mask, bool is_vht_enable)
{ … }
void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si,
bool reset_ra_mask)
{ … }
static int rtw_wait_firmware_completion(struct rtw_dev *rtwdev)
{ … }
static enum rtw_lps_deep_mode rtw_update_lps_deep_mode(struct rtw_dev *rtwdev,
struct rtw_fw_state *fw)
{ … }
static int rtw_power_on(struct rtw_dev *rtwdev)
{ … }
void rtw_core_fw_scan_notify(struct rtw_dev *rtwdev, bool start)
{ … }
void rtw_core_scan_start(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif,
const u8 *mac_addr, bool hw_scan)
{ … }
void rtw_core_scan_complete(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
bool hw_scan)
{ … }
int rtw_core_start(struct rtw_dev *rtwdev)
{ … }
static void rtw_power_off(struct rtw_dev *rtwdev)
{ … }
void rtw_core_stop(struct rtw_dev *rtwdev)
{ … }
static void rtw_init_ht_cap(struct rtw_dev *rtwdev,
struct ieee80211_sta_ht_cap *ht_cap)
{ … }
static void rtw_init_vht_cap(struct rtw_dev *rtwdev,
struct ieee80211_sta_vht_cap *vht_cap)
{ … }
static u16 rtw_get_max_scan_ie_len(struct rtw_dev *rtwdev)
{ … }
static void rtw_set_supported_band(struct ieee80211_hw *hw,
const struct rtw_chip_info *chip)
{ … }
static void rtw_unset_supported_band(struct ieee80211_hw *hw,
const struct rtw_chip_info *chip)
{ … }
static void rtw_vif_smps_iter(void *data, u8 *mac,
struct ieee80211_vif *vif)
{ … }
void rtw_set_txrx_1ss(struct rtw_dev *rtwdev, bool txrx_1ss)
{ … }
static void __update_firmware_feature(struct rtw_dev *rtwdev,
struct rtw_fw_state *fw)
{ … }
static void __update_firmware_info(struct rtw_dev *rtwdev,
struct rtw_fw_state *fw)
{ … }
static void __update_firmware_info_legacy(struct rtw_dev *rtwdev,
struct rtw_fw_state *fw)
{ … }
static void update_firmware_info(struct rtw_dev *rtwdev,
struct rtw_fw_state *fw)
{ … }
static void rtw_load_firmware_cb(const struct firmware *firmware, void *context)
{ … }
static int rtw_load_firmware(struct rtw_dev *rtwdev, enum rtw_fw_type type)
{ … }
static int rtw_chip_parameter_setup(struct rtw_dev *rtwdev)
{ … }
static int rtw_chip_efuse_enable(struct rtw_dev *rtwdev)
{ … }
static int rtw_dump_hw_feature(struct rtw_dev *rtwdev)
{ … }
static void rtw_chip_efuse_disable(struct rtw_dev *rtwdev)
{ … }
static int rtw_chip_efuse_info_setup(struct rtw_dev *rtwdev)
{ … }
static int rtw_chip_board_info_setup(struct rtw_dev *rtwdev)
{ … }
int rtw_chip_info_setup(struct rtw_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
static void rtw_stats_init(struct rtw_dev *rtwdev)
{ … }
int rtw_core_init(struct rtw_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
void rtw_core_deinit(struct rtw_dev *rtwdev)
{ … }
EXPORT_SYMBOL(…);
int rtw_register_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw)
{ … }
EXPORT_SYMBOL(…);
void rtw_unregister_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw)
{ … }
EXPORT_SYMBOL(…);
static
void rtw_swap_reg_nbytes(struct rtw_dev *rtwdev, const struct rtw_hw_reg *reg1,
const struct rtw_hw_reg *reg2, u8 nbytes)
{ … }
static
void rtw_swap_reg_mask(struct rtw_dev *rtwdev, const struct rtw_hw_reg *reg1,
const struct rtw_hw_reg *reg2)
{ … }
struct rtw_iter_port_switch_data { … };
static void rtw_port_switch_iter(void *data, struct ieee80211_vif *vif)
{ … }
void rtw_core_port_switch(struct rtw_dev *rtwdev, struct ieee80211_vif *vif)
{ … }
static void rtw_check_sta_active_iter(void *data, struct ieee80211_vif *vif)
{ … }
bool rtw_core_check_sta_active(struct rtw_dev *rtwdev)
{ … }
void rtw_core_enable_beacon(struct rtw_dev *rtwdev, bool enable)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;