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

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

#include "coex.h"
#include "debug.h"
#include "efuse.h"
#include "fw.h"
#include "mac.h"
#include "phy.h"
#include "reg.h"
#include "rtw8922a.h"
#include "rtw8922a_rfk.h"
#include "util.h"

#define RTW8922A_FW_FORMAT_MAX
#define RTW8922A_FW_BASENAME
#define RTW8922A_MODULE_FIRMWARE

#define HE_N_USER_MAX_8922A

static const struct rtw89_hfc_ch_cfg rtw8922a_hfc_chcfg_pcie[] =;

static const struct rtw89_hfc_pub_cfg rtw8922a_hfc_pubcfg_pcie =;

static const struct rtw89_hfc_param_ini rtw8922a_hfc_param_ini_pcie[] =;

static const struct rtw89_dle_mem rtw8922a_dle_mem_pcie[] =;

static const u32 rtw8922a_h2c_regs[RTW89_H2CREG_MAX] =;

static const u32 rtw8922a_c2h_regs[RTW89_H2CREG_MAX] =;

static const u32 rtw8922a_wow_wakeup_regs[RTW89_WOW_REASON_NUM] =;

static const struct rtw89_page_regs rtw8922a_page_regs =;

static const struct rtw89_reg_imr rtw8922a_imr_dmac_regs[] =;

static const struct rtw89_imr_table rtw8922a_imr_dmac_table =;

static const struct rtw89_reg_imr rtw8922a_imr_cmac_regs[] =;

static const struct rtw89_imr_table rtw8922a_imr_cmac_table =;

static const struct rtw89_rrsr_cfgs rtw8922a_rrsr_cfgs =;

static const struct rtw89_rfkill_regs rtw8922a_rfkill_regs =;

static const struct rtw89_dig_regs rtw8922a_dig_regs =;

static const struct rtw89_edcca_regs rtw8922a_edcca_regs =;

static const struct rtw89_efuse_block_cfg rtw8922a_efuse_blocks[] =;

static void rtw8922a_ctrl_btg_bt_rx(struct rtw89_dev *rtwdev, bool en,
				    enum rtw89_phy_idx phy_idx)
{}

static int rtw8922a_pwr_on_func(struct rtw89_dev *rtwdev)
{}

static int rtw8922a_pwr_off_func(struct rtw89_dev *rtwdev)
{}

static void rtw8922a_efuse_parsing_tssi(struct rtw89_dev *rtwdev,
					struct rtw8922a_efuse *map)
{}

static void rtw8922a_efuse_parsing_gain_offset(struct rtw89_dev *rtwdev,
					       struct rtw8922a_efuse *map)
{}

static void rtw8922a_read_efuse_mac_addr(struct rtw89_dev *rtwdev, u32 addr)
{}

static int rtw8922a_read_efuse_pci_sdio(struct rtw89_dev *rtwdev, u8 *log_map)
{}

static int rtw8922a_read_efuse_usb(struct rtw89_dev *rtwdev, u8 *log_map)
{}

static int rtw8922a_read_efuse_rf(struct rtw89_dev *rtwdev, u8 *log_map)
{}

static int rtw8922a_read_efuse(struct rtw89_dev *rtwdev, u8 *log_map,
			       enum rtw89_efuse_block block)
{}

#define THM_TRIM_POSITIVE_MASK
#define THM_TRIM_MAGNITUDE_MASK

static void rtw8922a_phycap_parsing_thermal_trim(struct rtw89_dev *rtwdev,
						 u8 *phycap_map)
{}

static void rtw8922a_phycap_parsing_pa_bias_trim(struct rtw89_dev *rtwdev,
						 u8 *phycap_map)
{}

static void rtw8922a_pa_bias_trim(struct rtw89_dev *rtwdev)
{}

static void rtw8922a_phycap_parsing_pad_bias_trim(struct rtw89_dev *rtwdev,
						  u8 *phycap_map)
{}

