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

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

#include "coex.h"
#include "debug.h"
#include "mac.h"
#include "phy.h"
#include "reg.h"
#include "rtw8851b.h"
#include "rtw8851b_rfk.h"
#include "rtw8851b_rfk_table.h"
#include "rtw8851b_table.h"

#define DPK_VER_8851B
#define DPK_KIP_REG_NUM_8851B
#define DPK_RF_REG_NUM_8851B
#define DPK_KSET_NUM
#define RTW8851B_RXK_GROUP_NR
#define RTW8851B_RXK_GROUP_IDX_NR
#define RTW8851B_TXK_GROUP_NR
#define RTW8851B_IQK_VER
#define RTW8851B_IQK_SS
#define RTW8851B_LOK_GRAM
#define RTW8851B_TSSI_PATH_NR

#define _TSSI_DE_MASK

enum dpk_id {};

enum dpk_agc_step {};

enum rtw8851b_iqk_type {};

enum rf_mode {};

static const u32 _tssi_de_cck_long[RF_PATH_NUM_8851B] =;
static const u32 _tssi_de_cck_short[RF_PATH_NUM_8851B] =;
static const u32 _tssi_de_mcs_20m[RF_PATH_NUM_8851B] =;
static const u32 _tssi_de_mcs_40m[RF_PATH_NUM_8851B] =;
static const u32 _tssi_de_mcs_80m[RF_PATH_NUM_8851B] =;
static const u32 _tssi_de_mcs_80m_80m[RF_PATH_NUM_8851B] =;
static const u32 _tssi_de_mcs_5m[RF_PATH_NUM_8851B] =;
static const u32 _tssi_de_mcs_10m[RF_PATH_NUM_8851B] =;
static const u32 g_idxrxgain[RTW8851B_RXK_GROUP_NR] =;
static const u32 g_idxattc2[RTW8851B_RXK_GROUP_NR] =;
static const u32 g_idxrxagc[RTW8851B_RXK_GROUP_NR] =;
static const u32 a_idxrxgain[RTW8851B_RXK_GROUP_IDX_NR] =;
static const u32 a_idxattc2[RTW8851B_RXK_GROUP_IDX_NR] =;
static const u32 a_idxrxagc[RTW8851B_RXK_GROUP_IDX_NR] =;
static const u32 a_power_range[RTW8851B_TXK_GROUP_NR] =;
static const u32 a_track_range[RTW8851B_TXK_GROUP_NR] =;
static const u32 a_gain_bb[RTW8851B_TXK_GROUP_NR] =;
static const u32 a_itqt[RTW8851B_TXK_GROUP_NR] =;
static const u32 g_power_range[RTW8851B_TXK_GROUP_NR] =;
static const u32 g_track_range[RTW8851B_TXK_GROUP_NR] =;
static const u32 g_gain_bb[RTW8851B_TXK_GROUP_NR] =;
static const u32 g_itqt[RTW8851B_TXK_GROUP_NR] =;

static const u32 rtw8851b_backup_bb_regs[] =;
static const u32 rtw8851b_backup_rf_regs[] =;

#define BACKUP_BB_REGS_NR
#define BACKUP_RF_REGS_NR

static const u32 dpk_kip_reg[DPK_KIP_REG_NUM_8851B] =;
static const u32 dpk_rf_reg[DPK_RF_REG_NUM_8851B] =;

static void _set_ch(struct rtw89_dev *rtwdev, u32 val);

static u8 _rxk_5ghz_group_from_idx(u8 idx)
{}

