]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: mac: clear DTOP disable excluding CID7090 variant for RTL8922D
authorPing-Ke Shih <pkshih@realtek.com>
Sat, 17 Jan 2026 04:41:55 +0000 (12:41 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Thu, 22 Jan 2026 02:16:17 +0000 (10:16 +0800)
The data TX FIFO operation (DTOP) is a hardware component in TMAC circuit
to control TX flow, since CID7090 variant can clear DTOP by default, no
need it by driver.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260117044157.2392958-8-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/mac_be.c

index 028fb63014eb72bdd781083f9d7dd10907eac7da..20a9998e30121eb4fbe23f058ec9094865bc043e 100644 (file)
@@ -1352,6 +1352,7 @@ static int spatial_reuse_init_be(struct rtw89_dev *rtwdev, u8 mac_idx)
 static int tmac_init_be(struct rtw89_dev *rtwdev, u8 mac_idx)
 {
        const struct rtw89_chip_info *chip = rtwdev->chip;
+       struct rtw89_hal *hal = &rtwdev->hal;
        u32 reg;
 
        reg = rtw89_mac_reg_by_idx(rtwdev, R_BE_TB_PPDU_CTRL, mac_idx);
@@ -1363,7 +1364,7 @@ static int tmac_init_be(struct rtw89_dev *rtwdev, u8 mac_idx)
                rtw89_write32_mask(rtwdev, reg, B_BE_EHT_HE_PPDU_2XLTF_ZLD_USTIMER_MASK, 0xe);
        }
 
-       if (chip->chip_id == RTL8922D) {
+       if (chip->chip_id == RTL8922D && hal->cid != RTL8922D_CID7090) {
                reg = rtw89_mac_reg_by_idx(rtwdev, R_BE_COMMON_PHYINTF_CTRL_0, mac_idx);
                rtw89_write32_clr(rtwdev, reg, CLEAR_DTOP_DIS);
        }