RT73 Disconnect - Linux 2.4 ARM platform

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=4691

jaufranc

26-03-2008 09:18:14

I'm using rt73-cvs-2008032501 compiled with arm-elf-gcc 2.95.3 under uclinux 2.4.22. The adapter used is ASUS WL-167-G.

I can load firmware_class and rt73 modules without problem and connect to my wifi router.

But the connection will be lost after some time.
When using wget http//server/filename.iso, after a few minutes the connection will stall. This can be reproduced 100% of the time, and if I stop wget, the wifi router can not be pinged.

No error messages are shown, and I can not see any problem from the Wireshark capture either..

I have recompiled rt73 to be able to use debug mode. But the driver loops after I enable wlan0 interface (dhcp or fixed IP) complaining some queue is full (See log attached).

Thanks in advance.
Jean-Luc

jaufranc

27-03-2008 10:01:44

Sorry, the log I send yesterday was irrelevant to my issue probably because the debug output was sent to the serial console and the CPU was too slow to handle it.

I added another log and instead of downloading a file from internet, I copy a file from the local network using NFS.
Whether I use ASUS WL-167g or TPLINK TL-WN321G+ adapter the result is the same.

The problem seems to start at the following stage

[codevbnjw0uk]Mar 27 17:32:06 em86xx user.debug kernel: rt73: MMCHK - PortCfg.Ssid=AP350 ... MlmeAux.Ssid=AP350ys
Mar 27 17:32:06 em86xx user.debug kernel: rt73: --->RTUSBBulkOutDataPacketComplete status=0 PendingTx=-5703
Mar 27 17:32:06 em86xx user.debug kernel: rt73: 3 strong RSSI=-39, CCA=0, fixed R17 at 0x40
Mar 27 17:32:06 em86xx user.debug kernel: rt73: MMCHK - CQI= 100 (Tx Fail=0/Retry=0/Total=12, Rx Fail=0/Total=243, RSSI=-36 dbm)
Mar 27 17:32:06 em86xx user.debug kernel: rt73: 54: NDIS push BE=13, BK=0, VI=0, VO=0, TX/RX AGGR=<0,0>, p-NDIS=0, RSSI=-39, ACKbmap=15f, PER=0%
Mar 27 17:32:06 em86xx user.debug kernel: rt73: AsicAdjustTxPower = 3, AvgRssi = -39
Mar 27 17:32:06 em86xx user.debug kernel: rt73: STAMlmePeriodicExec - LastRssi=85, BbpRssiToDbmDelta=121
Mar 27 17:32:06 em86xx user.debug kernel: rt73: <== MlmePeriodicExec
Mar 27 17:32:06 em86xx user.debug kernel: rt73: --->RTUSBKickBulkOut
Mar 27 17:32:06 em86xx user.debug kernel: rt73: <---RTUSBBulkOutDataPacket
Mar 27 17:32:06 em86xx user.debug kernel: rt73: <---RTUSBKickBulkOut
Mar 27 17:32:06 em86xx user.debug kernel: rt73: --->RTUSBBulkOutDataPacketComplete status=0 PendingTx=-5704
Mar 27 17:32:06 em86xx user.debug kernel: rt73: --->RTUSBKickBulkOut
Mar 27 17:32:06 em86xx user.debug kernel: rt73: <---RTUSBKickBulkOut
Mar 27 17:32:06 em86xx user.debug kernel: rt73: ===> RTMPSendPackets
Mar 27 17:32:06 em86xx user.debug kernel: rt73: ====> RTMPSendPacket
Mar 27 17:32:06 em86xx user.debug kernel: rt73: Infrastructure -> Enqueue one frame
Mar 27 17:32:06 em86xx user.debug kernel: rt73: RTMPCheckDHCPFrame - not DHCP, ip 1 ipv4 1 udp 1 destport 2049
Mar 27 17:32:06 em86xx user.debug kernel: rt73: RTUSBHardTransmit(bEAP=0) - none key#255, KeyLen=127
Mar 27 17:32:06 em86xx user.debug kernel: rt73: --->RTUSBKickBulkOut
Mar 27 17:32:06 em86xx user.debug kernel: rt73: <---RTUSBBulkOutDataPacket
Mar 27 17:32:06 em86xx user.debug kernel: rt73: <---RTUSBKickBulkOut
Mar 27 17:32:06 em86xx user.debug kernel: rt73: ===> RTMPSendPackets
Mar 27 17:32:06 em86xx user.debug kernel: rt73: ====> RTMPSendPacket
Mar 27 17:32:06 em86xx user.debug kernel: rt73: Infrastructure -> Enqueue one frame
Mar 27 17:32:06 em86xx user.debug kernel: rt73: --RTMPDeQueuePacket 0 TxRingTotalNumber= 1 !!--
Mar 27 17:32:06 em86xx user.debug kernel: rt73: RTMPCheckDHCPFrame - not DHCP, ip 1 ipv4 1 udp 1 destport 2049
Mar 27 17:32:06 em86xx user.debug kernel: rt73: RTUSBHardTransmit(bEAP=0) - none key#255, KeyLen=127
Mar 27 17:32:06 em86xx user.debug kernel: rt73: --->RTUSBKickBulkOut
Mar 27 17:32:07 em86xx user.debug kernel: rt73: <---RTUSBKickBulkOut
Mar 27 17:32:07 em86xx user.debug kernel: rt73: ===> RTMPSendPackets
Mar 27 17:32:07 em86xx user.debug kernel: rt73: ====> RTMPSendPacket
Mar 27 17:32:07 em86xx user.debug kernel: rt73: Infrastructure -> Enqueue one frame
Mar 27 17:32:07 em86xx user.debug kernel: rt73: --RTMPDeQueuePacket 0 TxRingTotalNumber= 2 !!--
Mar 27 17:32:07 em86xx user.debug kernel: rt73: RTMPCheckDHCPFrame - not DHCP, ip 1 ipv4 1 udp 1 destport 2049
Mar 27 17:32:07 em86xx user.debug kernel: rt73: [/codevbnjw0uk]

Later it will complain it lost the beacon. We have several wireless routers so I'm not sure it can create the problem.

jaufranc

28-03-2008 09:48:54

Finally, the problem does not seem related to rt73 driver.

I enabled USB debug, and I go the following error
kernel BUG ehci-q.c 1047

The workaround is to disable USB 2.0 (EHCI) and use USB 1.1 (UHCI) instead. The drawback is that some other USB devices may not work.