Search Linux Wireless

rtw88: RTL8812BU TX FIFO corruption (?) in USB 3 mode

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

 



Hi,

I ran into a problem with the RTL8812BU. If I load it a bit in USB 3
mode, like with "iperf3 -c 192.168.0.1 -R -t 60" the connection often
stops working. It may take a few tries. It still receives beacons but
the AP can't be pinged anymore.

Looking at the registers with
"watch cat /sys/kernel/debug/ieee80211/phy*/rtw88/mac_2", I noticed
the high half of register 0x240 was steadily increasing.

Register 0x240 is called REG_FIFOPAGE_INFO_5. The driver writes the
number of pages allocated to the public queue into the low half.
The high half indicates the number of pages currently available.
The number of available pages was steadily increasing, beyond the
total number of pages:

00000240  072b070b    0003fa00    0003fe00    0003fa60    
00000240  0737070b    0003fa00    0003fe00    0003fa60    
00000240  073b070b    0003fa00    0003fe00    0003fa60    
00000240  0741070b    0003fa00    0003fe00    0003fa60    
00000240  0741070b    0003fa00    0003fe00    0003fa60    
00000240  074f070b    0003fa00    0003fe00    0003fa60    
00000240  075d070b    0003fa00    0003fe00    0003fa60    

Normal values when the device is functional (and idle):

00000240  070b070b    0003fa00    0003fe00    0003fa60

When register 0x240 has strange values, register 0x210
(REG_TXDMA_STATUS) has the value 5. Normally register 0x210 is 0.

All this only happens in USB 3 mode. Everything is fine in USB 2 mode.

I tried to disable USB RX and TX aggregation, SUPPORTS_AMSDU_IN_AMPDU,
and TX_AMSDU. None of that helped.

This problem happens also with this driver:
https://github.com/morrownr/88x2bu-20210702
and with v5.13.1.1-1-g6f2541ef2.20240507_COEX20220812-18317b7b. I see
the same strange values in register 0x240 in
/proc/net/rtl88x2bu/wlp3s0f3u4/mac_reg_dump.

My test device is TP-Link Archer T3U Plus, with USB ID 2357:0138.
My system is Lenovo Ideapad 3 15ADA6 with AMD Athlon Gold 3150U CPU. 

Can this be fixed somehow? I saw the other drivers have some code in
rtw_sreset.c to power off and on the device when register 0x210 is
non-zero, but that seems suboptimal.




[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