static void rtw8922a_pad_bias_trim(struct rtw89_dev *rtwdev)
{}

static int rtw8922a_read_phycap(struct rtw89_dev *rtwdev, u8 *phycap_map)
{}

static void rtw8922a_power_trim(struct rtw89_dev *rtwdev)
{}

static void rtw8922a_set_channel_mac(struct rtw89_dev *rtwdev,
				     const struct rtw89_chan *chan,
				     u8 mac_idx)
{}

static const u32 rtw8922a_sco_barker_threshold[14] =;

static const u32 rtw8922a_sco_cck_threshold[14] =;

static int rtw8922a_ctrl_sco_cck(struct rtw89_dev *rtwdev,
				 u8 primary_ch, enum rtw89_bandwidth bw,
				 enum rtw89_phy_idx phy_idx)
{}

struct rtw8922a_bb_gain {};

static const struct rtw89_reg_def rpl_comp_bw160[RTW89_BW20_SC_160M] =;

static const struct rtw89_reg_def rpl_comp_bw80[RTW89_BW20_SC_80M] =;

static const struct rtw89_reg_def rpl_comp_bw40[RTW89_BW20_SC_40M] =;

static const struct rtw89_reg_def rpl_comp_bw20[RTW89_BW20_SC_20M] =;

static const struct rtw8922a_bb_gain bb_gain_lna[LNA_GAIN_NUM] =;

static const struct rtw8922a_bb_gain bb_gain_tia[TIA_GAIN_NUM] =;

struct rtw8922a_bb_gain_bypass {};

