[rt2x00-users] [PATCH RFC] rt2800: disable powersaving as default

Ivo Van Doorn ivdoorn at gmail.com
Mon Jan 31 03:16:09 EST 2011


Hi,

>>> >> 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
>>> then either....
>>
>> Well, just look at the code for the legacy driver.  It uses
>> a Linux timer for the wake-up, so we need to do the same thing.
>
> Ah ok, I'll look into that this weekend. Shouldn't be too hard to
> setup correctly. :)

Just a quick question to get my understanding of the powersaving right.

At the moment I have implemented the timer wakeup for receiving the beacon,
but now I am looking into the putting the device back to sleep after
the beacon has been received.
However, I am seeing a small improvement in packetloss during pinging,
but I wonder if it is correct
that my pingtimes with PS enabled is a stable 68ms, while with PS
disabled this is a stable 8ms...

As far as I understand, mac80211 will check if the beacon has been
received, and if
there are buffered frames (See ieee80211_rx_mgmt_beacon). If that is
the case the
powersaving is disabled. This code will only trigger if the
IEEE80211_HW_PS_NULLFUNC_STACK
is enabled (which is the case for rt2x00).

So only thing that will be needed is to check if PS is still enabled
after the ieee80211_rx function,
and bring the device back to sleep right?

Any thoughts?

Ivo



More information about the users mailing list