mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
wifi: rtw88: Move pwr_track_tbl to struct rtw_rfe_def
RTL8812AU uses one set of TX power tracking tables for RFE 3, and another set for everything else. Move pwr_track_tbl from struct rtw_chip_info to struct rtw_rfe_def in order to load the right set of tables for each RFE (RF front end) type. Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/904d0ab1-c046-40cd-a3a3-d4fdcf663c9d@gmail.com
This commit is contained in:
parent
82a617413e
commit
67d915604e
8 changed files with 47 additions and 46 deletions
|
@ -1099,17 +1099,20 @@ enum rtw_rfe_fem {
|
|||
struct rtw_rfe_def {
|
||||
const struct rtw_table *phy_pg_tbl;
|
||||
const struct rtw_table *txpwr_lmt_tbl;
|
||||
const struct rtw_pwr_track_tbl *pwr_track_tbl;
|
||||
const struct rtw_table *agc_btg_tbl;
|
||||
};
|
||||
|
||||
#define RTW_DEF_RFE(chip, bb_pg, pwrlmt) { \
|
||||
#define RTW_DEF_RFE(chip, bb_pg, pwrlmt, track) { \
|
||||
.phy_pg_tbl = &rtw ## chip ## _bb_pg_type ## bb_pg ## _tbl, \
|
||||
.txpwr_lmt_tbl = &rtw ## chip ## _txpwr_lmt_type ## pwrlmt ## _tbl, \
|
||||
.pwr_track_tbl = &rtw ## chip ## _pwr_track_type ## track ## _tbl, \
|
||||
}
|
||||
|
||||
#define RTW_DEF_RFE_EXT(chip, bb_pg, pwrlmt, btg) { \
|
||||
#define RTW_DEF_RFE_EXT(chip, bb_pg, pwrlmt, track, btg) { \
|
||||
.phy_pg_tbl = &rtw ## chip ## _bb_pg_type ## bb_pg ## _tbl, \
|
||||
.txpwr_lmt_tbl = &rtw ## chip ## _txpwr_lmt_type ## pwrlmt ## _tbl, \
|
||||
.pwr_track_tbl = &rtw ## chip ## _pwr_track_type ## track ## _tbl, \
|
||||
.agc_btg_tbl = &rtw ## chip ## _agc_btg_type ## btg ## _tbl, \
|
||||
}
|
||||
|
||||
|
@ -1243,7 +1246,6 @@ struct rtw_chip_info {
|
|||
u16 dpd_ratemask;
|
||||
u8 iqk_threshold;
|
||||
u8 lck_threshold;
|
||||
const struct rtw_pwr_track_tbl *pwr_track_tbl;
|
||||
|
||||
u8 bfer_su_max_num;
|
||||
u8 bfer_mu_max_num;
|
||||
|
|
|
@ -2384,7 +2384,8 @@ void rtw_phy_init_tx_power(struct rtw_dev *rtwdev)
|
|||
void rtw_phy_config_swing_table(struct rtw_dev *rtwdev,
|
||||
struct rtw_swing_table *swing_table)
|
||||
{
|
||||
const struct rtw_pwr_track_tbl *tbl = rtwdev->chip->pwr_track_tbl;
|
||||
const struct rtw_rfe_def *rfe_def = rtw_get_rfe_def(rtwdev);
|
||||
const struct rtw_pwr_track_tbl *tbl = rfe_def->pwr_track_tbl;
|
||||
u8 channel = rtwdev->hal.current_channel;
|
||||
|
||||
if (IS_CH_2G_BAND(channel)) {
|
||||
|
|
|
@ -493,11 +493,6 @@ static const struct rtw_pwr_seq_cmd * const card_disable_flow_8703b[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8703b_rfe_defs[] = {
|
||||
[0] = { .phy_pg_tbl = &rtw8703b_bb_pg_tbl,
|
||||
.txpwr_lmt_tbl = &rtw8703b_txpwr_lmt_tbl,},
|
||||
};
|
||||
|
||||
static const struct rtw_page_table page_table_8703b[] = {
|
||||
{12, 2, 2, 0, 1},
|
||||
{12, 2, 2, 0, 1},
|
||||
|
@ -1818,6 +1813,12 @@ static const struct rtw_pwr_track_tbl rtw8703b_rtw_pwr_track_tbl = {
|
|||
.pwrtrk_xtal_p = rtw8703b_pwrtrk_xtal_p,
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8703b_rfe_defs[] = {
|
||||
[0] = { .phy_pg_tbl = &rtw8703b_bb_pg_tbl,
|
||||
.txpwr_lmt_tbl = &rtw8703b_txpwr_lmt_tbl,
|
||||
.pwr_track_tbl = &rtw8703b_rtw_pwr_track_tbl, },
|
||||
};
|
||||
|
||||
/* Shared-Antenna Coex Table */
|
||||
static const struct coex_table_para table_sant_8703b[] = {
|
||||
{0xffffffff, 0xffffffff}, /* case-0 */
|
||||
|
@ -1997,7 +1998,6 @@ const struct rtw_chip_info rtw8703b_hw_spec = {
|
|||
.rfe_defs_size = ARRAY_SIZE(rtw8703b_rfe_defs),
|
||||
|
||||
.iqk_threshold = 8,
|
||||
.pwr_track_tbl = &rtw8703b_rtw_pwr_track_tbl,
|
||||
|
||||
/* WOWLAN firmware exists, but not implemented yet */
|
||||
.wow_fw_name = "rtw88/rtw8703b_wow_fw.bin",
|
||||
|
|
|
@ -2020,11 +2020,6 @@ static const struct rtw_intf_phy_para_table phy_para_table_8723d = {
|
|||
.n_gen1_para = ARRAY_SIZE(pcie_gen1_param_8723d),
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8723d_rfe_defs[] = {
|
||||
[0] = { .phy_pg_tbl = &rtw8723d_bb_pg_tbl,
|
||||
.txpwr_lmt_tbl = &rtw8723d_txpwr_lmt_tbl,},
|
||||
};
|
||||
|
||||
static const u8 rtw8723d_pwrtrk_2gb_n[] = {
|
||||
0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4, 4, 5, 5, 5,
|
||||
6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 10
|
||||
|
@ -2088,6 +2083,12 @@ static const struct rtw_pwr_track_tbl rtw8723d_rtw_pwr_track_tbl = {
|
|||
.pwrtrk_xtal_n = rtw8723d_pwrtrk_xtal_n,
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8723d_rfe_defs[] = {
|
||||
[0] = { .phy_pg_tbl = &rtw8723d_bb_pg_tbl,
|
||||
.txpwr_lmt_tbl = &rtw8723d_txpwr_lmt_tbl,
|
||||
.pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl, },
|
||||
};
|
||||
|
||||
static const struct rtw_reg_domain coex_info_hw_regs_8723d[] = {
|
||||
{0x948, MASKDWORD, RTW_REG_DOMAIN_MAC32},
|
||||
{0x67, BIT(7), RTW_REG_DOMAIN_MAC8},
|
||||
|
@ -2159,7 +2160,6 @@ const struct rtw_chip_info rtw8723d_hw_spec = {
|
|||
.rfe_defs = rtw8723d_rfe_defs,
|
||||
.rfe_defs_size = ARRAY_SIZE(rtw8723d_rfe_defs),
|
||||
.rx_ldpc = false,
|
||||
.pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl,
|
||||
.iqk_threshold = 8,
|
||||
.ampdu_density = IEEE80211_HT_MPDU_DENSITY_16,
|
||||
.max_scan_ie_len = IEEE80211_MAX_DATA_LEN,
|
||||
|
|
|
@ -595,7 +595,8 @@ void __rtw8723x_pwrtrack_set_xtal(struct rtw_dev *rtwdev, u8 therm_path,
|
|||
u8 delta)
|
||||
{
|
||||
struct rtw_dm_info *dm_info = &rtwdev->dm_info;
|
||||
const struct rtw_pwr_track_tbl *tbl = rtwdev->chip->pwr_track_tbl;
|
||||
const struct rtw_rfe_def *rfe_def = rtw_get_rfe_def(rtwdev);
|
||||
const struct rtw_pwr_track_tbl *tbl = rfe_def->pwr_track_tbl;
|
||||
const s8 *pwrtrk_xtal;
|
||||
s8 xtal_cap;
|
||||
|
||||
|
|
|
@ -1581,13 +1581,6 @@ static const struct rtw_intf_phy_para_table phy_para_table_8821c = {
|
|||
.n_gen2_para = ARRAY_SIZE(pcie_gen2_param_8821c),
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8821c_rfe_defs[] = {
|
||||
[0] = RTW_DEF_RFE(8821c, 0, 0),
|
||||
[2] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
|
||||
[4] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
|
||||
[6] = RTW_DEF_RFE(8821c, 0, 0),
|
||||
};
|
||||
|
||||
static const struct rtw_hw_reg rtw8821c_dig[] = {
|
||||
[0] = { .addr = 0xc50, .mask = 0x7f },
|
||||
};
|
||||
|
@ -1899,7 +1892,7 @@ static const u8 rtw8821c_pwrtrk_2g_cck_a_p[] = {
|
|||
5, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9
|
||||
};
|
||||
|
||||
static const struct rtw_pwr_track_tbl rtw8821c_rtw_pwr_track_tbl = {
|
||||
static const struct rtw_pwr_track_tbl rtw8821c_pwr_track_type0_tbl = {
|
||||
.pwrtrk_5gb_n[0] = rtw8821c_pwrtrk_5gb_n[0],
|
||||
.pwrtrk_5gb_n[1] = rtw8821c_pwrtrk_5gb_n[1],
|
||||
.pwrtrk_5gb_n[2] = rtw8821c_pwrtrk_5gb_n[2],
|
||||
|
@ -1922,6 +1915,13 @@ static const struct rtw_pwr_track_tbl rtw8821c_rtw_pwr_track_tbl = {
|
|||
.pwrtrk_2g_ccka_p = rtw8821c_pwrtrk_2g_cck_a_p,
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8821c_rfe_defs[] = {
|
||||
[0] = RTW_DEF_RFE(8821c, 0, 0, 0),
|
||||
[2] = RTW_DEF_RFE_EXT(8821c, 0, 0, 0, 2),
|
||||
[4] = RTW_DEF_RFE_EXT(8821c, 0, 0, 0, 2),
|
||||
[6] = RTW_DEF_RFE(8821c, 0, 0, 0),
|
||||
};
|
||||
|
||||
static const struct rtw_reg_domain coex_info_hw_regs_8821c[] = {
|
||||
{0xCB0, MASKDWORD, RTW_REG_DOMAIN_MAC32},
|
||||
{0xCB4, MASKDWORD, RTW_REG_DOMAIN_MAC32},
|
||||
|
@ -1994,7 +1994,6 @@ const struct rtw_chip_info rtw8821c_hw_spec = {
|
|||
.rfe_defs = rtw8821c_rfe_defs,
|
||||
.rfe_defs_size = ARRAY_SIZE(rtw8821c_rfe_defs),
|
||||
.rx_ldpc = false,
|
||||
.pwr_track_tbl = &rtw8821c_rtw_pwr_track_tbl,
|
||||
.iqk_threshold = 8,
|
||||
.bfer_su_max_num = 2,
|
||||
.bfer_mu_max_num = 1,
|
||||
|
|
|
@ -2072,12 +2072,6 @@ static const struct rtw_intf_phy_para_table phy_para_table_8822b = {
|
|||
.n_gen2_para = ARRAY_SIZE(pcie_gen2_param_8822b),
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8822b_rfe_defs[] = {
|
||||
[2] = RTW_DEF_RFE(8822b, 2, 2),
|
||||
[3] = RTW_DEF_RFE(8822b, 3, 0),
|
||||
[5] = RTW_DEF_RFE(8822b, 5, 5),
|
||||
};
|
||||
|
||||
static const struct rtw_hw_reg rtw8822b_dig[] = {
|
||||
[0] = { .addr = 0xc50, .mask = 0x7f },
|
||||
[1] = { .addr = 0xe50, .mask = 0x7f },
|
||||
|
@ -2432,7 +2426,7 @@ static const u8 rtw8822b_pwrtrk_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
|
|||
10, 11, 11, 12, 12, 13, 13, 14, 14, 15
|
||||
};
|
||||
|
||||
static const struct rtw_pwr_track_tbl rtw8822b_rtw_pwr_track_tbl = {
|
||||
static const struct rtw_pwr_track_tbl rtw8822b_pwr_track_type0_tbl = {
|
||||
.pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_1],
|
||||
.pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_2],
|
||||
.pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8822b_pwrtrk_5gb_n[RTW_PWR_TRK_5G_3],
|
||||
|
@ -2455,6 +2449,12 @@ static const struct rtw_pwr_track_tbl rtw8822b_rtw_pwr_track_tbl = {
|
|||
.pwrtrk_2g_ccka_p = rtw8822b_pwrtrk_2g_cck_a_p,
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8822b_rfe_defs[] = {
|
||||
[2] = RTW_DEF_RFE(8822b, 2, 2, 0),
|
||||
[3] = RTW_DEF_RFE(8822b, 3, 0, 0),
|
||||
[5] = RTW_DEF_RFE(8822b, 5, 5, 0),
|
||||
};
|
||||
|
||||
static const struct rtw_reg_domain coex_info_hw_regs_8822b[] = {
|
||||
{0xcb0, MASKDWORD, RTW_REG_DOMAIN_MAC32},
|
||||
{0xcb4, MASKDWORD, RTW_REG_DOMAIN_MAC32},
|
||||
|
@ -2535,7 +2535,6 @@ const struct rtw_chip_info rtw8822b_hw_spec = {
|
|||
.rf_tbl = {&rtw8822b_rf_a_tbl, &rtw8822b_rf_b_tbl},
|
||||
.rfe_defs = rtw8822b_rfe_defs,
|
||||
.rfe_defs_size = ARRAY_SIZE(rtw8822b_rfe_defs),
|
||||
.pwr_track_tbl = &rtw8822b_rtw_pwr_track_tbl,
|
||||
.iqk_threshold = 8,
|
||||
.bfer_su_max_num = 2,
|
||||
.bfer_mu_max_num = 1,
|
||||
|
|
|
@ -4883,16 +4883,6 @@ static const struct rtw_intf_phy_para_table phy_para_table_8822c = {
|
|||
.n_gen2_para = ARRAY_SIZE(pcie_gen2_param_8822c),
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8822c_rfe_defs[] = {
|
||||
[0] = RTW_DEF_RFE(8822c, 0, 0),
|
||||
[1] = RTW_DEF_RFE(8822c, 0, 0),
|
||||
[2] = RTW_DEF_RFE(8822c, 0, 0),
|
||||
[3] = RTW_DEF_RFE(8822c, 0, 0),
|
||||
[4] = RTW_DEF_RFE(8822c, 0, 0),
|
||||
[5] = RTW_DEF_RFE(8822c, 0, 5),
|
||||
[6] = RTW_DEF_RFE(8822c, 0, 0),
|
||||
};
|
||||
|
||||
static const struct rtw_hw_reg rtw8822c_dig[] = {
|
||||
[0] = { .addr = 0x1d70, .mask = 0x7f },
|
||||
[1] = { .addr = 0x1d70, .mask = 0x7f00 },
|
||||
|
@ -5238,7 +5228,7 @@ static const u8 rtw8822c_pwrtrk_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
|
|||
18, 18, 19, 20, 21, 22, 23, 24, 24, 25
|
||||
};
|
||||
|
||||
static const struct rtw_pwr_track_tbl rtw8822c_rtw_pwr_track_tbl = {
|
||||
static const struct rtw_pwr_track_tbl rtw8822c_pwr_track_type0_tbl = {
|
||||
.pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8822c_pwrtrk_5gb_n[RTW_PWR_TRK_5G_1],
|
||||
.pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8822c_pwrtrk_5gb_n[RTW_PWR_TRK_5G_2],
|
||||
.pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8822c_pwrtrk_5gb_n[RTW_PWR_TRK_5G_3],
|
||||
|
@ -5261,6 +5251,16 @@ static const struct rtw_pwr_track_tbl rtw8822c_rtw_pwr_track_tbl = {
|
|||
.pwrtrk_2g_ccka_p = rtw8822c_pwrtrk_2g_cck_a_p,
|
||||
};
|
||||
|
||||
static const struct rtw_rfe_def rtw8822c_rfe_defs[] = {
|
||||
[0] = RTW_DEF_RFE(8822c, 0, 0, 0),
|
||||
[1] = RTW_DEF_RFE(8822c, 0, 0, 0),
|
||||
[2] = RTW_DEF_RFE(8822c, 0, 0, 0),
|
||||
[3] = RTW_DEF_RFE(8822c, 0, 0, 0),
|
||||
[4] = RTW_DEF_RFE(8822c, 0, 0, 0),
|
||||
[5] = RTW_DEF_RFE(8822c, 0, 5, 0),
|
||||
[6] = RTW_DEF_RFE(8822c, 0, 0, 0),
|
||||
};
|
||||
|
||||
static const struct rtw_hw_reg_offset rtw8822c_edcca_th[] = {
|
||||
[EDCCA_TH_L2H_IDX] = {
|
||||
{.addr = 0x84c, .mask = MASKBYTE2}, .offset = 0x80
|
||||
|
@ -5360,7 +5360,6 @@ const struct rtw_chip_info rtw8822c_hw_spec = {
|
|||
.rfe_defs_size = ARRAY_SIZE(rtw8822c_rfe_defs),
|
||||
.en_dis_dpd = true,
|
||||
.dpd_ratemask = DIS_DPD_RATEALL,
|
||||
.pwr_track_tbl = &rtw8822c_rtw_pwr_track_tbl,
|
||||
.iqk_threshold = 8,
|
||||
.lck_threshold = 8,
|
||||
.bfer_su_max_num = 2,
|
||||
|
|
Loading…
Add table
Reference in a new issue