static u8 _kpath(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
{}

static void _adc_fifo_rst(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			  u8 path)
{}

static void _rfk_rf_direct_cntrl(struct rtw89_dev *rtwdev,
				 enum rtw89_rf_path path, bool is_bybb)
{}

static void _rfk_drf_direct_cntrl(struct rtw89_dev *rtwdev,
				  enum rtw89_rf_path path, bool is_bybb)
{}

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

static void _dack_reset(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

static void _drck(struct rtw89_dev *rtwdev)
{}

static void _addck_backup(struct rtw89_dev *rtwdev)
{}

static void _addck_reload(struct rtw89_dev *rtwdev)
{}

static void _dack_backup_s0(struct rtw89_dev *rtwdev)
{}

static void _dack_reload_by_path(struct rtw89_dev *rtwdev,
				 enum rtw89_rf_path path, u8 index)
{}

static void _dack_reload(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

static void _addck(struct rtw89_dev *rtwdev)
{}

static void _new_dadck(struct rtw89_dev *rtwdev)
{}

static bool _dack_s0_poll(struct rtw89_dev *rtwdev)
{}

static void _dack_s0(struct rtw89_dev *rtwdev)
{}

static void _dack(struct rtw89_dev *rtwdev)
{}

static void _dack_dump(struct rtw89_dev *rtwdev)
{}

static void _dack_manual_off(struct rtw89_dev *rtwdev)
{}

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

static void _rx_dck_info(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			 enum rtw89_rf_path path, bool is_afe,
			 enum rtw89_chanctx_idx chanctx_idx)
{}

static void _rxbb_ofst_swap(struct rtw89_dev *rtwdev, enum rtw89_rf_path path, u8 rf_mode)
{}

static void _set_rx_dck(struct rtw89_dev *rtwdev, enum rtw89_rf_path path, u8 rf_mode)
{}

static void _rx_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, bool is_afe,
		    enum rtw89_chanctx_idx chanctx_idx)
{}

static void _iqk_sram(struct rtw89_dev *rtwdev, u8 path)
{}

static void _iqk_rxk_setting(struct rtw89_dev *rtwdev, u8 path)
{}

static bool _iqk_check_cal(struct rtw89_dev *rtwdev, u8 path)
{}

static bool _iqk_one_shot(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			  u8 path, u8 ktype)
{}

static bool _rxk_2g_group_sel(struct rtw89_dev *rtwdev,
			      enum rtw89_phy_idx phy_idx, u8 path)
{}

static bool _rxk_5g_group_sel(struct rtw89_dev *rtwdev,
			      enum rtw89_phy_idx phy_idx, u8 path)
{}

static bool _iqk_5g_nbrxk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			  u8 path)
{}

static bool _iqk_2g_nbrxk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			  u8 path)
{}

static void _iqk_rxclk_setting(struct rtw89_dev *rtwdev, u8 path)
{}

static bool _txk_5g_group_sel(struct rtw89_dev *rtwdev,
			      enum rtw89_phy_idx phy_idx, u8 path)
{}

static bool _txk_2g_group_sel(struct rtw89_dev *rtwdev,
			      enum rtw89_phy_idx phy_idx, u8 path)
{}

static bool _iqk_5g_nbtxk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			  u8 path)
{}

static bool _iqk_2g_nbtxk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			  u8 path)
{}

static bool _iqk_2g_lok(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			u8 path)
{}

static bool _iqk_5g_lok(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			u8 path)
{}

static void _iqk_txk_setting(struct rtw89_dev *rtwdev, u8 path)
{}

#define IQK_LOK_RETRY

static void _iqk_by_path(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			 u8 path)
{}

static void _rfk_backup_bb_reg(struct rtw89_dev *rtwdev,
			       u32 backup_bb_reg_val[])
{}

static void _rfk_backup_rf_reg(struct rtw89_dev *rtwdev,
			       u32 backup_rf_reg_val[], u8 rf_path)
{}

static void _rfk_restore_bb_reg(struct rtw89_dev *rtwdev,
				const u32 backup_bb_reg_val[])
{}

static void _rfk_restore_rf_reg(struct rtw89_dev *rtwdev,
				const u32 backup_rf_reg_val[], u8 rf_path)
{}

static void _iqk_get_ch_info(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			     u8 path, enum rtw89_chanctx_idx chanctx_idx)
{}

static void _iqk_start_iqk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
			   u8 path)
{}

static void _iqk_restore(struct rtw89_dev *rtwdev, u8 path)
{}

static void _iqk_afebb_restore(struct rtw89_dev *rtwdev,
			       enum rtw89_phy_idx phy_idx, u8 path)
{}

static void _iqk_preset(struct rtw89_dev *rtwdev, u8 path)
{}

static void _iqk_macbb_setting(struct rtw89_dev *rtwdev,
			       enum rtw89_phy_idx phy_idx, u8 path)
{}

static void _iqk_init(struct rtw89_dev *rtwdev)
{}

static void _doiqk(struct rtw89_dev *rtwdev, bool force,
		   enum rtw89_phy_idx phy_idx, u8 path,
		   enum rtw89_chanctx_idx chanctx_idx)
{}

static void _iqk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
		 bool force, enum rtw89_chanctx_idx chanctx_idx)
{}

static void _dpk_bkup_kip(struct rtw89_dev *rtwdev, const u32 *reg,
			  u32 reg_bkup[][DPK_KIP_REG_NUM_8851B], u8 path)
{}

static void _dpk_bkup_rf(struct rtw89_dev *rtwdev, const u32 *rf_reg,
			 u32 rf_bkup[][DPK_RF_REG_NUM_8851B], u8 path)
{}

