rtw88: 8822c: update rx settings to prevent potential hw deadlock
authorPo-Hao Huang <phhuang@realtek.com>
Fri, 17 Dec 2021 01:27:08 +0000 (09:27 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 09:54:17 +0000 (10:54 +0100)
[ Upstream commit c1afb26727d9e507d3e17a9890e7aaf7fc85cd55 ]

These settings enables mac to detect and recover when rx fifo
circuit deadlock occurs. Previous version missed this, so we fix it.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20211217012708.8623-1-pkshih@realtek.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/realtek/rtw88/main.c
drivers/net/wireless/realtek/rtw88/rtw8821c.h
drivers/net/wireless/realtek/rtw88/rtw8822b.c
drivers/net/wireless/realtek/rtw88/rtw8822c.c

index 565efd8..2ef1416 100644 (file)
@@ -1652,7 +1652,7 @@ int rtw_core_init(struct rtw_dev *rtwdev)
 
        /* default rx filter setting */
        rtwdev->hal.rcr = BIT_APP_FCS | BIT_APP_MIC | BIT_APP_ICV |
-                         BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
+                         BIT_PKTCTL_DLEN | BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
                          BIT_AB | BIT_AM | BIT_APM;
 
        ret = rtw_load_firmware(rtwdev, RTW_NORMAL_FW);
index bd01e82..8d1e8ff 100644 (file)
@@ -131,7 +131,7 @@ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
 #define WLAN_TX_FUNC_CFG2              0x30
 #define WLAN_MAC_OPT_NORM_FUNC1                0x98
 #define WLAN_MAC_OPT_LB_FUNC1          0x80
-#define WLAN_MAC_OPT_FUNC2             0x30810041
+#define WLAN_MAC_OPT_FUNC2             0xb0810041
 
 #define WLAN_SIFS_CFG  (WLAN_SIFS_CCK_CONT_TX | \
                        (WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
index 22d0dd6..dbfd67c 100644 (file)
@@ -204,7 +204,7 @@ static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
 #define WLAN_TX_FUNC_CFG2              0x30
 #define WLAN_MAC_OPT_NORM_FUNC1                0x98
 #define WLAN_MAC_OPT_LB_FUNC1          0x80
-#define WLAN_MAC_OPT_FUNC2             0x30810041
+#define WLAN_MAC_OPT_FUNC2             0xb0810041
 
 #define WLAN_SIFS_CFG  (WLAN_SIFS_CCK_CONT_TX | \
                        (WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
index 79ad623..cee5863 100644 (file)
@@ -1248,7 +1248,7 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
 #define WLAN_TX_FUNC_CFG2              0x30
 #define WLAN_MAC_OPT_NORM_FUNC1                0x98
 #define WLAN_MAC_OPT_LB_FUNC1          0x80
-#define WLAN_MAC_OPT_FUNC2             0x30810041
+#define WLAN_MAC_OPT_FUNC2             0xb0810041
 #define WLAN_MAC_INT_MIG_CFG           0x33330000
 
 #define WLAN_SIFS_CFG  (WLAN_SIFS_CCK_CONT_TX | \