]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: Add rtw8851b_dle_mem_usb{2,3}
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Mon, 30 Jun 2025 20:42:24 +0000 (23:42 +0300)
committerPing-Ke Shih <pkshih@realtek.com>
Fri, 4 Jul 2025 02:42:16 +0000 (10:42 +0800)
Add rtw8851b_dle_mem_usb2 and rtw8851b_dle_mem_usb3 and their various
quotas and sizes in struct rtw89_mac_size_set.

"dle" could be "Data Link Engine" or "Double Link Engine". These are
some parameters needed for RTL8851BU.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/91622304-614e-4e91-bf2f-7688cf44070b@gmail.com
drivers/net/wireless/realtek/rtw89/mac.c
drivers/net/wireless/realtek/rtw89/mac.h
drivers/net/wireless/realtek/rtw89/rtw8851b.c

index 4432b03e8f7afc12a300e074a1275d46ded5ebcb..4c469379be6e1ce44f1dd7a305c4ae2618c82fc9 100644 (file)
@@ -1645,6 +1645,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
        /* 8852C PCIE SCC */
        .wde_size19 = {RTW89_WDE_PG_64, 3328, 0,},
        .wde_size23 = {RTW89_WDE_PG_64, 1022, 2,},
+       /* 8852B USB2.0/USB3.0 SCC */
+       .wde_size25 = {RTW89_WDE_PG_64, 162, 94,},
        /* PCIE */
        .ple_size0 = {RTW89_PLE_PG_128, 1520, 16,},
        .ple_size0_v1 = {RTW89_PLE_PG_128, 2688, 240, 212992,},
@@ -1660,6 +1662,10 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
        .ple_size18 = {RTW89_PLE_PG_128, 2544, 16,},
        /* 8852C PCIE SCC */
        .ple_size19 = {RTW89_PLE_PG_128, 1904, 16,},
+       /* 8852B USB2.0 SCC */
+       .ple_size32 = {RTW89_PLE_PG_128, 620, 20,},
+       /* 8852B USB3.0 SCC */
+       .ple_size33 = {RTW89_PLE_PG_128, 632, 8,},
        /* PCIE 64 */
        .wde_qt0 = {3792, 196, 0, 107,},
        .wde_qt0_v1 = {3302, 6, 0, 20,},
@@ -1674,6 +1680,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
        /* 8852C PCIE SCC */
        .wde_qt18 = {3228, 60, 0, 40,},
        .wde_qt23 = {958, 48, 0, 16,},
+       /* 8852B USB2.0/USB3.0 SCC */
+       .wde_qt25 = {152, 2, 0, 8,},
        .ple_qt0 = {320, 320, 32, 16, 13, 13, 292, 292, 64, 18, 1, 4, 0,},
        .ple_qt1 = {320, 320, 32, 16, 1316, 1316, 1595, 1595, 1367, 1321, 1, 1307, 0,},
        /* PCIE SCC */
@@ -1697,6 +1705,13 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
        /* PCIE 64 */
        .ple_qt58 = {147, 0, 16, 20, 157, 13, 229, 0, 172, 14, 24, 0,},
        .ple_qt59 = {147, 0, 32, 20, 1860, 13, 2025, 0, 1879, 14, 24, 0,},
+       /* USB2.0 52B SCC */
+       .ple_qt72 = {130, 0, 16, 48, 4, 13, 322, 0, 32, 14, 8, 0, 0,},
+       /* USB2.0 52B 92K */
+       .ple_qt73 = {130, 0, 32, 48, 37, 13, 355, 0, 65, 14, 24, 0, 0,},
+       /* USB3.0 52B 92K */
+       .ple_qt74 = {286, 0, 16, 48, 4, 13, 178, 0, 32, 14, 8, 0, 0,},
+       .ple_qt75 = {286, 0, 32, 48, 37, 13, 211, 0, 65, 14, 24, 0, 0,},
        /* 8852A PCIE WOW */
        .ple_qt_52a_wow = {264, 0, 32, 20, 64, 13, 1005, 0, 64, 128, 120,},
        /* 8852B PCIE WOW */
