[rt2x00-users] [PATCH RFC] rt2800: disable powersaving as default
alex at milivojevic.org
Fri Jan 28 04:12:18 EST 2011
On Tue, Jan 25, 2011 at 2:17 PM, Johannes Stezenbach <js at sig21.net> wrote:
> On Mon, Jan 24, 2011 at 05:08:04PM +0100, Ivo Van Doorn wrote:
>> On Tue, Jan 18, 2011 at 6:43 PM, Johannes Stezenbach <js at sig21.net> wrote:
>> > Powersaving is broken on rt2800usb (the hardware cannot do timed wakeup
>> > to receive beacons) and also on rt2800pci currently (auto-wakeup irq
>> > does no seem to work, for reasons so far unknown).
>> I just ran the stresstest with PS enabled and disabled (both cases with the
>> workqueue patch I just submitted), I also tested with the current 'experimental'
>> including your patches with PS disabled.
>> The result is:
>> master + PS: stresstest good, long association times (2-3 seconds on WPA2)
>> master - PS: stresstest good, short association times (1-2 seconds on WPA2)
>> experimental + PS: stresstest bad, long association times (2-3 seconds on WPA2)
>> experimental - PS: stresstest good, long assocation times (2-4 seconds on WPA2)
>> I also didn't find any problems with transfering data after assocating
>> with PS enabled or disabled.
>> So I am not really seeing a cause for disabling the powersaving at this moment.
> During ongoing bulk data transfer the station never sleeps, so the
> issue isn't visible. I found a good test is to ping from AP to station
> (with no other traffic), the ping latencies are high and there is some loss.
>> If the beacon timeout is a big issue, doesn't that simply imply we provide the
>> wrong value to the TBCN_BEFORE_WAKUP register?
> I don't know. The legacy driver never configures it. Instead it
> uses a Linux timer with a fixed 70msec timeout (AUTO_WAKEUP_TIMEOUT)
> in AsicSleepThenAutoWakeup(). And the comment for AsicSleepThenAutoWakeup()
> says AUTO_WAKEUP won't wakeup the PHY but only trigger an irq, which explains
> why they do not use it on USB since we can't get the irq.
> So I guess for USB there are two choices:
> 1. use a Linux hrtimer to wake up in time to catch the desired beacon
> 2. disable PS
> Until someone implements 1. I think we should do 2.
Hm, I wonder if this could be the reason behind periodic disconnects
from AP I'm seeing with WUSB600N card, with ieee80211 driver
complaining about "no probe response from AP after 500ms" (see
"Linksys WUSB600N v1 disconnecting from AP" thread from earlier this
month). Is there an easy way to test this and see if it helps with
the problem I'm having?
Looking at recent changes, the patch(es) for TX/RX workqueue changes
sound as worth trying out (I'll make sure to try that out as well,
once they are finished and part of daily tarball).
More information about the users