linux/drivers/net/wireless/realtek/rtw88/rtw8822b.c

// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/* Copyright(c) 2018-2019  Realtek Corporation
 */

#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 =;

/* Shared-Antenna Coex Table */
static const struct coex_table_para table_sant_8822b[] =;

/* Non-Shared-Antenna Coex Table */
static const struct coex_table_para table_nsant_8822b[] =;

/* Shared-Antenna TDMA */
static const struct coex_tdma_para tdma_sant_8822b[] =;

/* Non-Shared-Antenna TDMA */
static const struct coex_tdma_para tdma_nsant_8822b[] =;

/* rssi in percentage % (dbm = % - 100) */
static const u8 wl_rssi_step_8822b[] =;
static const u8 bt_rssi_step_8822b[] =;

/* wl_tx_dec_power, bt_tx_dec_power, wl_rx_gain, bt_rx_lna_constrain */
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();