]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: phy: set BB wrap of control options
authorPing-Ke Shih <pkshih@realtek.com>
Mon, 11 May 2026 07:01:41 +0000 (15:01 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Tue, 19 May 2026 03:08:20 +0000 (11:08 +0800)
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
drivers/net/wireless/realtek/rtw89/phy.h
drivers/net/wireless/realtek/rtw89/phy_be.c
drivers/net/wireless/realtek/rtw89/rtw8922d.c

index 880ffcb47cf26ab276d7e64ecac98163ab18c0fb..8eb122eeabe879f852505d422b02f6b90fbcf04b 100644 (file)
@@ -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];
index 0d3192717869f113ebfd3d56a529620a3733cc61..0d0f87f464a5baa57805124ef55a5ff9a4f56e7c 100644 (file)
@@ -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);
 
index 2e5e264e75db2404ccca116b00eee1bae1cee056..18d75184f82bc0fcd3748269ea647e0147798934 100644 (file)
@@ -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,