* [PATCH rtw-next 0/6] Add support for RTL8852AU
@ 2025-11-07 16:04 Bitterblue Smith
2025-11-07 16:06 ` [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO Bitterblue Smith
` (5 more replies)
0 siblings, 6 replies; 14+ messages in thread
From: Bitterblue Smith @ 2025-11-07 16:04 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
Just in time for the last of these devices disappearing from the
market.
Bitterblue Smith (6):
wifi: rtw89: Use the correct power sequences for USB/SDIO
wifi: rtw89: Add rtw8852a_dle_mem_usb
wifi: rtw89: Add rtw8852a_hfc_param_ini_usb
wifi: rtw89: 8852a: Accept USB devices and load their MAC address
wifi: rtw89: Add rtw8852au.c
wifi: rtw89: Enable the new rtw89_8852au module
drivers/net/wireless/realtek/rtw89/Kconfig | 11 +++
drivers/net/wireless/realtek/rtw89/Makefile | 3 +
drivers/net/wireless/realtek/rtw89/mac.c | 26 +++++-
drivers/net/wireless/realtek/rtw89/mac.h | 5 ++
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 80 ++++++++++++++++---
.../net/wireless/realtek/rtw89/rtw8852au.c | 79 ++++++++++++++++++
6 files changed, 192 insertions(+), 12 deletions(-)
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852au.c
--
2.51.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO
2025-11-07 16:04 [PATCH rtw-next 0/6] Add support for RTL8852AU Bitterblue Smith
@ 2025-11-07 16:06 ` Bitterblue Smith
2025-11-10 8:48 ` Ping-Ke Shih
2025-11-11 2:09 ` Ping-Ke Shih
2025-11-07 16:07 ` [PATCH rtw-next 2/6] wifi: rtw89: Add rtw8852a_dle_mem_usb Bitterblue Smith
` (4 subsequent siblings)
5 siblings, 2 replies; 14+ messages in thread
From: Bitterblue Smith @ 2025-11-07 16:06 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
Make rtw89_mac_pwr_seq() select the right parts of the power sequences
based on the interface type.
This is only relevant for RTL8852A. The other chips don't use power
sequences.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
drivers/net/wireless/realtek/rtw89/mac.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index 0a8474002cb7..e22b5d8c8171 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -1295,11 +1295,26 @@ static int rtw89_mac_sub_pwr_seq(struct rtw89_dev *rtwdev, u8 cv_msk,
static int rtw89_mac_pwr_seq(struct rtw89_dev *rtwdev,
const struct rtw89_pwr_cfg * const *cfg_seq)
{
+ u8 intf_msk;
int ret;
+ switch (rtwdev->hci.type) {
+ case RTW89_HCI_TYPE_PCIE:
+ intf_msk = PWR_INTF_MSK_PCIE;
+ break;
+ case RTW89_HCI_TYPE_USB:
+ intf_msk = PWR_INTF_MSK_USB;
+ break;
+ case RTW89_HCI_TYPE_SDIO:
+ intf_msk = PWR_INTF_MSK_SDIO;
+ break;
+ default:
+ return -EOPNOTSUPP;
+ }
+
for (; *cfg_seq; cfg_seq++) {
ret = rtw89_mac_sub_pwr_seq(rtwdev, BIT(rtwdev->hal.cv),
- PWR_INTF_MSK_PCIE, *cfg_seq);
+ intf_msk, *cfg_seq);
if (ret)
return -EBUSY;
}
--
2.51.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH rtw-next 2/6] wifi: rtw89: Add rtw8852a_dle_mem_usb
2025-11-07 16:04 [PATCH rtw-next 0/6] Add support for RTL8852AU Bitterblue Smith
2025-11-07 16:06 ` [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO Bitterblue Smith
@ 2025-11-07 16:07 ` Bitterblue Smith
2025-11-10 8:53 ` Ping-Ke Shih
2025-11-07 16:08 ` [PATCH rtw-next 3/6] wifi: rtw89: Add rtw8852a_hfc_param_ini_usb Bitterblue Smith
` (3 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Bitterblue Smith @ 2025-11-07 16:07 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
Add rtw8852a_dle_mem_usb and its 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 RTL8852AU.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
drivers/net/wireless/realtek/rtw89/mac.c | 9 +++++++++
drivers/net/wireless/realtek/rtw89/mac.h | 5 +++++
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 18 +++++++++++++++++-
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index e22b5d8c8171..dab0a76556c9 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -1669,6 +1669,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
/* PCIE 64 */
.wde_size0 = {RTW89_WDE_PG_64, 4095, 1,},
.wde_size0_v1 = {RTW89_WDE_PG_64, 3328, 0, 0,},
+ /* 8852A USB */
+ .wde_size1 = {RTW89_WDE_PG_64, 768, 0,},
/* DLFW */
.wde_size4 = {RTW89_WDE_PG_64, 0, 4096,},
.wde_size4_v1 = {RTW89_WDE_PG_64, 0, 3328, 0,},
@@ -1692,6 +1694,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
/* PCIE */
.ple_size0 = {RTW89_PLE_PG_128, 1520, 16,},
.ple_size0_v1 = {RTW89_PLE_PG_128, 2688, 240, 212992,},
+ /* 8852A USB */
+ .ple_size1 = {RTW89_PLE_PG_128, 3184, 16,},
.ple_size3_v1 = {RTW89_PLE_PG_128, 2928, 0, 212992,},
/* DLFW */
.ple_size4 = {RTW89_PLE_PG_128, 64, 1472,},
@@ -1715,6 +1719,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
/* PCIE 64 */
.wde_qt0 = {3792, 196, 0, 107,},
.wde_qt0_v1 = {3302, 6, 0, 20,},
+ /* 8852A USB */
+ .wde_qt1 = {512, 196, 0, 60,},
/* DLFW */
.wde_qt4 = {0, 0, 0, 0,},
/* PCIE 64 */
@@ -1743,6 +1749,9 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
.ple_qt13 = {0, 0, 16, 48, 0, 0, 0, 0, 0, 0, 0,},
/* PCIE 64 */
.ple_qt18 = {147, 0, 16, 20, 17, 13, 89, 0, 32, 14, 8, 0,},
+ /* 8852A USB SCC */
+ .ple_qt25 = {1536, 0, 16, 48, 13, 13, 360, 0, 32, 40, 8, 0,},
+ .ple_qt26 = {2654, 0, 1134, 48, 64, 13, 1478, 0, 64, 128, 120, 0,},
/* USB 52C USB3.0 */
.ple_qt42 = {1068, 0, 16, 48, 4, 13, 178, 0, 16, 1, 8, 16, 0,},
/* USB 52C USB3.0 */
diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
index ce3474a7ba03..868413335f6c 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.h
+++ b/drivers/net/wireless/realtek/rtw89/mac.h
@@ -924,6 +924,7 @@ struct rtw89_mac_size_set {
const struct rtw89_hfc_prec_cfg hfc_prec_cfg_c0;
const struct rtw89_hfc_prec_cfg hfc_prec_cfg_c2;
const struct rtw89_dle_size wde_size0;
+ const struct rtw89_dle_size wde_size1;
const struct rtw89_dle_size wde_size0_v1;
const struct rtw89_dle_size wde_size4;
const struct rtw89_dle_size wde_size4_v1;
@@ -937,6 +938,7 @@ struct rtw89_mac_size_set {
const struct rtw89_dle_size wde_size25;
const struct rtw89_dle_size wde_size31;
const struct rtw89_dle_size ple_size0;
+ const struct rtw89_dle_size ple_size1;
const struct rtw89_dle_size ple_size0_v1;
const struct rtw89_dle_size ple_size3_v1;
const struct rtw89_dle_size ple_size4;
@@ -950,6 +952,7 @@ struct rtw89_mac_size_set {
const struct rtw89_dle_size ple_size33;
const struct rtw89_dle_size ple_size34;
const struct rtw89_wde_quota wde_qt0;
+ const struct rtw89_wde_quota wde_qt1;
const struct rtw89_wde_quota wde_qt0_v1;
const struct rtw89_wde_quota wde_qt4;
const struct rtw89_wde_quota wde_qt6;
@@ -967,6 +970,8 @@ struct rtw89_mac_size_set {
const struct rtw89_ple_quota ple_qt9;
const struct rtw89_ple_quota ple_qt13;
const struct rtw89_ple_quota ple_qt18;
+ const struct rtw89_ple_quota ple_qt25;
+ const struct rtw89_ple_quota ple_qt26;
const struct rtw89_ple_quota ple_qt42;
const struct rtw89_ple_quota ple_qt43;
const struct rtw89_ple_quota ple_qt44;
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
index fa347dbebf9a..7855fd55b43e 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
@@ -65,6 +65,19 @@ static const struct rtw89_dle_mem rtw8852a_dle_mem_pcie[] = {
NULL},
};
+static const struct rtw89_dle_mem rtw8852a_dle_mem_usb[] = {
+ [RTW89_QTA_SCC] = {RTW89_QTA_SCC, &rtw89_mac_size.wde_size1,
+ &rtw89_mac_size.ple_size1, &rtw89_mac_size.wde_qt1,
+ &rtw89_mac_size.wde_qt1, &rtw89_mac_size.ple_qt25,
+ &rtw89_mac_size.ple_qt26},
+ [RTW89_QTA_DLFW] = {RTW89_QTA_DLFW, &rtw89_mac_size.wde_size4,
+ &rtw89_mac_size.ple_size4, &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_reg2_def rtw8852a_pmac_ht20_mcs7_tbl[] = {
{0x44AC, 0x00000000},
{0x44B0, 0x00000000},
@@ -2225,7 +2238,10 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
.dis_2g_40m_ul_ofdma = true,
.rsvd_ple_ofst = 0x6f800,
.hfc_param_ini = {rtw8852a_hfc_param_ini_pcie, NULL, NULL},
- .dle_mem = {rtw8852a_dle_mem_pcie, NULL, NULL, NULL},
+ .dle_mem = {rtw8852a_dle_mem_pcie,
+ rtw8852a_dle_mem_usb,
+ rtw8852a_dle_mem_usb,
+ NULL},
.wde_qempty_acq_grpnum = 16,
.wde_qempty_mgq_grpsel = 16,
.rf_base_addr = {0xc000, 0xd000},
--
2.51.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH rtw-next 3/6] wifi: rtw89: Add rtw8852a_hfc_param_ini_usb
2025-11-07 16:04 [PATCH rtw-next 0/6] Add support for RTL8852AU Bitterblue Smith
2025-11-07 16:06 ` [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO Bitterblue Smith
2025-11-07 16:07 ` [PATCH rtw-next 2/6] wifi: rtw89: Add rtw8852a_dle_mem_usb Bitterblue Smith
@ 2025-11-07 16:08 ` Bitterblue Smith
2025-11-10 8:54 ` Ping-Ke Shih
2025-11-07 16:08 ` [PATCH rtw-next 4/6] wifi: rtw89: 8852a: Accept USB devices and load their MAC address Bitterblue Smith
` (2 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Bitterblue Smith @ 2025-11-07 16:08 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
"hfc" means "hci fc" which is "Host Control Interface Flow Control".
These are some parameters needed for RTL8852AU.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 46 ++++++++++++++++++-
1 file changed, 45 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
index 7855fd55b43e..76b64fd5a639 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
@@ -48,6 +48,48 @@ static const struct rtw89_hfc_param_ini rtw8852a_hfc_param_ini_pcie[] = {
[RTW89_QTA_INVALID] = {NULL},
};
+static const struct rtw89_hfc_ch_cfg rtw8852a_hfc_chcfg_usb[] = {
+ {22, 402, grp_0}, /* ACH 0 */
+ {0, 0, grp_0}, /* ACH 1 */
+ {22, 402, grp_0}, /* ACH 2 */
+ {0, 0, grp_0}, /* ACH 3 */
+ {22, 402, grp_0}, /* ACH 4 */
+ {0, 0, grp_0}, /* ACH 5 */
+ {22, 402, grp_0}, /* ACH 6 */
+ {0, 0, grp_0}, /* ACH 7 */
+ {22, 402, grp_0}, /* B0MGQ */
+ {0, 0, grp_0}, /* B0HIQ */
+ {22, 402, grp_0}, /* B1MGQ */
+ {0, 0, grp_0}, /* B1HIQ */
+ {0, 0, 0} /* FWCMDQ */
+};
+
+static const struct rtw89_hfc_pub_cfg rtw8852a_hfc_pubcfg_usb = {
+ 512, /* Group 0 */
+ 0, /* Group 1 */
+ 512, /* Public Max */
+ 104 /* WP threshold */
+};
+
+static const struct rtw89_hfc_prec_cfg rtw8852a_hfc_preccfg_usb = {
+ 11, /* CH 0-11 pre-cost */
+ 32, /* H2C pre-cost */
+ 76, /* WP CH 0-7 pre-cost */
+ 25, /* WP CH 8-11 pre-cost */
+ 1, /* CH 0-11 full condition */
+ 1, /* H2C full condition */
+ 1, /* WP CH 0-7 full condition */
+ 1, /* WP CH 8-11 full condition */
+};
+
+static const struct rtw89_hfc_param_ini rtw8852a_hfc_param_ini_usb[] = {
+ [RTW89_QTA_SCC] = {rtw8852a_hfc_chcfg_usb, &rtw8852a_hfc_pubcfg_usb,
+ &rtw8852a_hfc_preccfg_usb, RTW89_HCIFC_STF},
+ [RTW89_QTA_DLFW] = {NULL, NULL,
+ &rtw8852a_hfc_preccfg_usb, RTW89_HCIFC_STF},
+ [RTW89_QTA_INVALID] = {NULL},
+};
+
static const struct rtw89_dle_mem rtw8852a_dle_mem_pcie[] = {
[RTW89_QTA_SCC] = {RTW89_QTA_SCC, &rtw89_mac_size.wde_size0,
&rtw89_mac_size.ple_size0, &rtw89_mac_size.wde_qt0,
@@ -2237,7 +2279,9 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
.max_amsdu_limit = 3500,
.dis_2g_40m_ul_ofdma = true,
.rsvd_ple_ofst = 0x6f800,
- .hfc_param_ini = {rtw8852a_hfc_param_ini_pcie, NULL, NULL},
+ .hfc_param_ini = {rtw8852a_hfc_param_ini_pcie,
+ rtw8852a_hfc_param_ini_usb,
+ NULL},
.dle_mem = {rtw8852a_dle_mem_pcie,
rtw8852a_dle_mem_usb,
rtw8852a_dle_mem_usb,
--
2.51.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH rtw-next 4/6] wifi: rtw89: 8852a: Accept USB devices and load their MAC address
2025-11-07 16:04 [PATCH rtw-next 0/6] Add support for RTL8852AU Bitterblue Smith
` (2 preceding siblings ...)
2025-11-07 16:08 ` [PATCH rtw-next 3/6] wifi: rtw89: Add rtw8852a_hfc_param_ini_usb Bitterblue Smith
@ 2025-11-07 16:08 ` Bitterblue Smith
2025-11-10 8:54 ` Ping-Ke Shih
2025-11-07 16:09 ` [PATCH rtw-next 5/6] wifi: rtw89: Add rtw8852au.c Bitterblue Smith
2025-11-07 16:10 ` [PATCH rtw-next 6/6] wifi: rtw89: Enable the new rtw89_8852au module Bitterblue Smith
5 siblings, 1 reply; 14+ messages in thread
From: Bitterblue Smith @ 2025-11-07 16:08 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
Make rtw8852a_read_efuse() accept USB devices and load the MAC
address from the correct offset.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a.c b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
index 76b64fd5a639..48205aa4a980 100644
--- a/drivers/net/wireless/realtek/rtw89/rtw8852a.c
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852a.c
@@ -621,14 +621,6 @@ static const struct rtw89_edcca_regs rtw8852a_edcca_regs = {
.tx_collision_t2r_st_mask = B_TX_COLLISION_T2R_ST_M,
};
-static void rtw8852ae_efuse_parsing(struct rtw89_efuse *efuse,
- struct rtw8852a_efuse *map)
-{
- ether_addr_copy(efuse->addr, map->e.mac_addr);
- efuse->rfe_type = map->rfe_type;
- efuse->xtal_cap = map->xtal_k;
-}
-
static void rtw8852a_efuse_parsing_tssi(struct rtw89_dev *rtwdev,
struct rtw8852a_efuse *map)
{
@@ -674,12 +666,18 @@ static int rtw8852a_read_efuse(struct rtw89_dev *rtwdev, u8 *log_map,
switch (rtwdev->hci.type) {
case RTW89_HCI_TYPE_PCIE:
- rtw8852ae_efuse_parsing(efuse, map);
+ ether_addr_copy(efuse->addr, map->e.mac_addr);
+ break;
+ case RTW89_HCI_TYPE_USB:
+ ether_addr_copy(efuse->addr, map->u.mac_addr);
break;
default:
return -ENOTSUPP;
}
+ efuse->rfe_type = map->rfe_type;
+ efuse->xtal_cap = map->xtal_k;
+
rtw89_info(rtwdev, "chip rfe_type is %d\n", efuse->rfe_type);
return 0;
--
2.51.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH rtw-next 5/6] wifi: rtw89: Add rtw8852au.c
2025-11-07 16:04 [PATCH rtw-next 0/6] Add support for RTL8852AU Bitterblue Smith
` (3 preceding siblings ...)
2025-11-07 16:08 ` [PATCH rtw-next 4/6] wifi: rtw89: 8852a: Accept USB devices and load their MAC address Bitterblue Smith
@ 2025-11-07 16:09 ` Bitterblue Smith
2025-11-10 8:57 ` Ping-Ke Shih
2025-11-07 16:10 ` [PATCH rtw-next 6/6] wifi: rtw89: Enable the new rtw89_8852au module Bitterblue Smith
5 siblings, 1 reply; 14+ messages in thread
From: Bitterblue Smith @ 2025-11-07 16:09 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
This is the entry point of the new rtw89_8852au module.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
.../net/wireless/realtek/rtw89/rtw8852au.c | 79 +++++++++++++++++++
1 file changed, 79 insertions(+)
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852au.c
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852au.c b/drivers/net/wireless/realtek/rtw89/rtw8852au.c
new file mode 100644
index 000000000000..ca782469c455
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852au.c
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2025 Realtek Corporation
+ */
+
+#include <linux/module.h>
+#include <linux/usb.h>
+#include "rtw8852a.h"
+#include "reg.h"
+#include "usb.h"
+
+static const struct rtw89_usb_info rtw8852a_usb_info = {
+ .usb_host_request_2 = R_AX_USB_HOST_REQUEST_2,
+ .usb_wlan0_1 = R_AX_USB_WLAN0_1,
+ .hci_func_en = R_AX_HCI_FUNC_EN,
+ .usb3_mac_npi_config_intf_0 = R_AX_USB3_MAC_NPI_CONFIG_INTF_0,
+ .usb_endpoint_0 = R_AX_USB_ENDPOINT_0,
+ .usb_endpoint_2 = R_AX_USB_ENDPOINT_2,
+ .bulkout_id = {
+ [RTW89_DMA_ACH0] = 3,
+ [RTW89_DMA_ACH2] = 5,
+ [RTW89_DMA_ACH4] = 4,
+ [RTW89_DMA_ACH6] = 6,
+ [RTW89_DMA_B0MG] = 0,
+ [RTW89_DMA_B0HI] = 0,
+ [RTW89_DMA_B1MG] = 1,
+ [RTW89_DMA_B1HI] = 1,
+ [RTW89_DMA_H2C] = 2,
+ },
+};
+
+static const struct rtw89_driver_info rtw89_8852au_info = {
+ .chip = &rtw8852a_chip_info,
+ .variant = NULL,
+ .quirks = NULL,
+ .bus = {
+ .usb = &rtw8852a_usb_info,
+ }
+};
+
+static const struct usb_device_id rtw_8852au_id_table[] = {
+ { USB_DEVICE_AND_INTERFACE_INFO(0x0411, 0x0312, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x4020, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1997, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x0bda, 0x8832, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x0bda, 0x885a, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x0bda, 0x885c, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3321, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x332c, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x013f, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0140, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0141, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ { USB_DEVICE_AND_INTERFACE_INFO(0x3625, 0x010f, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&rtw89_8852au_info },
+ {},
+};
+MODULE_DEVICE_TABLE(usb, rtw_8852au_id_table);
+
+static struct usb_driver rtw_8852au_driver = {
+ .name = KBUILD_MODNAME,
+ .id_table = rtw_8852au_id_table,
+ .probe = rtw89_usb_probe,
+ .disconnect = rtw89_usb_disconnect,
+};
+module_usb_driver(rtw_8852au_driver);
+
+MODULE_AUTHOR("Bitterblue Smith <rtl8821cerfe2@gmail.com>");
+MODULE_DESCRIPTION("Realtek 802.11ax wireless 8852AU driver");
+MODULE_LICENSE("Dual BSD/GPL");
--
2.51.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH rtw-next 6/6] wifi: rtw89: Enable the new rtw89_8852au module
2025-11-07 16:04 [PATCH rtw-next 0/6] Add support for RTL8852AU Bitterblue Smith
` (4 preceding siblings ...)
2025-11-07 16:09 ` [PATCH rtw-next 5/6] wifi: rtw89: Add rtw8852au.c Bitterblue Smith
@ 2025-11-07 16:10 ` Bitterblue Smith
2025-11-10 9:18 ` Ping-Ke Shih
5 siblings, 1 reply; 14+ messages in thread
From: Bitterblue Smith @ 2025-11-07 16:10 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
Tested in station mode and a little in AP mode.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
drivers/net/wireless/realtek/rtw89/Kconfig | 11 +++++++++++
drivers/net/wireless/realtek/rtw89/Makefile | 3 +++
2 files changed, 14 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw89/Kconfig b/drivers/net/wireless/realtek/rtw89/Kconfig
index e89f7481475a..44d8a7f32bf2 100644
--- a/drivers/net/wireless/realtek/rtw89/Kconfig
+++ b/drivers/net/wireless/realtek/rtw89/Kconfig
@@ -74,6 +74,17 @@ config RTW89_8852AE
802.11ax PCIe wireless network (Wi-Fi 6) adapter
+config RTW89_8852AU
+ tristate "Realtek 8852AU USB wireless network (Wi-Fi 6) adapter"
+ depends on USB
+ select RTW89_CORE
+ select RTW89_USB
+ select RTW89_8852A
+ help
+ Select this option will enable support for 8852AU chipset
+
+ 802.11ax USB wireless network (Wi-Fi 6) adapter
+
config RTW89_8852BE
tristate "Realtek 8852BE PCI wireless network (Wi-Fi 6) adapter"
depends on PCI
diff --git a/drivers/net/wireless/realtek/rtw89/Makefile b/drivers/net/wireless/realtek/rtw89/Makefile
index e0d21972e57c..1be81f254fca 100644
--- a/drivers/net/wireless/realtek/rtw89/Makefile
+++ b/drivers/net/wireless/realtek/rtw89/Makefile
@@ -43,6 +43,9 @@ rtw89_8852a-objs := rtw8852a.o \
obj-$(CONFIG_RTW89_8852AE) += rtw89_8852ae.o
rtw89_8852ae-objs := rtw8852ae.o
+obj-$(CONFIG_RTW89_8852AU) += rtw89_8852au.o
+rtw89_8852au-objs := rtw8852au.o
+
obj-$(CONFIG_RTW89_8852B_COMMON) += rtw89_8852b_common.o
rtw89_8852b_common-objs := rtw8852b_common.o
--
2.51.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* RE: [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO
2025-11-07 16:06 ` [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO Bitterblue Smith
@ 2025-11-10 8:48 ` Ping-Ke Shih
2025-11-11 2:09 ` Ping-Ke Shih
1 sibling, 0 replies; 14+ messages in thread
From: Ping-Ke Shih @ 2025-11-10 8:48 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> Make rtw89_mac_pwr_seq() select the right parts of the power sequences
> based on the interface type.
>
> This is only relevant for RTL8852A. The other chips don't use power
> sequences.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH rtw-next 2/6] wifi: rtw89: Add rtw8852a_dle_mem_usb
2025-11-07 16:07 ` [PATCH rtw-next 2/6] wifi: rtw89: Add rtw8852a_dle_mem_usb Bitterblue Smith
@ 2025-11-10 8:53 ` Ping-Ke Shih
0 siblings, 0 replies; 14+ messages in thread
From: Ping-Ke Shih @ 2025-11-10 8:53 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> Add rtw8852a_dle_mem_usb and its 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 RTL8852AU.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH rtw-next 3/6] wifi: rtw89: Add rtw8852a_hfc_param_ini_usb
2025-11-07 16:08 ` [PATCH rtw-next 3/6] wifi: rtw89: Add rtw8852a_hfc_param_ini_usb Bitterblue Smith
@ 2025-11-10 8:54 ` Ping-Ke Shih
0 siblings, 0 replies; 14+ messages in thread
From: Ping-Ke Shih @ 2025-11-10 8:54 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> "hfc" means "hci fc" which is "Host Control Interface Flow Control".
> These are some parameters needed for RTL8852AU.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH rtw-next 4/6] wifi: rtw89: 8852a: Accept USB devices and load their MAC address
2025-11-07 16:08 ` [PATCH rtw-next 4/6] wifi: rtw89: 8852a: Accept USB devices and load their MAC address Bitterblue Smith
@ 2025-11-10 8:54 ` Ping-Ke Shih
0 siblings, 0 replies; 14+ messages in thread
From: Ping-Ke Shih @ 2025-11-10 8:54 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> Make rtw8852a_read_efuse() accept USB devices and load the MAC
> address from the correct offset.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH rtw-next 5/6] wifi: rtw89: Add rtw8852au.c
2025-11-07 16:09 ` [PATCH rtw-next 5/6] wifi: rtw89: Add rtw8852au.c Bitterblue Smith
@ 2025-11-10 8:57 ` Ping-Ke Shih
0 siblings, 0 replies; 14+ messages in thread
From: Ping-Ke Shih @ 2025-11-10 8:57 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> This is the entry point of the new rtw89_8852au module.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH rtw-next 6/6] wifi: rtw89: Enable the new rtw89_8852au module
2025-11-07 16:10 ` [PATCH rtw-next 6/6] wifi: rtw89: Enable the new rtw89_8852au module Bitterblue Smith
@ 2025-11-10 9:18 ` Ping-Ke Shih
0 siblings, 0 replies; 14+ messages in thread
From: Ping-Ke Shih @ 2025-11-10 9:18 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> Tested in station mode and a little in AP mode.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Thanks for your great work!
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO
2025-11-07 16:06 ` [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO Bitterblue Smith
2025-11-10 8:48 ` Ping-Ke Shih
@ 2025-11-11 2:09 ` Ping-Ke Shih
1 sibling, 0 replies; 14+ messages in thread
From: Ping-Ke Shih @ 2025-11-11 2:09 UTC (permalink / raw)
To: Bitterblue Smith, linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> Make rtw89_mac_pwr_seq() select the right parts of the power sequences
> based on the interface type.
>
> This is only relevant for RTL8852A. The other chips don't use power
> sequences.
>
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
> Acked-by: Ping-Ke Shih <pkshih@realtek.com>
6 patch(es) applied to rtw-next branch of rtw.git, thanks.
233542f5b4a8 wifi: rtw89: Use the correct power sequences for USB/SDIO
0eea5e0f03db wifi: rtw89: Add rtw8852a_dle_mem_usb
c19b106609f3 wifi: rtw89: Add rtw8852a_hfc_param_ini_usb
1dfd11e70022 wifi: rtw89: 8852a: Accept USB devices and load their MAC address
0029ccab53ac wifi: rtw89: Add rtw8852au.c
623c177323ec wifi: rtw89: Enable the new rtw89_8852au module
---
https://github.com/pkshih/rtw.git
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-11-11 2:09 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-07 16:04 [PATCH rtw-next 0/6] Add support for RTL8852AU Bitterblue Smith
2025-11-07 16:06 ` [PATCH rtw-next 1/6] wifi: rtw89: Use the correct power sequences for USB/SDIO Bitterblue Smith
2025-11-10 8:48 ` Ping-Ke Shih
2025-11-11 2:09 ` Ping-Ke Shih
2025-11-07 16:07 ` [PATCH rtw-next 2/6] wifi: rtw89: Add rtw8852a_dle_mem_usb Bitterblue Smith
2025-11-10 8:53 ` Ping-Ke Shih
2025-11-07 16:08 ` [PATCH rtw-next 3/6] wifi: rtw89: Add rtw8852a_hfc_param_ini_usb Bitterblue Smith
2025-11-10 8:54 ` Ping-Ke Shih
2025-11-07 16:08 ` [PATCH rtw-next 4/6] wifi: rtw89: 8852a: Accept USB devices and load their MAC address Bitterblue Smith
2025-11-10 8:54 ` Ping-Ke Shih
2025-11-07 16:09 ` [PATCH rtw-next 5/6] wifi: rtw89: Add rtw8852au.c Bitterblue Smith
2025-11-10 8:57 ` Ping-Ke Shih
2025-11-07 16:10 ` [PATCH rtw-next 6/6] wifi: rtw89: Enable the new rtw89_8852au module Bitterblue Smith
2025-11-10 9:18 ` Ping-Ke Shih
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).