wifi: rtw89: change qutoa to DBCC by default for WiFi 7 chips
authorPing-Ke Shih <pkshih@realtek.com>
Fri, 9 Feb 2024 06:52:29 +0000 (14:52 +0800)
committerKalle Valo <kvalo@kernel.org>
Mon, 12 Feb 2024 15:39:14 +0000 (17:39 +0200)
Since WiFi 7 is expected to support MLO, so we should enable MAC-0/1 and
PHY-0/1. By default, set dbcc_en=true, change quota to DBCC mode, and set
MLO mode to 2 + 0 that means we only use 2x2 connection on MAC/PHY-0
for now.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240209065229.34515-12-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.c
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/mac.c
drivers/net/wireless/realtek/rtw89/rtw8922a.c

index 6441d99cd6c0fa5e34c149c7f6c082c016773dcc..f697e3d898e612dc7e29c713306ca3e31f45d973 100644 (file)
@@ -4075,7 +4075,6 @@ int rtw89_core_start(struct rtw89_dev *rtwdev)
 {
        int ret;
 
-       rtwdev->mac.qta_mode = RTW89_QTA_SCC;
        ret = rtw89_mac_init(rtwdev);
        if (ret) {
                rtw89_err(rtwdev, "mac init fail, ret:%d\n", ret);
@@ -4213,6 +4212,13 @@ int rtw89_core_init(struct rtw89_dev *rtwdev)
        rtwdev->hal.rx_fltr = DEFAULT_AX_RX_FLTR;
        rtwdev->dbcc_en = false;
        rtwdev->mlo_dbcc_mode = MLO_DBCC_NOT_SUPPORT;
+       rtwdev->mac.qta_mode = RTW89_QTA_SCC;
+
+       if (rtwdev->chip->chip_gen == RTW89_CHIP_BE) {
+               rtwdev->dbcc_en = true;
+               rtwdev->mac.qta_mode = RTW89_QTA_DBCC;
+               rtwdev->mlo_dbcc_mode = MLO_2_PLUS_0_1RF;
+       }
 
        INIT_WORK(&btc->eapol_notify_work, rtw89_btc_ntfy_eapol_packet_work);
        INIT_WORK(&btc->arp_notify_work, rtw89_btc_ntfy_arp_packet_work);
index 0e451245a65a560dcab6e802ef01f73d59326386..e3913efedc288a772485b85059c909dc6632ac2a 100644 (file)
@@ -3306,6 +3306,7 @@ struct rtw89_scan_option {
 
 enum rtw89_qta_mode {
        RTW89_QTA_SCC,
+       RTW89_QTA_DBCC,
        RTW89_QTA_DLFW,
        RTW89_QTA_WOW,
 
index 296576a634e7956965c824a59eb33df5d22dd4d9..3ea50d49e12f79e8d1302369b0ab8d0cb60aac15 100644 (file)
@@ -1625,7 +1625,7 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
        .wde_size19 = {RTW89_WDE_PG_64, 3328, 0,},
        /* PCIE */
        .ple_size0 = {RTW89_PLE_PG_128, 1520, 16,},
-       .ple_size0_v1 = {RTW89_PLE_PG_128, 2672, 256, 212992,},
+       .ple_size0_v1 = {RTW89_PLE_PG_128, 2688, 240, 212992,},
        .ple_size3_v1 = {RTW89_PLE_PG_128, 2928, 0, 212992,},
        /* DLFW */
        .ple_size4 = {RTW89_PLE_PG_128, 64, 1472,},
@@ -1650,8 +1650,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
        .wde_qt17 = {0, 0, 0,  0,},
        /* 8852C PCIE SCC */
        .wde_qt18 = {3228, 60, 0, 40,},
-       .ple_qt0 = {320, 0, 32, 16, 13, 13, 292, 0, 32, 18, 1, 4, 0,},
-       .ple_qt1 = {320, 0, 32, 16, 1944, 1944, 2223, 0, 1963, 1949, 1, 1935, 0,},
+       .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 */
        .ple_qt4 = {264, 0, 16, 20, 26, 13, 356, 0, 32, 40, 8,},
        /* PCIE SCC */
@@ -1677,7 +1677,7 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
        .ple_qt_52b_wow = {147, 0, 16, 20, 157, 13, 133, 0, 172, 14, 24, 0,},
        /* 8851B PCIE WOW */
        .ple_qt_51b_wow = {147, 0, 16, 20, 157, 13, 133, 0, 172, 14, 24, 0,},
-       .ple_rsvd_qt0 = {2, 112, 56, 6, 6, 6, 6, 0, 0, 62,},
+       .ple_rsvd_qt0 = {2, 107, 107, 6, 6, 6, 6, 0, 0, 0,},
        .ple_rsvd_qt1 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,},
        .rsvd0_size0 = {212992, 0,},
        .rsvd1_size0 = {587776, 2048,},
index f7b81daa0b0339776a7a2998277d8ffd05df4e12..a4b7d2e79638421754bcba32f1164e60eb410b71 100644 (file)
@@ -47,6 +47,8 @@ static const struct rtw89_hfc_pub_cfg rtw8922a_hfc_pubcfg_pcie = {
 static const struct rtw89_hfc_param_ini rtw8922a_hfc_param_ini_pcie[] = {
        [RTW89_QTA_SCC] = {rtw8922a_hfc_chcfg_pcie, &rtw8922a_hfc_pubcfg_pcie,
                           &rtw89_mac_size.hfc_prec_cfg_c0, RTW89_HCIFC_POH},
+       [RTW89_QTA_DBCC] = {rtw8922a_hfc_chcfg_pcie, &rtw8922a_hfc_pubcfg_pcie,
+                          &rtw89_mac_size.hfc_prec_cfg_c0, RTW89_HCIFC_POH},
        [RTW89_QTA_DLFW] = {NULL, NULL, &rtw89_mac_size.hfc_prec_cfg_c2,
                            RTW89_HCIFC_POH},
        [RTW89_QTA_INVALID] = {NULL},
@@ -58,6 +60,11 @@ static const struct rtw89_dle_mem rtw8922a_dle_mem_pcie[] = {
                           &rtw89_mac_size.wde_qt0_v1, &rtw89_mac_size.ple_qt0,
                           &rtw89_mac_size.ple_qt1, &rtw89_mac_size.ple_rsvd_qt0,
                           &rtw89_mac_size.rsvd0_size0, &rtw89_mac_size.rsvd1_size0},
+       [RTW89_QTA_DBCC] = {RTW89_QTA_DBCC, &rtw89_mac_size.wde_size0_v1,
+                          &rtw89_mac_size.ple_size0_v1, &rtw89_mac_size.wde_qt0_v1,
+                          &rtw89_mac_size.wde_qt0_v1, &rtw89_mac_size.ple_qt0,
+                          &rtw89_mac_size.ple_qt1, &rtw89_mac_size.ple_rsvd_qt0,
+                          &rtw89_mac_size.rsvd0_size0, &rtw89_mac_size.rsvd1_size0},
        [RTW89_QTA_DLFW] = {RTW89_QTA_DLFW, &rtw89_mac_size.wde_size4_v1,
                            &rtw89_mac_size.ple_size3_v1, &rtw89_mac_size.wde_qt4,
                            &rtw89_mac_size.wde_qt4, &rtw89_mac_size.ple_qt9,