mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
wifi: rtw89: phy: set BB wrap of control options
Set main options to control BB wrap functions. For example, enable options by data bandwidth or channel bandwidth. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260511070148.25257-5-pkshih@realtek.com
This commit is contained in:
parent
9adb75af3f
commit
f791fe3060
|
|
@ -589,7 +589,18 @@ enum rtw89_oob_dpd_onoff {
|
|||
OOB_DPD_ON = 1,
|
||||
};
|
||||
|
||||
#define _8nibble(n0, n1, n2, n3, n4, n5, n6, n7) \
|
||||
((n0) << 0 | (n1) << 4 | (n2) << 8 | (n3) << 12 | \
|
||||
(n4) << 16 | (n5) << 20 | (n6) << 24 | (n7) << 28)
|
||||
|
||||
struct rtw89_bb_wrap_common_data {
|
||||
struct {
|
||||
u32 rfsi_ct_opt[2];
|
||||
} bands[RFSI_CTRL_BAND_NUM];
|
||||
};
|
||||
|
||||
struct rtw89_bb_wrap_data {
|
||||
const struct rtw89_bb_wrap_common_data *common;
|
||||
struct {
|
||||
u8 oob_dpd_by_cbw[8];
|
||||
} bands[RFSI_CTRL_BAND_NUM];
|
||||
|
|
|
|||
|
|
@ -648,13 +648,20 @@ static u32 rtw89_phy_bb_wrap_be_bandedge_decision(struct rtw89_dev *rtwdev,
|
|||
void rtw89_phy_bb_wrap_set_rfsi_ct_opt(struct rtw89_dev *rtwdev,
|
||||
enum rtw89_phy_idx phy_idx)
|
||||
{
|
||||
const struct rtw89_bb_wrap_data *d = rtwdev->phy_info.bb_wrap_data;
|
||||
const u32 *val;
|
||||
u32 reg;
|
||||
|
||||
if (!d || !d->common)
|
||||
return;
|
||||
|
||||
val = d->common->bands[0].rfsi_ct_opt;
|
||||
|
||||
reg = rtw89_mac_reg_by_idx(rtwdev, R_RFSI_CT_OPT_0_BE4, phy_idx);
|
||||
rtw89_write32(rtwdev, reg, 0x00010001);
|
||||
rtw89_write32(rtwdev, reg, val[0]);
|
||||
|
||||
reg = rtw89_mac_reg_by_idx(rtwdev, R_RFSI_CT_OPT_8_BE4, phy_idx);
|
||||
rtw89_write32(rtwdev, reg, 0x00010001);
|
||||
rtw89_write32(rtwdev, reg, val[1]);
|
||||
}
|
||||
EXPORT_SYMBOL(rtw89_phy_bb_wrap_set_rfsi_ct_opt);
|
||||
|
||||
|
|
|
|||
|
|
@ -286,7 +286,32 @@ static const struct rtw89_efuse_block_cfg rtw8922d_efuse_blocks[] = {
|
|||
[RTW89_EFUSE_BLOCK_ADIE] = {.offset = 0x70000, .size = 0x10},
|
||||
};
|
||||
|
||||
static const struct rtw89_bb_wrap_common_data rtw8922d_bb_wrap_common_data_7025 = {
|
||||
.bands = {
|
||||
[RFSI_CTRL_BAND_5_6GHZ] = {
|
||||
.rfsi_ct_opt = {_8nibble(2, 2, 2, 2, 1, 1, 1, 1),
|
||||
_8nibble(2, 2, 2, 2, 1, 1, 1, 1)},
|
||||
},
|
||||
[RFSI_CTRL_BAND_2GHZ] = {
|
||||
.rfsi_ct_opt = {_8nibble(2, 2, 2, 2, 1, 1, 1, 1),
|
||||
_8nibble(2, 2, 2, 2, 1, 1, 1, 1)},
|
||||
}},
|
||||
};
|
||||
|
||||
static const struct rtw89_bb_wrap_common_data rtw8922d_bb_wrap_common_data_7090 = {
|
||||
.bands = {
|
||||
[RFSI_CTRL_BAND_5_6GHZ] = {
|
||||
.rfsi_ct_opt = {_8nibble(2, 2, 2, 2, 1, 1, 1, 1),
|
||||
_8nibble(2, 2, 2, 2, 1, 1, 1, 1)},
|
||||
},
|
||||
[RFSI_CTRL_BAND_2GHZ] = {
|
||||
.rfsi_ct_opt = {_8nibble(2, 2, 2, 2, 1, 1, 1, 1),
|
||||
_8nibble(2, 2, 2, 2, 1, 1, 1, 1)},
|
||||
}},
|
||||
};
|
||||
|
||||
static const struct rtw89_bb_wrap_data rtw8922d_bb_wrap_data_7025_default = {
|
||||
.common = &rtw8922d_bb_wrap_common_data_7025,
|
||||
.bands = {
|
||||
[RFSI_CTRL_BAND_5_6GHZ] = {
|
||||
.oob_dpd_by_cbw = {OOB_DPD_OFF, OOB_DPD_OFF, OOB_DPD_OFF, OOB_DPD_OFF,
|
||||
|
|
@ -300,6 +325,7 @@ static const struct rtw89_bb_wrap_data rtw8922d_bb_wrap_data_7025_default = {
|
|||
};
|
||||
|
||||
static const struct rtw89_bb_wrap_data rtw8922d_bb_wrap_data_7090_default = {
|
||||
.common = &rtw8922d_bb_wrap_common_data_7090,
|
||||
.bands = {
|
||||
[RFSI_CTRL_BAND_5_6GHZ] = {
|
||||
.oob_dpd_by_cbw = {OOB_DPD_OFF, OOB_DPD_OFF, OOB_DPD_OFF, OOB_DPD_OFF,
|
||||
|
|
@ -313,6 +339,7 @@ static const struct rtw89_bb_wrap_data rtw8922d_bb_wrap_data_7090_default = {
|
|||
};
|
||||
|
||||
static const struct rtw89_bb_wrap_data rtw8922d_bb_wrap_data_7090_rfe35_41_44 = {
|
||||
.common = &rtw8922d_bb_wrap_common_data_7090,
|
||||
.bands = {
|
||||
[RFSI_CTRL_BAND_5_6GHZ] = {
|
||||
.oob_dpd_by_cbw = {OOB_DPD_OFF, OOB_DPD_OFF, OOB_DPD_OFF, OOB_DPD_OFF,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user