]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: phy: set BB wrap of trigger-base partial band
authorPing-Ke Shih <pkshih@realtek.com>
Mon, 11 May 2026 07:01:44 +0000 (15:01 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Tue, 19 May 2026 03:56:34 +0000 (11:56 +0800)
Apply options to trigger-base partial band. For example, TX at RU-106 on
a 160MHz bandwidth.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260511070148.25257-8-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 094ee7d7c10af6a475704ca41dcd95a3e327ac60..2298ba245050425746e48d3b36a099921fc4a1fd 100644 (file)
@@ -618,6 +618,7 @@ enum rtw89_rfsi_ctrl_modulation {
 struct rtw89_bb_wrap_common_data {
        struct {
                u32 rfsi_ct_opt[2];
+               u8 pb_tb;
        } bands[RFSI_CTRL_BAND_NUM];
        u8 qam_th[6];
 };
index dca36a5dfb0a6f65eea6b3e3e8120f9e7e1c1243..a730b0329117f40ad4901c2813d47e2c7af3a1d1 100644 (file)
@@ -771,13 +771,19 @@ static void rtw89_phy_bb_wrap_tx_rfsi_qam_comp_th_init(struct rtw89_dev *rtwdev,
 static void rtw89_phy_bb_wrap_tx_rfsi_scenario_def(struct rtw89_dev *rtwdev,
                                                   enum rtw89_mac_idx mac_idx)
 {
+       const struct rtw89_bb_wrap_data *d = rtwdev->phy_info.bb_wrap_data;
+       u8 pb_tb = 0;
+
+       if (d && d->common)
+               pb_tb = d->common->bands[0].pb_tb;
+
        rtw89_write32_idx(rtwdev, R_RFSI_CT_DEF_BE4, B_RFSI_CT_ER_BE4, 0x0, mac_idx);
        rtw89_write32_idx(rtwdev, R_RFSI_CT_DEF_BE4, B_RFSI_CT_SUBF_BE4, 0x0, mac_idx);
        rtw89_write32_idx(rtwdev, R_RFSI_CT_DEF_BE4, B_RFSI_CT_FTM_BE4, 0x0, mac_idx);
        rtw89_write32_idx(rtwdev, R_RFSI_CT_DEF_BE4, B_RFSI_CT_SENS_BE4, 0x0, mac_idx);
 
        rtw89_write32_idx(rtwdev, R_FBTB_CT_DEF_BE4, B_FBTB_CT_DEF_BE, 0x0, mac_idx);
-       rtw89_write32_idx(rtwdev, R_FBTB_CT_DEF_BE4, B_FBTB_CT_PB_BE4, 0x0, mac_idx);
+       rtw89_write32_idx(rtwdev, R_FBTB_CT_DEF_BE4, B_FBTB_CT_PB_BE4, pb_tb, mac_idx);
        rtw89_write32_idx(rtwdev, R_FBTB_CT_DEF_BE4, B_FBTB_CT_DL_WO_BE4, 0x0, mac_idx);
        rtw89_write32_idx(rtwdev, R_FBTB_CT_DEF_BE4, B_FBTB_CT_DL_BF_BE4, 0x0, mac_idx);
        rtw89_write32_idx(rtwdev, R_FBTB_CT_DEF_BE4, B_FBTB_CT_MUMIMO_BE4, 0x0, mac_idx);
index 114f53ab9f7ce2e36d5f6787666b37ea6fb3620c..15c44dd0d9fa1d8313aaae9205a85355d7339da9 100644 (file)
@@ -291,10 +291,12 @@ static const struct rtw89_bb_wrap_common_data rtw8922d_bb_wrap_common_data_7025
        [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)},
+               .pb_tb = 3,
        },
        [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)},
+               .pb_tb = 0,
        }},
        .qam_th = {RFSI_BPSK, RFSI_QPSK, RFSI_256QAM, RFSI_MAX, RFSI_MAX, RFSI_MAX},
 };
@@ -304,10 +306,12 @@ static const struct rtw89_bb_wrap_common_data rtw8922d_bb_wrap_common_data_7090
        [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)},
+               .pb_tb = 3,
        },
        [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)},
+               .pb_tb = 0,
        }},
        .qam_th = {RFSI_BPSK, RFSI_QPSK, RFSI_256QAM, RFSI_MAX, RFSI_MAX, RFSI_MAX},
 };