index b7fd4a0fdb84a3b3a4541264c7d7f84772b11599..9f596a06b3d089d0ac0b484307021f457c5a124e 100644 (file)
@@ -924,6 +924,7 @@ struct rtw89_mac_size_set {
        const struct rtw89_dle_size wde_size18;
        const struct rtw89_dle_size wde_size19;
        const struct rtw89_dle_size wde_size23;
+       const struct rtw89_dle_size wde_size25;
        const struct rtw89_dle_size ple_size0;
        const struct rtw89_dle_size ple_size0_v1;
        const struct rtw89_dle_size ple_size3_v1;
@@ -933,6 +934,8 @@ struct rtw89_mac_size_set {
        const struct rtw89_dle_size ple_size9;
        const struct rtw89_dle_size ple_size18;
        const struct rtw89_dle_size ple_size19;
+       const struct rtw89_dle_size ple_size32;
+       const struct rtw89_dle_size ple_size33;
        const struct rtw89_wde_quota wde_qt0;
        const struct rtw89_wde_quota wde_qt0_v1;
        const struct rtw89_wde_quota wde_qt4;
@@ -941,6 +944,7 @@ struct rtw89_mac_size_set {
        const struct rtw89_wde_quota wde_qt17;
        const struct rtw89_wde_quota wde_qt18;
        const struct rtw89_wde_quota wde_qt23;
+       const struct rtw89_wde_quota wde_qt25;
        const struct rtw89_ple_quota ple_qt0;
        const struct rtw89_ple_quota ple_qt1;
        const struct rtw89_ple_quota ple_qt4;
@@ -955,6 +959,10 @@ struct rtw89_mac_size_set {
        const struct rtw89_ple_quota ple_qt57;
        const struct rtw89_ple_quota ple_qt58;
        const struct rtw89_ple_quota ple_qt59;
+       const struct rtw89_ple_quota ple_qt72;
+       const struct rtw89_ple_quota ple_qt73;
+       const struct rtw89_ple_quota ple_qt74;
+       const struct rtw89_ple_quota ple_qt75;
        const struct rtw89_ple_quota ple_qt_52a_wow;
        const struct rtw89_ple_quota ple_qt_52b_wow;
        const struct rtw89_ple_quota ple_qt_52bt_wow;
index b678edb00c03b1da206317f89f32b0611c333b58..5cdc42ee59a39dd21db8a706d03bc9d04f66faed 100644 (file)
@@ -68,6 +68,32 @@ static const struct rtw89_dle_mem rtw8851b_dle_mem_pcie[] = {
                               NULL},
 };
 
+static const struct rtw89_dle_mem rtw8851b_dle_mem_usb2[] = {
+       [RTW89_QTA_SCC] = {RTW89_QTA_SCC, &rtw89_mac_size.wde_size25,
+                          &rtw89_mac_size.ple_size32, &rtw89_mac_size.wde_qt25,
+                          &rtw89_mac_size.wde_qt25, &rtw89_mac_size.ple_qt72,
+                          &rtw89_mac_size.ple_qt73},
+       [RTW89_QTA_DLFW] = {RTW89_QTA_DLFW, &rtw89_mac_size.wde_size9,
+                           &rtw89_mac_size.ple_size8, &rtw89_mac_size.wde_qt4,
+                           &rtw89_mac_size.wde_qt4, &rtw89_mac_size.ple_qt13,
+                           &rtw89_mac_size.ple_qt13},
+       [RTW89_QTA_INVALID] = {RTW89_QTA_INVALID, NULL, NULL, NULL, NULL, NULL,
+                              NULL},
+};
+
+static const struct rtw89_dle_mem rtw8851b_dle_mem_usb3[] = {
+       [RTW89_QTA_SCC] = {RTW89_QTA_SCC, &rtw89_mac_size.wde_size25,
+                          &rtw89_mac_size.ple_size33, &rtw89_mac_size.wde_qt25,
+                          &rtw89_mac_size.wde_qt25, &rtw89_mac_size.ple_qt74,
+                          &rtw89_mac_size.ple_qt75},
+       [RTW89_QTA_DLFW] = {RTW89_QTA_DLFW, &rtw89_mac_size.wde_size9,
+                           &rtw89_mac_size.ple_size8, &rtw89_mac_size.wde_qt4,
+                           &rtw89_mac_size.wde_qt4, &rtw89_mac_size.ple_qt13,
+                           &rtw89_mac_size.ple_qt13},
+       [RTW89_QTA_INVALID] = {RTW89_QTA_INVALID, NULL, NULL, NULL, NULL, NULL,
+                              NULL},
+};
+
 static const struct rtw89_reg3_def rtw8851b_btc_preagc_en_defs[] = {
        {0x46D0, GENMASK(1, 0), 0x3},
        {0x4AD4, GENMASK(31, 0), 0xf},
@@ -2509,7 +2535,10 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x2f800,
        .hfc_param_ini          = {rtw8851b_hfc_param_ini_pcie, NULL, NULL},
-       .dle_mem                = {rtw8851b_dle_mem_pcie, NULL, NULL, NULL},
+       .dle_mem                = {rtw8851b_dle_mem_pcie,
+                                  rtw8851b_dle_mem_usb2,
+                                  rtw8851b_dle_mem_usb3,
+                                  NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
        .rf_base_addr           = {0xe000},