]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: phy: update bb wrapper TPU init
authorEric Huang <echuang@realtek.com>
Wed, 14 Jan 2026 01:39:45 +0000 (09:39 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Thu, 22 Jan 2026 01:39:48 +0000 (09:39 +0800)
Set DBW by rate to on in TPU (TX Power Unit) init, and extend to
initialize two hardware bands.

Signed-off-by: Eric Huang <echuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260114013950.19704-8-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/phy_be.c
drivers/net/wireless/realtek/rtw89/reg.h

index e333c3eb1e9bbd2effe2ddb58d377feb37dd7d7d..766ea4404ffc7a527f19be94ae0d133ef3449e1d 100644 (file)
@@ -443,14 +443,23 @@ void rtw89_phy_bb_wrap_tx_path_by_macid_init(struct rtw89_dev *rtwdev)
 static void rtw89_phy_bb_wrap_tpu_set_all(struct rtw89_dev *rtwdev,
                                          enum rtw89_mac_idx mac_idx)
 {
-       u32 addr;
+       u32 addr, t;
+
+       addr = rtw89_mac_reg_by_idx(rtwdev, R_BE_PWR_FTM_SS, mac_idx);
+       rtw89_write32_mask(rtwdev, addr, B_BE_PWR_BY_RATE_DBW_ON, 0x3);
 
-       for (addr = R_BE_PWR_BY_RATE; addr <= R_BE_PWR_BY_RATE_END; addr += 4)
-               rtw89_write32(rtwdev, addr, 0);
-       for (addr = R_BE_PWR_RULMT_START; addr <= R_BE_PWR_RULMT_END; addr += 4)
-               rtw89_write32(rtwdev, addr, 0);
-       for (addr = R_BE_PWR_RATE_OFST_CTRL; addr <= R_BE_PWR_RATE_OFST_END; addr += 4)
-               rtw89_write32(rtwdev, addr, 0);
+       for (addr = R_BE_PWR_BY_RATE; addr <= R_BE_PWR_BY_RATE_END; addr += 4) {
+               t = rtw89_mac_reg_by_idx(rtwdev, addr, mac_idx);
+               rtw89_write32(rtwdev, t, 0);
+       }
+       for (addr = R_BE_PWR_RULMT_START; addr <= R_BE_PWR_RULMT_END; addr += 4) {
+               t = rtw89_mac_reg_by_idx(rtwdev, addr, mac_idx);
+               rtw89_write32(rtwdev, t, 0);
+       }
+       for (addr = R_BE_PWR_RATE_OFST_CTRL; addr <= R_BE_PWR_RATE_OFST_END; addr += 4) {
+               t = rtw89_mac_reg_by_idx(rtwdev, addr, mac_idx);
+               rtw89_write32(rtwdev, t, 0);
+       }
 
        addr = rtw89_mac_reg_by_idx(rtwdev, R_BE_PWR_REF_CTRL, mac_idx);
        rtw89_write32_mask(rtwdev, addr, B_BE_PWR_OFST_LMT_DB, 0);
index ab344d0269f763db8dcda22f012c31dcb3e52ea5..275b3b2fd9e8324ea54e4290bc14d0220e089c98 100644 (file)
 
 #define R_BE_PWR_FTM 0x11B00
 #define R_BE_PWR_FTM_SS 0x11B04
+#define B_BE_PWR_BY_RATE_DBW_ON GENMASK(27, 26)
 
 #define R_BE_PWR_BY_RATE 0x11E00
 #define R_BE_PWR_BY_RATE_MAX 0x11FA8