diff mbox series

wifi: rtl8xxxu: Enable AP mode for RTL8192CU (RTL8188CUS)

Message ID 20241108195511.1338147-1-ezra@easyb.ch
State New
Headers show
Series wifi: rtl8xxxu: Enable AP mode for RTL8192CU (RTL8188CUS) | expand

Commit Message

Ezra Buehler Nov. 8, 2024, 7:55 p.m. UTC
From: Ezra Buehler <ezra.buehler@husqvarnagroup.com>

This has been tested on the AT91SAM9G25-based GARDENA smart Gateway
which uses an RTL8188CUS (product ID 0x8176).

Signed-off-by: Ezra Buehler <ezra.buehler@husqvarnagroup.com>
---

Note that I was not able to figure out how many clients the RTL8192CU
and similar can actually handle, 127 is a wild guess.


 drivers/net/wireless/realtek/rtl8xxxu/8192c.c | 2 ++
 1 file changed, 2 insertions(+)

--
2.43.0

Comments

Bitterblue Smith Nov. 8, 2024, 9:17 p.m. UTC | #1
On 08/11/2024 21:55, Ezra Buehler wrote:
> From: Ezra Buehler <ezra.buehler@husqvarnagroup.com>
> 
> This has been tested on the AT91SAM9G25-based GARDENA smart Gateway
> which uses an RTL8188CUS (product ID 0x8176).
> 
> Signed-off-by: Ezra Buehler <ezra.buehler@husqvarnagroup.com>
> ---
> 
> Note that I was not able to figure out how many clients the RTL8192CU
> and similar can actually handle, 127 is a wild guess.
> 

I looked into that once and found that the old 8192cu and 8723au
drivers have a limit of 32 macids.

rtl8xxxu_fill_txdesc_v1() and rtl8xxxu_update_rate_mask() should
fill the macid for AP mode to work well. Otherwise the firmware
will not use the right TX rates for each connected client. It goes
in the lowest 5 bits of tx_desc->txdw1 and h2c.ramask.arg.

I tried AP mode in July 2023 and found that the TX speed was less
than 10 megabits/second. In station mode it was at least 40.
I didn't investigate more. How is the speed for you?

> 
>  drivers/net/wireless/realtek/rtl8xxxu/8192c.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8192c.c b/drivers/net/wireless/realtek/rtl8xxxu/8192c.c
> index 0abb1b092bc20..72918fe621fa1 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 = 128,
>  	.max_sec_cam_num = 32,
>  	.adda_1t_init = 0x0b1b25a0,
>  	.adda_1t_path_on = 0x0bdb25a0,
> --
> 2.43.0
Ping-Ke Shih Nov. 18, 2024, 2:28 a.m. UTC | #2
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> On 08/11/2024 21:55, Ezra Buehler wrote:
> > From: Ezra Buehler <ezra.buehler@husqvarnagroup.com>
> >
> > This has been tested on the AT91SAM9G25-based GARDENA smart Gateway
> > which uses an RTL8188CUS (product ID 0x8176).
> >
> > Signed-off-by: Ezra Buehler <ezra.buehler@husqvarnagroup.com>
> > ---
> >
> > Note that I was not able to figure out how many clients the RTL8192CU
> > and similar can actually handle, 127 is a wild guess.
> >
> 
> I looked into that once and found that the old 8192cu and 8723au
> drivers have a limit of 32 macids.
> 
> rtl8xxxu_fill_txdesc_v1() and rtl8xxxu_update_rate_mask() should
> fill the macid for AP mode to work well. Otherwise the firmware
> will not use the right TX rates for each connected client. It goes
> in the lowest 5 bits of tx_desc->txdw1 and h2c.ramask.arg.
> 
> I tried AP mode in July 2023 and found that the TX speed was less
> than 10 megabits/second. In station mode it was at least 40.
> I didn't investigate more. How is the speed for you?

I also want to know the test result. Please mention that in commit
message as well. 

> 
> >
> >  drivers/net/wireless/realtek/rtl8xxxu/8192c.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8192c.c
> b/drivers/net/wireless/realtek/rtl8xxxu/8192c.c
> > index 0abb1b092bc20..72918fe621fa1 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 = 128,

As Bitterblue mentioned, this should be 32. 

> >       .max_sec_cam_num = 32,
> >       .adda_1t_init = 0x0b1b25a0,
> >       .adda_1t_path_on = 0x0bdb25a0,
> > --
> > 2.43.0
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8192c.c b/drivers/net/wireless/realtek/rtl8xxxu/8192c.c
index 0abb1b092bc20..72918fe621fa1 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 = 128,
 	.max_sec_cam_num = 32,
 	.adda_1t_init = 0x0b1b25a0,
 	.adda_1t_path_on = 0x0bdb25a0,