mac80211: improve powersave implementation
commit965bedadc01d34027455d5d5b67063ef0209c955
authorJohannes Berg <johannes@sipsolutions.net>
Thu, 16 Apr 2009 11:17:24 +0000 (16 13:17 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 22 Apr 2009 20:57:15 +0000 (22 16:57 -0400)
tree012bb04559011498e0bdb5db1ba6ffad0ec8b89a
parentdc7d243d75b906cc964c12caa3b2eebe953a69be
mac80211: improve powersave implementation

When you have multiple virtual interfaces the current
implementation requires setting them up properly from
userspace, which is undesirable when we want to default
to power save mode. Keep track of powersave requested
from userspace per managed mode interface, and only
enable powersave globally when exactly one managed mode
interface is active and has powersave turned on.

Second, only start the dynPS timer when PS is turned
on, and properly turn it off when PS is turned off.

Third, fix the scan_sdata abuse in the dynps code.

Finally, also reorder the code and refactor the code
that enables PS or the dynps timer instead of having
it copied in two places.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/ieee80211_i.h
net/mac80211/iface.c
net/mac80211/mlme.c
net/mac80211/scan.c
net/mac80211/wext.c