On 25-01-03 11:10, Vasily Khoruzhick wrote:
On Fri, Jan 3, 2025 at 11:02 AM Andrey Skvortsov andrej.skvortzov@gmail.com wrote:
On 25-01-02 23:50, Vasily Khoruzhick wrote:
Fix 3 typos in 8703b driver. 2 typos in calibration routines are not fatal and do not seem to have any impact, just fix them to match vendor driver.
However the last one in rtw8703b_set_channel_bb() clears too many bits in REG_OFDM0_TX_PSD_NOISE, causing TX and RX issues (neither rate goes above MCS0-MCS1). Vendor driver clears only 2 most significant bits.
With the last typo fixed, the driver is able to reach MCS7 on Pinebook
Cc: stable@vger.kernel.org Fixes: 9bb762b3a957 ("wifi: rtw88: Add definitions for 8703b chip") Signed-off-by: Vasily Khoruzhick anarsoul@gmail.com
Tested-by: Andrey Skvortsov andrej.skvortzov@gmail.com
Thank you, Vasily, for fixing that. Performance is much better with the fix. Here are iperf results made on PinePhone:
Thanks for testing!
- without the patch using rtw88 driver
1.98 Mbits/sec
- with the patch using rtw88 driver
14.0 Mbits/sec
- using old vendor 8723cs driver
23.6 Mbits/sec
Interesting, I get 30-50 Mbit/s on both rtw88 and vendor driver on Pinebook for either TX or RX, however I am pretty close (a few meters) to the AP and it isn't a noisy env (Pinebook can pick up just 4 other 2.4G APs besides mine, none on the same channel). Could you try disabling bluetooth (run bluetoothctl, and do "power off") and re-run the test?
yes, previous test were done with Bluetooth enabled. With disabled (power off) Bluetooth performance is slightly better.
Here is how I tested to make sure, that we are on the same page: 1. on device 'iperf -s' 2. on PC 'iperf -c <device> -e -i 10 -t 250'
Here are more detailed testing results:
1. without the patch using rtw88 driver
[ 1] (icwnd/mss/irtt=14/1448/66504) (ct=66.55 ms) [ ID] Interval Transfer Bandwidth Write/Err Rtry InF(pkts)/Cwnd(pkts)/RTT(var) NetPwr [ 1] 0.0000-10.0000 sec 2.38 MBytes 2.00 Mbits/sec 20/0 73 22K(16)/24K(17)/56167(15843) us 4.448847 [ 1] 10.0000-20.0000 sec 5.88 MBytes 4.93 Mbits/sec 47/0 38 178K(126)/178K(126)/462265(40709) us 1.332652 [ 1] 20.0000-30.0000 sec 2.76 MBytes 2.31 Mbits/sec 25/0 182 12K(9)/12K(9)/32519(11137) us 8.892008 [ 1] 30.0000-40.0000 sec 2.80 MBytes 2.35 Mbits/sec 23/0 48 45K(32)/45K(32)/186889(21282) us 1.569355 [ 1] 40.0000-50.0000 sec 6.31 MBytes 5.29 Mbits/sec 51/0 24 188K(133)/188K(133)/574842(11821) us 1.151013 [ 1] 50.0000-60.0000 sec 5.06 MBytes 4.25 Mbits/sec 43/0 8 346K(245)/346K(245)/412227(75277) us 1.287768 [ 1] 60.0000-70.0000 sec 4.29 MBytes 3.60 Mbits/sec 38/0 81 284K(201)/284K(201)/339931(17905) us 1.323076
2. with the patch using rtw88 driver
[ 1] (icwnd/mss/irtt=14/1448/40241) (ct=40.27 ms) [ ID] Interval Transfer Bandwidth Write/Err Rtry InF(pkts)/Cwnd(pkts)/RTT(var) NetPwr [ 1] 0.0000-10.0000 sec 22.0 MBytes 18.5 Mbits/sec 176/0 0 1069K(756)/1090K(771)/466471(10659) us 4.945374 [ 1] 10.0000-20.0000 sec 20.5 MBytes 17.2 Mbits/sec 164/0 0 2075K(1468)/3919K(2772)/1453362(10765) us 1.479040 [ 1] 20.0000-30.0000 sec 16.7 MBytes 14.0 Mbits/sec 137/0 140 2099K(1485)/2589K(1831)/1466588(44692) us 1.193315 [ 1] 30.0000-40.0000 sec 16.8 MBytes 14.1 Mbits/sec 136/1 169 446K(316)/1914K(1354)/1511938(187) us 1.166601 [ 1] 40.0000-50.0000 sec 14.8 MBytes 12.4 Mbits/sec 121/1 6 1278K(904)/1278K(904)/4145469(8168) us 0.374480 [ 1] 50.0000-60.0000 sec 22.0 MBytes 18.5 Mbits/sec 177/1 26 905K(640)/1084K(767)/428675(700) us 5.389748 [ 1] 60.0000-70.0000 sec 18.1 MBytes 15.2 Mbits/sec 146/0 247 229K(162)/254K(180)/129034(4979) us 14.74
3. using old vendor 8723cs driver
[ 1] (icwnd/mss/irtt=14/1448/91025) (ct=91.07 ms) [ ID] Interval Transfer Bandwidth Write/Err Rtry InF(pkts)/Cwnd(pkts)/RTT(var) NetPwr [ 1] 0.0000-10.0000 sec 38.3 MBytes 32.1 Mbits/sec 306/0 0 1938K(1371)/1949K(1379)/419011(4587) us 9.572087 [ 1] 10.0000-20.0000 sec 36.8 MBytes 30.8 Mbits/sec 294/0 0 2258K(1597)/3809K(2694)/856058(270) us 4.501467 [ 1] 20.0000-30.0000 sec 38.4 MBytes 32.2 Mbits/sec 307/0 0 2360K(1669)/3809K(2694)/727066(112) us 5.534450 [ 1] 30.0000-40.0000 sec 38.5 MBytes 32.3 Mbits/sec 308/0 0 2371K(1677)/3809K(2694)/786411(100) us 5.133470 [ 1] 40.0000-50.0000 sec 40.8 MBytes 34.2 Mbits/sec 326/0 0 2563K(1813)/3809K(2694)/652361(18130) us 6.549973 [ 1] 50.0000-60.0000 sec 35.4 MBytes 29.7 Mbits/sec 283/0 0 2524K(1785)/5953K(4210)/670626(151) us 5.531157 [ 1] 60.0000-70.0000 sec 39.5 MBytes 33.1 Mbits/sec 316/0 0 2502K(1770)/5953K(4210)/707670(140) us 5.852834
I noticed that btcoex is implemented differently in rtw88 and in the vendor driver, so it might not be working correctly.
yeah, I couldn't make good-enough VoIP-calls on WiFi using PinePhone with rtw88, but I could make it just fine with old vendor driver. But I've switched to rtw88 anyway.