mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 09:09:55 -04:00
wifi: rtw89: 8851b: add NCTL post table
NCTL (nano-controller) is used to assist RF calibration that sends commands to NCTL so it can reduce IO from driver. 8851B needs additional settings, so add a table to do things. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230421024551.29994-4-pkshih@realtek.com
This commit is contained in:
@@ -3192,6 +3192,7 @@ struct rtw89_chip_info {
|
||||
const struct rtw89_phy_table *bb_gain_table;
|
||||
const struct rtw89_phy_table *rf_table[RF_PATH_MAX];
|
||||
const struct rtw89_phy_table *nctl_table;
|
||||
const struct rtw89_rfk_tbl *nctl_post_table;
|
||||
const struct rtw89_txpwr_table *byr_table;
|
||||
const struct rtw89_phy_dig_gain_table *dig_table;
|
||||
const struct rtw89_dig_regs *dig_regs;
|
||||
|
||||
@@ -1401,7 +1401,8 @@ static void rtw89_phy_init_rf_nctl(struct rtw89_dev *rtwdev)
|
||||
rtw89_phy_write32_set(rtwdev, R_IOQ_IQK_DPK, 0x3);
|
||||
rtw89_phy_write32_set(rtwdev, R_GNT_BT_WGT_EN, 0x1);
|
||||
rtw89_phy_write32_set(rtwdev, R_P0_PATH_RST, 0x8000000);
|
||||
rtw89_phy_write32_set(rtwdev, R_P1_PATH_RST, 0x8000000);
|
||||
if (chip->chip_id != RTL8851B)
|
||||
rtw89_phy_write32_set(rtwdev, R_P1_PATH_RST, 0x8000000);
|
||||
if (chip->chip_id == RTL8852B)
|
||||
rtw89_phy_write32_set(rtwdev, R_IOQ_IQK_DPK, 0x2);
|
||||
|
||||
@@ -1415,6 +1416,9 @@ static void rtw89_phy_init_rf_nctl(struct rtw89_dev *rtwdev)
|
||||
|
||||
nctl_table = chip->nctl_table;
|
||||
rtw89_phy_init_reg(rtwdev, nctl_table, rtw89_phy_config_bb_reg, NULL);
|
||||
|
||||
if (chip->nctl_post_table)
|
||||
rtw89_rfk_parser(rtwdev, chip->nctl_post_table);
|
||||
}
|
||||
|
||||
static u32 rtw89_phy0_phy1_offset(struct rtw89_dev *rtwdev, u32 addr)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "phy.h"
|
||||
#include "reg.h"
|
||||
#include "rtw8851b.h"
|
||||
#include "rtw8851b_rfk_table.h"
|
||||
#include "rtw8851b_table.h"
|
||||
#include "txrx.h"
|
||||
#include "util.h"
|
||||
@@ -44,6 +45,7 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
|
||||
.bb_gain_table = &rtw89_8851b_phy_bb_gain_table,
|
||||
.rf_table = {&rtw89_8851b_phy_radioa_table,},
|
||||
.nctl_table = &rtw89_8851b_phy_nctl_table,
|
||||
.nctl_post_table = &rtw8851b_nctl_post_defs_tbl,
|
||||
.byr_table = &rtw89_8851b_byr_table,
|
||||
.dflt_parms = &rtw89_8851b_dflt_parms,
|
||||
.rfe_parms_conf = rtw89_8851b_rfe_parms_conf,
|
||||
|
||||
@@ -2085,6 +2085,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
|
||||
.rf_table = {&rtw89_8852a_phy_radioa_table,
|
||||
&rtw89_8852a_phy_radiob_table,},
|
||||
.nctl_table = &rtw89_8852a_phy_nctl_table,
|
||||
.nctl_post_table = NULL,
|
||||
.byr_table = &rtw89_8852a_byr_table,
|
||||
.dflt_parms = &rtw89_8852a_dflt_parms,
|
||||
.rfe_parms_conf = NULL,
|
||||
|
||||
@@ -2522,6 +2522,7 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
|
||||
.rf_table = {&rtw89_8852b_phy_radioa_table,
|
||||
&rtw89_8852b_phy_radiob_table,},
|
||||
.nctl_table = &rtw89_8852b_phy_nctl_table,
|
||||
.nctl_post_table = NULL,
|
||||
.byr_table = &rtw89_8852b_byr_table,
|
||||
.dflt_parms = &rtw89_8852b_dflt_parms,
|
||||
.rfe_parms_conf = NULL,
|
||||
|
||||
@@ -2821,6 +2821,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
|
||||
.rf_table = {&rtw89_8852c_phy_radiob_table,
|
||||
&rtw89_8852c_phy_radioa_table,},
|
||||
.nctl_table = &rtw89_8852c_phy_nctl_table,
|
||||
.nctl_post_table = NULL,
|
||||
.byr_table = &rtw89_8852c_byr_table,
|
||||
.dflt_parms = &rtw89_8852c_dflt_parms,
|
||||
.rfe_parms_conf = NULL,
|
||||
|
||||
Reference in New Issue
Block a user