wifi: rtw89: pci: update SER timer unit and timeout time
authorPing-Ke Shih <pkshih@realtek.com>
Sun, 21 Jan 2024 07:18:23 +0000 (15:18 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 1 Feb 2024 10:15:42 +0000 (12:15 +0200)
Be higher resolution of SER timer unit from 32ms to 16ms to detect
abnormal situation more accurately, and set hardware watchdog timer to 4ms.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240121071826.10159-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/pci_be.c
drivers/net/wireless/realtek/rtw89/reg.h

index 629ffa4bee91fb00f14b8b953c61fa22bcf8f655..5c9e39357773a0ae163601726df828ff92d2c689 100644 (file)
@@ -105,6 +105,10 @@ static void rtw89_pci_ctrl_trxdma_pcie_be(struct rtw89_dev *rtwdev,
                val |= B_BE_STOP_AXI_MST;
 
        rtw89_write32(rtwdev, R_BE_HAXI_INIT_CFG1, val);
+
+       if (io_en == MAC_AX_PCIE_ENABLE)
+               rtw89_write32_mask(rtwdev, R_BE_HAXI_MST_WDT_TIMEOUT_SEL_V1,
+                                  B_BE_HAXI_MST_WDT_TIMEOUT_SEL_MASK, 4);
 }
 
 static void rtw89_pci_clr_idx_all_be(struct rtw89_dev *rtwdev)
@@ -257,6 +261,7 @@ static void rtw89_pci_ser_setting_be(struct rtw89_dev *rtwdev)
        rtw89_write32(rtwdev, R_BE_PL1_DBG_INFO, 0x0);
        rtw89_write32_set(rtwdev, R_BE_FWS1IMR, B_BE_PCIE_SER_TIMEOUT_INDIC_EN);
        rtw89_write32_set(rtwdev, R_BE_SER_PL1_CTRL, B_BE_PL1_SER_PL1_EN);
+       rtw89_write32_mask(rtwdev, R_BE_SER_PL1_CTRL, B_BE_PL1_TIMER_UNIT_MASK, 1);
 
        val32 = rtw89_read32(rtwdev, R_BE_REG_PL1_MASK);
        val32 |= B_BE_SER_PMU_IMR | B_BE_SER_L1SUB_IMR | B_BE_SER_PM_MASTER_IMR |
index acc96d30d0850c747e84586196dce6fa949b0440..ec2559bde0924a87e5969d3f1159a2bbc2473974 100644 (file)
 #define B_BE_STOP_CH1 BIT(1)
 #define B_BE_STOP_CH0 BIT(0)
 
+#define R_BE_HAXI_MST_WDT_TIMEOUT_SEL_V1 0xB02C
+#define B_BE_HAXI_MST_WDT_TIMEOUT_SEL_MASK GENMASK(4, 0)
+
 #define R_BE_HAXI_IDCT_MSK 0xB0B8
 #define B_BE_HAXI_RRESP_ERR_IDCT_MSK BIT(7)
 #define B_BE_HAXI_BRESP_ERR_IDCT_MSK BIT(6)