diff mbox series

[v2] wifi: rtl8xxxu: Enable AP mode for RTL8192CU (RTL8188CUS)

Message ID 20250122071512.10165-1-ezra@easyb.ch (mailing list archive)
State New
Delegated to: Ping-Ke Shih
Headers show
Series [v2] wifi: rtl8xxxu: Enable AP mode for RTL8192CU (RTL8188CUS) | expand

Commit Message

Ezra Buehler Jan. 22, 2025, 7:15 a.m. UTC
From: Ezra Buehler <ezra.buehler@husqvarnagroup.com>

This allows the driver to be used in wireless access point mode on the
AT91SAM9G25-based GARDENA smart Gateway.

Unfortunately, the data throughput in AP mode appears to be lower than
with the vendor driver (or in STA mode). Especially when sending, the
data rate is significantly lower. My measurements performed with iperf3
and an Edimax EW-7811Un (VID: 7392, PID: 7811) showed a maximum TX rate
of about 4 Mbits/sec compared to the ~24 Mbits/sec measured with the
rtl8192cu driver.

Although the performance might be good enough for our use case, this is
something that should be further looked into.

Signed-off-by: Ezra Buehler <ezra.buehler@husqvarnagroup.com>
---
When comparing the register values dumped for the two drivers in AP
mode, there are quite some differences. So, no idea where to start
digging deeper. Any pointers would be highly appreciated.

Cheers,
Ezra.
---
Changes in v2:
- Set max_macid_num to correct value
- Make commit message more elaborate, mention bad TX performance
- Link to v1: https://lore.kernel.org/20241108195511.1338147-1-ezra@easyb.ch
---
 drivers/net/wireless/realtek/rtl8xxxu/8192c.c | 2 ++
 1 file changed, 2 insertions(+)


base-commit: 361cb056e2468be534f47c1a6745f96581a721e3
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8192c.c b/drivers/net/wireless/realtek/rtl8xxxu/8192c.c
index 0abb1b092bc2..73034e7e41d1 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/8192c.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/8192c.c
@@ -644,6 +644,8 @@  struct rtl8xxxu_fileops rtl8192cu_fops = {
 	.rx_agg_buf_size = 16000,
 	.tx_desc_size = sizeof(struct rtl8xxxu_txdesc32),
 	.rx_desc_size = sizeof(struct rtl8xxxu_rxdesc16),
+	.supports_ap = 1,
+	.max_macid_num = 32,
 	.max_sec_cam_num = 32,
 	.adda_1t_init = 0x0b1b25a0,
 	.adda_1t_path_on = 0x0bdb25a0,