static void _dpk_reload_kip(struct rtw89_dev *rtwdev, const u32 *reg,
			    u32 reg_bkup[][DPK_KIP_REG_NUM_8851B], u8 path)
{}

static void _dpk_reload_rf(struct rtw89_dev *rtwdev, const u32 *rf_reg,
			   u32 rf_bkup[][DPK_RF_REG_NUM_8851B], u8 path)
{}

static void _dpk_one_shot(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			  enum rtw89_rf_path path, enum dpk_id id)
{}

static void _dpk_onoff(struct rtw89_dev *rtwdev, enum rtw89_rf_path path,
		       bool off)
{}

static void _dpk_init(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

static void _dpk_information(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			     enum rtw89_rf_path path, enum rtw89_chanctx_idx chanctx_idx)
{}

static void _dpk_rxagc_onoff(struct rtw89_dev *rtwdev, enum rtw89_rf_path path,
			     bool turn_on)
{}

static void _dpk_bb_afe_setting(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

static void _dpk_bb_afe_restore(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

static void _dpk_tssi_pause(struct rtw89_dev *rtwdev, enum rtw89_rf_path path,
			    bool is_pause)
{}

static void _dpk_tpg_sel(struct rtw89_dev *rtwdev, enum rtw89_rf_path path, u8 kidx)
{}

static void _dpk_txpwr_bb_force(struct rtw89_dev *rtwdev,
				enum rtw89_rf_path path, bool force)
{}

static void _dpk_kip_pwr_clk_onoff(struct rtw89_dev *rtwdev, bool turn_on)
{}

static void _dpk_kip_control_rfc(struct rtw89_dev *rtwdev,
				 enum rtw89_rf_path path, bool ctrl_by_kip)
{}

static void _dpk_kip_preset(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			    enum rtw89_rf_path path, u8 kidx)
{}

static void _dpk_kip_restore(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			     enum rtw89_rf_path path)
{}

static void _dpk_kset_query(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

static void _dpk_para_query(struct rtw89_dev *rtwdev, enum rtw89_rf_path path, u8 kidx)
{}

static bool _dpk_sync_check(struct rtw89_dev *rtwdev, enum rtw89_rf_path path, u8 kidx)
{}

static void _dpk_kip_set_txagc(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			       enum rtw89_rf_path path, u8 dbm,
			       bool set_from_bb)
{}

static bool _dpk_kip_set_rxagc(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			       enum rtw89_rf_path path, u8 kidx)
{}

static void _dpk_lbk_rxiqk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			   enum rtw89_rf_path path)
{}

static void _dpk_rf_setting(struct rtw89_dev *rtwdev, enum rtw89_rf_path path, u8 kidx)
{}

static void _dpk_bypass_rxiqc(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

static u16 _dpk_dgain_read(struct rtw89_dev *rtwdev)
{}

static u8 _dpk_gainloss_read(struct rtw89_dev *rtwdev)
{}

static u8 _dpk_gainloss(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			enum rtw89_rf_path path, u8 kidx)
{}

static u8 _dpk_pas_read(struct rtw89_dev *rtwdev, u8 is_check)
{}

static u8 _dpk_agc(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
		   enum rtw89_rf_path path, u8 kidx, u8 init_xdbm, u8 loss_only)
{}

static void _dpk_set_mdpd_para(struct rtw89_dev *rtwdev, u8 order)
{}

static void _dpk_idl_mpa(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			 enum rtw89_rf_path path, u8 kidx)
{}

static u8 _dpk_order_convert(struct rtw89_dev *rtwdev)
{}

static void _dpk_gain_normalize(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
				enum rtw89_rf_path path, u8 kidx, bool is_execute)
{}

static void _dpk_on(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
		    enum rtw89_rf_path path, u8 kidx)
{}

static bool _dpk_main(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
		      enum rtw89_rf_path path)
{}

static void _dpk_cal_select(struct rtw89_dev *rtwdev, bool force,
			    enum rtw89_phy_idx phy, u8 kpath,
			    enum rtw89_chanctx_idx chanctx_idx)
{}

static void _dpk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, bool force,
		 enum rtw89_chanctx_idx chanctx_idx)
{}

static void _dpk_track(struct rtw89_dev *rtwdev)
{}

static void _rck(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

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

static void _tssi_ini_txpwr_ctrl_bb(struct rtw89_dev *rtwdev,
				    enum rtw89_phy_idx phy,
				    enum rtw89_rf_path path)
{}

static void _tssi_ini_txpwr_ctrl_bb_he_tb(struct rtw89_dev *rtwdev,
					  enum rtw89_phy_idx phy,
					  enum rtw89_rf_path path)
{}

static void _tssi_set_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			  enum rtw89_rf_path path)
{}

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

static void _tssi_set_dac_gain_tbl(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
				   enum rtw89_rf_path path)
{}

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

static void _tssi_alignment_default(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
				    enum rtw89_rf_path path, bool all,
				    const struct rtw89_chan *chan)
{}

static void _tssi_set_tssi_slope(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
				 enum rtw89_rf_path path)
{}

static void _tssi_set_tssi_track(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
				 enum rtw89_rf_path path)
{}

static void _tssi_set_txagc_offset_mv_avg(struct rtw89_dev *rtwdev,
					  enum rtw89_phy_idx phy,
					  enum rtw89_rf_path path)
{}

static void _tssi_enable(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy)
{}

static void _tssi_disable(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy)
{}

static u32 _tssi_get_cck_group(struct rtw89_dev *rtwdev, u8 ch)
{}

#define TSSI_EXTRA_GROUP_BIT
#define TSSI_EXTRA_GROUP(idx)
#define IS_TSSI_EXTRA_GROUP(group)
#define TSSI_EXTRA_GET_GROUP_IDX1(group)
#define TSSI_EXTRA_GET_GROUP_IDX2(group)

static u32 _tssi_get_ofdm_group(struct rtw89_dev *rtwdev, u8 ch)
{}

static u32 _tssi_get_trim_group(struct rtw89_dev *rtwdev, u8 ch)
{}

static s8 _tssi_get_ofdm_de(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			    enum rtw89_rf_path path, const struct rtw89_chan *chan)
{}

static s8 _tssi_get_ofdm_trim_de(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
				 enum rtw89_rf_path path, const struct rtw89_chan *chan)
{}

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

static void _tssi_alimentk_dump_result(struct rtw89_dev *rtwdev, enum rtw89_rf_path path)
{}

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

static void rtw8851b_by_rate_dpd(struct rtw89_dev *rtwdev)
{}

void rtw8851b_dpk_init(struct rtw89_dev *rtwdev)
{}

void rtw8851b_aack(struct rtw89_dev *rtwdev)
{}

static void _lck_keep_thermal(struct rtw89_dev *rtwdev)
{}

static void rtw8851b_lck(struct rtw89_dev *rtwdev)
{}

#define RTW8851B_LCK_TH

void rtw8851b_lck_track(struct rtw89_dev *rtwdev)
{}

void rtw8851b_lck_init(struct rtw89_dev *rtwdev)
{}

void rtw8851b_rck(struct rtw89_dev *rtwdev)
{}

void rtw8851b_dack(struct rtw89_dev *rtwdev)
{}

void rtw8851b_iqk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
		  enum rtw89_chanctx_idx chanctx_idx)
{}

void rtw8851b_rx_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
		     enum rtw89_chanctx_idx chanctx_idx)
{}

void rtw8851b_dpk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx,
		  enum rtw89_chanctx_idx chanctx_idx)
{}