static void rtw8922a_set_rpl_gain(struct rtw89_dev *rtwdev,
				  const struct rtw89_chan *chan,
				  enum rtw89_rf_path path,
				  enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_lna_tia_gain(struct rtw89_dev *rtwdev,
				      const struct rtw89_chan *chan,
				      enum rtw89_rf_path path,
				      enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_gain(struct rtw89_dev *rtwdev,
			      const struct rtw89_chan *chan,
			      enum rtw89_rf_path path,
			      enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_rx_gain_normal_cck(struct rtw89_dev *rtwdev,
					    const struct rtw89_chan *chan,
					    enum rtw89_rf_path path)
{}

static void rtw8922a_set_rx_gain_normal_ofdm(struct rtw89_dev *rtwdev,
					     const struct rtw89_chan *chan,
					     enum rtw89_rf_path path)
{}

static void rtw8922a_set_rx_gain_normal(struct rtw89_dev *rtwdev,
					const struct rtw89_chan *chan,
					enum rtw89_rf_path path)
{}

static void rtw8922a_set_cck_parameters(struct rtw89_dev *rtwdev, u8 central_ch,
					enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_ctrl_ch(struct rtw89_dev *rtwdev,
			     const struct rtw89_chan *chan,
			     enum rtw89_phy_idx phy_idx)
{}

static void
rtw8922a_ctrl_bw(struct rtw89_dev *rtwdev, u8 pri_sb, u8 bw,
		 enum rtw89_phy_idx phy_idx)
{}

static u32 rtw8922a_spur_freq(struct rtw89_dev *rtwdev,
			      const struct rtw89_chan *chan)
{}

#define CARRIER_SPACING_312_5
#define CARRIER_SPACING_78_125
#define MAX_TONE_NUM

static void rtw8922a_set_csi_tone_idx(struct rtw89_dev *rtwdev,
				      const struct rtw89_chan *chan,
				      enum rtw89_phy_idx phy_idx)
{}

static const struct rtw89_nbi_reg_def rtw8922a_nbi_reg_def[] =;

static void rtw8922a_set_nbi_tone_idx(struct rtw89_dev *rtwdev,
				      const struct rtw89_chan *chan,
				      enum rtw89_rf_path path,
				      enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_spur_elimination(struct rtw89_dev *rtwdev,
				      const struct rtw89_chan *chan,
				      enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_ctrl_afe_dac(struct rtw89_dev *rtwdev, enum rtw89_bandwidth bw,
				  enum rtw89_rf_path path)
{}

static const struct rtw89_reg2_def bb_mcu0_init_reg[] =;

static const struct rtw89_reg2_def bb_mcu1_init_reg[] =;

static void rtw8922a_bbmcu_cr_init(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
{}

static const u32 dmac_sys_mask[2] =;
static const u32 bbrst_mask[2] =;
static const u32 glbrst_mask[2] =;
static const u32 mcu_bootrdy_mask[2] =;

static void rtw8922a_bb_preinit(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_bb_postinit(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_bb_reset_en(struct rtw89_dev *rtwdev, enum rtw89_band band,
				 bool en, enum rtw89_phy_idx phy_idx)
{}

static int rtw8922a_ctrl_tx_path_tmac(struct rtw89_dev *rtwdev,
				      enum rtw89_rf_path tx_path,
				      enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_bb_reset(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
{}

static int rtw8922a_cfg_rx_nss_limit(struct rtw89_dev *rtwdev, u8 rx_nss,
				     enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_tssi_reset(struct rtw89_dev *rtwdev,
				enum rtw89_rf_path path,
				enum rtw89_phy_idx phy_idx)
{}

static int rtw8922a_ctrl_rx_path_tmac(struct rtw89_dev *rtwdev,
				      enum rtw89_rf_path rx_path,
				      enum rtw89_phy_idx phy_idx)
{}

#define DIGITAL_PWR_COMP_REG_NUM
static const u32 rtw8922a_digital_pwr_comp_val[][DIGITAL_PWR_COMP_REG_NUM] =;

static void rtw8922a_set_digital_pwr_comp(struct rtw89_dev *rtwdev,
					  bool enable, u8 nss,
					  enum rtw89_rf_path path)
{}

static void rtw8922a_digital_pwr_comp(struct rtw89_dev *rtwdev,
				      enum rtw89_phy_idx phy_idx)
{}

static int rtw8922a_ctrl_mlo(struct rtw89_dev *rtwdev, enum rtw89_mlo_dbcc_mode mode)
{}

static void rtw8922a_bb_sethw(struct rtw89_dev *rtwdev)
{}

static void rtw8922a_ctrl_cck_en(struct rtw89_dev *rtwdev, bool cck_en,
				 enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_channel_bb(struct rtw89_dev *rtwdev,
				    const struct rtw89_chan *chan,
				    enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_pre_set_channel_bb(struct rtw89_dev *rtwdev,
					enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_post_set_channel_bb(struct rtw89_dev *rtwdev,
					 enum rtw89_mlo_dbcc_mode mode,
					 enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_channel(struct rtw89_dev *rtwdev,
				 const struct rtw89_chan *chan,
				 enum rtw89_mac_idx mac_idx,
				 enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_dfs_en_idx(struct rtw89_dev *rtwdev,
				enum rtw89_phy_idx phy_idx, enum rtw89_rf_path path,
				bool en)
{}

static void rtw8922a_dfs_en(struct rtw89_dev *rtwdev, bool en,
			    enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_adc_en_path(struct rtw89_dev *rtwdev,
				 enum rtw89_rf_path path, bool en)
{}

static void rtw8922a_adc_en(struct rtw89_dev *rtwdev, bool en, u8 phy_idx)
{}

static
void rtw8922a_hal_reset(struct rtw89_dev *rtwdev,
			enum rtw89_phy_idx phy_idx, enum rtw89_mac_idx mac_idx,
			enum rtw89_band band, u32 *tx_en, bool enter)
{}

static void rtw8922a_set_channel_help(struct rtw89_dev *rtwdev, bool enter,
				      struct rtw89_channel_help_params *p,
				      const struct rtw89_chan *chan,
				      enum rtw89_mac_idx mac_idx,
				      enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_rfk_init(struct rtw89_dev *rtwdev)
{}

static void rtw8922a_rfk_init_late(struct rtw89_dev *rtwdev)
{}

static void _wait_rx_mode(struct rtw89_dev *rtwdev, u8 kpath)
{}

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

static void rtw8922a_rfk_band_changed(struct rtw89_dev *rtwdev,
				      enum rtw89_phy_idx phy_idx,
				      const struct rtw89_chan *chan)
{}

static void rtw8922a_rfk_scan(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
			      bool start)
{}

static void rtw8922a_rfk_track(struct rtw89_dev *rtwdev)
{}

static void rtw8922a_set_txpwr_ref(struct rtw89_dev *rtwdev,
				   enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_bb_tx_triangular(struct rtw89_dev *rtwdev, bool en,
				      enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_tx_shape(struct rtw89_dev *rtwdev,
				  const struct rtw89_chan *chan,
				  enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_txpwr(struct rtw89_dev *rtwdev,
			       const struct rtw89_chan *chan,
			       enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_set_txpwr_ctrl(struct rtw89_dev *rtwdev,
				    enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_ctrl_trx_path(struct rtw89_dev *rtwdev,
				   enum rtw89_rf_path tx_path, u8 tx_nss,
				   enum rtw89_rf_path rx_path, u8 rx_nss)
{}

static void rtw8922a_ctrl_nbtg_bt_tx(struct rtw89_dev *rtwdev, bool en,
				     enum rtw89_phy_idx phy_idx)
{}

static void rtw8922a_bb_cfg_txrx_path(struct rtw89_dev *rtwdev)
{}

static u8 rtw8922a_get_thermal(struct rtw89_dev *rtwdev, enum rtw89_rf_path rf_path)
{}

static void rtw8922a_btc_set_rfe(struct rtw89_dev *rtwdev)
{}

static
void rtw8922a_set_trx_mask(struct rtw89_dev *rtwdev, u8 path, u8 group, u32 val)
{}

static void rtw8922a_btc_init_cfg(struct rtw89_dev *rtwdev)
{}

static void
rtw8922a_btc_set_wl_txpwr_ctrl(struct rtw89_dev *rtwdev, u32 txpwr_val)
{}

static
s8 rtw8922a_btc_get_bt_rssi(struct rtw89_dev *rtwdev, s8 val)
{}

static const struct rtw89_btc_rf_trx_para rtw89_btc_8922a_rf_ul[] =;

static const struct rtw89_btc_rf_trx_para rtw89_btc_8922a_rf_dl[] =;

static const u8 rtw89_btc_8922a_wl_rssi_thres[BTC_WL_RSSI_THMAX] =;
static const u8 rtw89_btc_8922a_bt_rssi_thres[BTC_BT_RSSI_THMAX] =;

static const struct rtw89_btc_fbtc_mreg rtw89_btc_8922a_mon_reg[] =;

static
void rtw8922a_btc_update_bt_cnt(struct rtw89_dev *rtwdev)
{}

static
void rtw8922a_btc_wl_s1_standby(struct rtw89_dev *rtwdev, bool state)
{}

static void rtw8922a_btc_set_wl_rx_gain(struct rtw89_dev *rtwdev, u32 level)
{}

static void rtw8922a_fill_freq_with_ppdu(struct rtw89_dev *rtwdev,
					 struct rtw89_rx_phy_ppdu *phy_ppdu,
					 struct ieee80211_rx_status *status)
{}

static void rtw8922a_query_ppdu(struct rtw89_dev *rtwdev,
				struct rtw89_rx_phy_ppdu *phy_ppdu,
				struct ieee80211_rx_status *status)
{}

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

static int rtw8922a_mac_enable_bb_rf(struct rtw89_dev *rtwdev)
{}

static int rtw8922a_mac_disable_bb_rf(struct rtw89_dev *rtwdev)
{}

#ifdef CONFIG_PM
static const struct wiphy_wowlan_support rtw_wowlan_stub_8922a =;
#endif

static const struct rtw89_chip_ops rtw8922a_chip_ops =;

const struct rtw89_chip_info rtw8922a_chip_info =;
EXPORT_SYMBOL();

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