rtw89: 8852c: update security engine setting
authorPing-Ke Shih <pkshih@realtek.com>
Fri, 25 Mar 2022 06:00:51 +0000 (14:00 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 6 Apr 2022 08:55:14 +0000 (11:55 +0300)
The security setting of 8852A and 8852C are different, so change the
settings accordingly.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220325060055.58482-13-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/mac.c
drivers/net/wireless/realtek/rtw89/reg.h

index 6498df52ace9df4cfe45b3ba43ca5fa9d909a6c6..8e6d45979fde32ca806a0e6ca1abbbf4c6c18998 100644 (file)
@@ -1620,6 +1620,7 @@ static int mpdu_proc_init(struct rtw89_dev *rtwdev)
 
 static int sec_eng_init(struct rtw89_dev *rtwdev)
 {
+       const struct rtw89_chip_info *chip = rtwdev->chip;
        u32 val = 0;
        int ret;
 
@@ -1633,7 +1634,8 @@ static int sec_eng_init(struct rtw89_dev *rtwdev)
        /* init TX encryption */
        val |= (B_AX_SEC_TX_ENC | B_AX_SEC_RX_DEC);
        val |= (B_AX_MC_DEC | B_AX_BC_DEC);
-       val &= ~B_AX_TX_PARTIAL_MODE;
+       if (chip->chip_id == RTL8852A || chip->chip_id == RTL8852B)
+               val &= ~B_AX_TX_PARTIAL_MODE;
        rtw89_write32(rtwdev, R_AX_SEC_ENG_CTRL, val);
 
        /* init MIC ICV append */
@@ -1643,6 +1645,10 @@ static int sec_eng_init(struct rtw89_dev *rtwdev)
        /* option init */
        rtw89_write32(rtwdev, R_AX_SEC_MPDU_PROC, val);
 
+       if (chip->chip_id == RTL8852C)
+               rtw89_write32_mask(rtwdev, R_AX_SEC_DEBUG1,
+                                  B_AX_TX_TIMEOUT_SEL_MASK, AX_TX_TO_VAL);
+
        return 0;
 }
 
index 1f4cf30f3822b0f14f97ac4cac41db75352cde44..3505c9dd8a793fec1c098d78bec788efc2f50b18 100644 (file)
 #define R_AX_SEC_CAM_RDATA 0x9D14
 #define R_AX_SEC_CAM_WDATA 0x9D18
 #define R_AX_SEC_DEBUG 0x9D1C
+#define R_AX_SEC_DEBUG1 0x9D1C
+#define B_AX_TX_TIMEOUT_SEL_MASK GENMASK(31, 30)
+#define AX_TX_TO_VAL  0x2
 #define R_AX_SEC_TX_DEBUG 0x9D20
 #define R_AX_SEC_RX_DEBUG 0x9D24
 #define R_AX_SEC_TRX_PKT_CNT 0x9D28