void rtw8851b_dpk_track(struct rtw89_dev *rtwdev)
{}

void rtw8851b_tssi(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
		   bool hwtx_en, enum rtw89_chanctx_idx chanctx_idx)
{}

void rtw8851b_tssi_scan(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
			const struct rtw89_chan *chan)
{}

static void rtw8851b_tssi_default_txagc(struct rtw89_dev *rtwdev,
					enum rtw89_phy_idx phy, bool enable,
					enum rtw89_chanctx_idx chanctx_idx)
{}

void rtw8851b_wifi_scan_notify(struct rtw89_dev *rtwdev, bool scan_start,
			       enum rtw89_phy_idx phy_idx,
			       enum rtw89_chanctx_idx chanctx_idx)
{}

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

static void _ctrl_bw(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
		     enum rtw89_bandwidth bw)
{}

static bool _set_s0_arfc18(struct rtw89_dev *rtwdev, u32 val)
{}

static void _lck_check(struct rtw89_dev *rtwdev)
{}

static void _set_ch(struct rtw89_dev *rtwdev, u32 val)
{}

static void _ch_setting(struct rtw89_dev *rtwdev, enum rtw89_rf_path path,
			u8 central_ch, bool dav)
{}

static void _ctrl_ch(struct rtw89_dev *rtwdev, u8 central_ch)
{}

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

static void _rxbb_bw(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
		     enum rtw89_bandwidth bw)
{}

static void rtw8851b_ctrl_bw_ch(struct rtw89_dev *rtwdev,
				enum rtw89_phy_idx phy, u8 central_ch,
				enum rtw89_band band, enum rtw89_bandwidth bw)
{}

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