Search Linux Wireless

Re: rsi: unusably slow / no tx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/6/20 11:12 AM, Martin Kepplinger wrote:
hi,

Hi,

I start the driver with options rsi_sdio dev_oper_mode=13 and (try to) connect to a usual wpa2 encrypted network:

The rsi driver is unusably slow for me still. It slowly (sometimes) connects to a network, but even then it's unusable. To me it seems like the drivers sends way too little; tx() that is registered with mac80211 is rarely called - just 4 times in the below logs (where other drivers would send data for each received packet afaik).

Thanks a lot Marek for working on the driver! I already use https://lore.kernel.org/netdev/20201015111616.429220-1-marex@xxxxxxx/ here.

Make sure to add also:
https://lore.kernel.org/netdev/20201103180941.443528-1-marex@xxxxxxx/
that one made a lot of difference on RX performance, not so much on TX though.

I also have this locally (better use the module param than patch the kernel), because it seems wifi/bt coex is broken.

diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio.c b/drivers/net/wireless/rsi/rsi_91x_sdio.c
index 1bebba4e8527..2b2a9485aae0 100644
--- a/drivers/net/wireless/rsi/rsi_91x_sdio.c
+++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c
@@ -22,7 +22,7 @@
 #include "rsi_hal.h"

 /* Default operating mode is wlan STA + BT */
-static u16 dev_oper_mode = DEV_OPMODE_STA_BT_DUAL;
+static u16 dev_oper_mode = DEV_OPMODE_WIFI_ALONE;
 module_param(dev_oper_mode, ushort, 0444);
 MODULE_PARM_DESC(dev_oper_mode,
                 "1[Wi-Fi], 4[BT], 8[BT LE], 5[Wi-Fi STA + BT classic]\n"

There seem to be a huge amount of issues with those RSI WiFi devices, thanks to Angus for keeping track of them here:
https://source.puri.sm/Librem5/linux-next/-/issues?scope=all&utf8=%E2%9C%93&state=opened&search=redpine

There is also the downstream driver here:
git://github.com/SiliconLabs/RS911X-nLink-OSD
unfortunatelly, there is no changelog nor separate patches, just one huge code-dump. The driver is some sort of derivative of the upstream driver, so you can do a diff, but the diff is some thousands of lines of change.

You can however try compiling it and see whether this makes your wifi work, if so, then try to figure out which change is the fix. That's how I came to the TX EAPOL fix, I just spent an insane amount of time trying to figure out what change made the wifi work against iwlwifi AP in the vendor driver, removing parts of the diff until I came to the one line.

Does anyone actually use the driver or at least has seen similar behaviour, or even know what could go wrong?


So I added messages at a few spots in the rx/tx path and this is while connected to a network (without doing much):

[  124.277947] rsi_91x: RX Packet Type: QOS DATA
[  124.377107] rsi_91x: rsi_mgmt_pkt_recv: Msg Len: 333, Msg Type:    2
[  124.377118] rsi_91x: rsi_mgmt_pkt_to_core: rssi=33 channel=5
[  124.377123] rsi_91x: RX Dot11 Mgmt Pkt Type: BEACON
[  124.377128] rsi_91x: RX Packet Type: BEACON
[  124.377915] rsi_91x: RX Packet Type: QOS DATA

I haven't seen this one, no, sorry. How is your AP configured (which wifi is in it, how is the hostap configured, ...)?



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux