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