#include <linux/module.h>
#include "main.h"
#include "coex.h"
#include "fw.h"
#include "tx.h"
#include "rx.h"
#include "phy.h"
#include "rtw8822b.h"
#include "rtw8822b_table.h"
#include "mac.h"
#include "reg.h"
#include "debug.h"
#include "bf.h"
#include "regd.h"
static void rtw8822b_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
u8 rx_path, bool is_tx2_path);
static void rtw8822be_efuse_parsing(struct rtw_efuse *efuse,
struct rtw8822b_efuse *map)
{ … }
static void rtw8822bu_efuse_parsing(struct rtw_efuse *efuse,
struct rtw8822b_efuse *map)
{ … }
static void rtw8822bs_efuse_parsing(struct rtw_efuse *efuse,
struct rtw8822b_efuse *map)
{ … }
static int rtw8822b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
{ … }
static void rtw8822b_phy_rfe_init(struct rtw_dev *rtwdev)
{ … }
#define RTW_TXSCALE_SIZE …
static const u32 rtw8822b_txscale_tbl[RTW_TXSCALE_SIZE] = …;
static u8 rtw8822b_get_swing_index(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_pwrtrack_init(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_phy_bf_init(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
{ … }
#define WLAN_SLOT_TIME …
#define WLAN_PIFS_TIME …
#define WLAN_SIFS_CCK_CONT_TX …
#define WLAN_SIFS_OFDM_CONT_TX …
#define WLAN_SIFS_CCK_TRX …
#define WLAN_SIFS_OFDM_TRX …
#define WLAN_VO_TXOP_LIMIT …
#define WLAN_VI_TXOP_LIMIT …
#define WLAN_RDG_NAV …
#define WLAN_TXOP_NAV …
#define WLAN_CCK_RX_TSF …
#define WLAN_OFDM_RX_TSF …
#define WLAN_TBTT_PROHIBIT …
#define WLAN_TBTT_HOLD_TIME …
#define WLAN_DRV_EARLY_INT …
#define WLAN_BCN_DMA_TIME …
#define WLAN_RX_FILTER0 …
#define WLAN_RX_FILTER2 …
#define WLAN_RCR_CFG …
#define WLAN_RXPKT_MAX_SZ …
#define WLAN_RXPKT_MAX_SZ_512 …
#define WLAN_AMPDU_MAX_TIME …
#define WLAN_RTS_LEN_TH …
#define WLAN_RTS_TX_TIME_TH …
#define WLAN_MAX_AGG_PKT_LIMIT …
#define WLAN_RTS_MAX_AGG_PKT_LIMIT …
#define FAST_EDCA_VO_TH …
#define FAST_EDCA_VI_TH …
#define FAST_EDCA_BE_TH …
#define FAST_EDCA_BK_TH …
#define WLAN_BAR_RETRY_LIMIT …
#define WLAN_RA_TRY_RATE_AGG_LIMIT …
#define WLAN_TX_FUNC_CFG1 …
#define WLAN_TX_FUNC_CFG2 …
#define WLAN_MAC_OPT_NORM_FUNC1 …
#define WLAN_MAC_OPT_LB_FUNC1 …
#define WLAN_MAC_OPT_FUNC2 …
#define WLAN_SIFS_CFG …
#define WLAN_TBTT_TIME …
#define WLAN_NAV_CFG …
#define WLAN_RX_TSF_CFG …
static int rtw8822b_mac_init(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_set_channel_rfe_efem(struct rtw_dev *rtwdev, u8 channel)
{ … }
static void rtw8822b_set_channel_rfe_ifem(struct rtw_dev *rtwdev, u8 channel)
{ … }
enum { … };
struct cca_ccut { … };
static const struct cca_ccut cca_ifem_ccut = …;
static const struct cca_ccut cca_efem_ccut = …;
static const struct cca_ccut cca_ifem_ccut_ext = …;
static void rtw8822b_get_cca_val(const struct cca_ccut *cca_ccut, u8 col,
u32 *reg82c, u32 *reg830, u32 *reg838)
{ … }
struct rtw8822b_rfe_info { … };
#define I2GE5G_CCUT(set_ch) …
#define IFEM_EXT_CCUT(set_ch) …
static const struct rtw8822b_rfe_info rtw8822b_rfe_info[] = …;
static void rtw8822b_set_channel_cca(struct rtw_dev *rtwdev, u8 channel, u8 bw,
const struct rtw8822b_rfe_info *rfe_info)
{ … }
static const u8 low_band[15] = …;
static const u8 middle_band[23] = …;
static const u8 high_band[15] = …;
static void rtw8822b_set_channel_rf(struct rtw_dev *rtwdev, u8 channel, u8 bw)
{ … }
static void rtw8822b_toggle_igi(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_set_channel_rxdfir(struct rtw_dev *rtwdev, u8 bw)
{ … }
static void rtw8822b_set_channel_bb(struct rtw_dev *rtwdev, u8 channel, u8 bw,
u8 primary_ch_idx)
{ … }
static void rtw8822b_set_channel(struct rtw_dev *rtwdev, u8 channel, u8 bw,
u8 primary_chan_idx)
{ … }
static void rtw8822b_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
u8 rx_path, bool is_tx2_path)
{ … }
static void query_phy_status_page0(struct rtw_dev *rtwdev, u8 *phy_status,
struct rtw_rx_pkt_stat *pkt_stat)
{ … }
static void query_phy_status_page1(struct rtw_dev *rtwdev, u8 *phy_status,
struct rtw_rx_pkt_stat *pkt_stat)
{ … }
static void query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status,
struct rtw_rx_pkt_stat *pkt_stat)
{ … }
static void rtw8822b_query_rx_desc(struct rtw_dev *rtwdev, u8 *rx_desc,
struct rtw_rx_pkt_stat *pkt_stat,
struct ieee80211_rx_status *rx_status)
{ … }
static void
rtw8822b_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs)
{ … }
static void rtw8822b_set_tx_power_index(struct rtw_dev *rtwdev)
{ … }
static bool rtw8822b_check_rf_path(u8 antenna)
{ … }
static int rtw8822b_set_antenna(struct rtw_dev *rtwdev,
u32 antenna_tx,
u32 antenna_rx)
{ … }
static void rtw8822b_cfg_ldo25(struct rtw_dev *rtwdev, bool enable)
{ … }
static void rtw8822b_false_alarm_statistics(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_do_iqk(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_phy_calibration(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_coex_cfg_init(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_coex_cfg_ant_switch(struct rtw_dev *rtwdev,
u8 ctrl_type, u8 pos_type)
{ … }
static void rtw8822b_coex_cfg_gnt_fix(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_coex_cfg_gnt_debug(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_coex_cfg_rfe_type(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_coex_cfg_wl_tx_power(struct rtw_dev *rtwdev, u8 wl_pwr)
{ … }
static void rtw8822b_coex_cfg_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain)
{ … }
static void rtw8822b_txagc_swing_offset(struct rtw_dev *rtwdev, u8 path,
u8 tx_pwr_idx_offset,
s8 *txagc_idx, u8 *swing_idx)
{ … }
static void rtw8822b_pwrtrack_set_pwr(struct rtw_dev *rtwdev, u8 path,
u8 pwr_idx_offset)
{ … }
static void rtw8822b_pwrtrack_set(struct rtw_dev *rtwdev, u8 path)
{ … }
static void rtw8822b_phy_pwrtrack_path(struct rtw_dev *rtwdev,
struct rtw_swing_table *swing_table,
u8 path)
{ … }
static void rtw8822b_phy_pwrtrack(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_pwr_track(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_bf_config_bfee_su(struct rtw_dev *rtwdev,
struct rtw_vif *vif,
struct rtw_bfee *bfee, bool enable)
{ … }
static void rtw8822b_bf_config_bfee_mu(struct rtw_dev *rtwdev,
struct rtw_vif *vif,
struct rtw_bfee *bfee, bool enable)
{ … }
static void rtw8822b_bf_config_bfee(struct rtw_dev *rtwdev, struct rtw_vif *vif,
struct rtw_bfee *bfee, bool enable)
{ … }
static void rtw8822b_adaptivity_init(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_adaptivity(struct rtw_dev *rtwdev)
{ … }
static void rtw8822b_fill_txdesc_checksum(struct rtw_dev *rtwdev,
struct rtw_tx_pkt_info *pkt_info,
u8 *txdesc)
{ … }
static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822b[] = …;
static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822b[] = …;
static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822b[] = …;
static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822b[] = …;
static const struct rtw_pwr_seq_cmd *card_enable_flow_8822b[] = …;
static const struct rtw_pwr_seq_cmd *card_disable_flow_8822b[] = …;
static const struct rtw_intf_phy_para usb2_param_8822b[] = …;
static const struct rtw_intf_phy_para usb3_param_8822b[] = …;
static const struct rtw_intf_phy_para pcie_gen1_param_8822b[] = …;
static const struct rtw_intf_phy_para pcie_gen2_param_8822b[] = …;
static const struct rtw_intf_phy_para_table phy_para_table_8822b = …;
static const struct rtw_rfe_def rtw8822b_rfe_defs[] = …;
static const struct rtw_hw_reg rtw8822b_dig[] = …;
static const struct rtw_ltecoex_addr rtw8822b_ltecoex_addr = …;
static const struct rtw_page_table page_table_8822b[] = …;
static const struct rtw_rqpn rqpn_table_8822b[] = …;
static struct rtw_prioq_addrs prioq_addrs_8822b = …;
static struct rtw_chip_ops rtw8822b_ops = …;
static const struct coex_table_para table_sant_8822b[] = …;
static const struct coex_table_para table_nsant_8822b[] = …;
static const struct coex_tdma_para tdma_sant_8822b[] = …;
static const struct coex_tdma_para tdma_nsant_8822b[] = …;
static const u8 wl_rssi_step_8822b[] = …;
static const u8 bt_rssi_step_8822b[] = …;
static const struct coex_rf_para rf_para_tx_8822b[] = …;
static const struct coex_rf_para rf_para_rx_8822b[] = …;
static const struct coex_5g_afh_map afh_5g_8822b[] = …;
static_assert(…);
static const u8
rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = …;
static const u8
rtw8822b_pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = …;
static const u8
rtw8822b_pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = …;
static const u8
rtw8822b_pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2gb_n[RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2gb_p[RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2ga_n[RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2ga_p[RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = …;
static const u8 rtw8822b_pwrtrk_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = …;
static const struct rtw_pwr_track_tbl rtw8822b_rtw_pwr_track_tbl = …;
static const struct rtw_reg_domain coex_info_hw_regs_8822b[] = …;
static struct rtw_hw_reg_offset rtw8822b_edcca_th[] = …;
const struct rtw_chip_info rtw8822b_hw_spec = …;
EXPORT_SYMBOL(…);
MODULE_FIRMWARE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;