Hi everyone,
I'm having some trouble with an RT5370 Wi-Fi module on an embedded
Linux system. With just one of these modules connected to an access
point, performance is around 30 Mbit/s. However, as soon as a second
module is connected to the access point, performance drops to about 3
Mbit/s.
With debug output enabled, there are many copies of this message:
wlan0: release an RX reorder frame due to timeout on earlier frames
which seems to be related to MDPU aggregation. So, I went into
rt2800lib.c in the function rt2800_ampdu_action and added the line
ret = -ENOTSUPP; to disable support for RX frame aggregation:
switch (action) {
case IEEE80211_AMPDU_RX_START:
case IEEE80211_AMPDU_RX_STOP:
ret = -ENOTSUPP;
...
After that change, debug output shows:
wlan0: AddBA Req buf_size=64 for 00:ad:24:ff:6c:a0
wlan0: Rx A-MPDU request on 00:ad:24:ff:6c:a0 tid 0 result -524
and performance seems to be maybe slightly faster but not by much.
I'm using backports, and have tried with version 5.3-rc4 and
4.14-rc2. I've also tried several versions of the device firmware
file rt2870.bin; 0.36, 0.33, and 0.22.
Many thanks for any ideas you can offer.
Marlon