[rt2x00-users] [PATCH RFC] rt2800: disable powersaving as default
Ivo Van Doorn
ivdoorn at gmail.com
Wed Jan 26 20:22:54 EST 2011
> 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.
Well I also did a ping test, and there is no difference in packetloss
with PS enabled or disabled. And in both cases the loss-ratio was reasonably
>> 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
But the legacy drivers does handle powersaving, so it wouldn't work in there
More information about the users