Kalle Valo
520eb82076
mac80211: implement dynamic power save
...
This patch implements dynamic power save for mac80211. Basically it
means enabling power save mode after an idle period. Implementing it
dynamically gives a good compromise of low power consumption and low
latency. Some hardware have support for this in firmware, but some
require the host to do it.
The dynamic power save is implemented by adding an timeout to
ieee80211_subif_start_xmit(). The timeout can be enabled from userspace
with Wireless Extensions. For example, the command below enables the
dynamic power save and sets the time timeout to 500 ms:
iwconfig wlan0 power timeout 500m
Power save now only works with devices which handle power save in firmware.
It's also disabled by default and the heuristics when and how to enable is
considered as a policy decision and will be left for the userspace to handle.
In case the firmware has support for this, drivers can disable this feature
with IEEE80211_HW_NO_STACK_DYNAMIC_PS.
Big thanks to Johannes Berg for the help with the design and code.
Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-12-19 15:24:00 -05:00
..
aes_ccm.c
mac80211: aes_ccm.c remove crypto wrapper and extra args
2008-07-08 14:16:02 -04:00
aes_ccm.h
cfg.c
mac80211: Send Layer 2 Update frame on reassociation
2008-12-19 15:23:08 -05:00
cfg.h
debugfs.c
mac80211: make retry limits part of hw config
2008-10-31 19:00:14 -04:00
debugfs.h
debugfs_key.c
mac80211: convert to %pM away from print_mac
2008-10-27 17:06:16 -07:00
debugfs_key.h
debugfs_netdev.c
mac80211: move bss_conf into vif
2008-10-31 19:00:15 -04:00
debugfs_netdev.h
mac80211: revamp virtual interface handling
2008-07-14 14:30:07 -04:00
debugfs_sta.c
mac80211: fix a buffer overrun in station debug code
2008-11-10 21:37:39 -08:00
debugfs_sta.h
event.c
mac80211: convert to %pM away from print_mac
2008-10-27 17:06:16 -07:00
ht.c
mac80211: Fix HT channel selection
2008-12-19 15:22:54 -05:00
ieee80211_i.h
mac80211: implement dynamic power save
2008-12-19 15:24:00 -05:00
iface.c
cfg80211: handle SIOCGIWMODE/SIOCSIWMODE
2008-12-05 09:32:58 -05:00
Kconfig
mac80211: make Minstrel the default rate control algorithm
2008-11-26 09:47:03 -05:00
key.c
mac80211: convert to %pM away from print_mac
2008-10-27 17:06:16 -07:00
key.h
led.c
led.h
main.c
mac80211: implement dynamic power save
2008-12-19 15:24:00 -05:00
Makefile
mac80211/cfg80211: check endianness in sparse runs
2008-12-12 14:01:35 -05:00
mesh.c
wireless: move mesh config length constant
2008-11-10 15:10:16 -05:00
mesh.h
wireless: move mesh config length constant
2008-11-10 15:10:16 -05:00
mesh_hwmp.c
net: remove redundant argument comments
2008-11-21 17:15:03 -08:00
mesh_pathtbl.c
mac80211: mesh portal functionality support
2008-09-24 16:18:02 -04:00
mesh_plink.c
mac80211: convert to %pM away from print_mac
2008-10-27 17:06:16 -07:00
michael.c
michael.h
mlme.c
mac80211: implement dynamic power save
2008-12-19 15:24:00 -05:00
rate.c
mac80211/drivers: rewrite the rate control API
2008-10-31 19:00:23 -04:00
rate.h
mac80211: remove rate_control_clear
2008-10-31 19:00:37 -04:00
rc80211_minstrel.c
wireless: fix a few sparse warnings
2008-11-10 15:10:17 -05:00
rc80211_minstrel.h
minstrel: improve performance for non-MRR drivers
2008-10-31 19:00:36 -04:00
rc80211_minstrel_debugfs.c
mac80211: correct warnings in minstrel rate control algorithm
2008-10-27 17:46:11 -04:00
rc80211_pid.h
mac80211/drivers: rewrite the rate control API
2008-10-31 19:00:23 -04:00
rc80211_pid_algo.c
mac80211: Fix pid rate-setting algorithm to allow rate changes
2008-11-26 09:47:20 -05:00
rc80211_pid_debugfs.c
mac80211/drivers: rewrite the rate control API
2008-10-31 19:00:23 -04:00
rx.c
mac80211: Remove radiotap rate-present flag for HT
2008-12-19 15:23:22 -05:00
scan.c
wireless: move mesh config length constant
2008-11-10 15:10:16 -05:00
spectmgmt.c
mac80211: move frame TX function
2008-09-11 15:53:39 -04:00
sta_info.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2008-12-05 22:54:40 -08:00
sta_info.h
mac80211: remove more excess kernel-doc
2008-11-21 11:08:15 -05:00
tkip.c
mac80211: convert to %pM away from print_mac
2008-10-27 17:06:16 -07:00
tkip.h
tx.c
mac80211: implement dynamic power save
2008-12-19 15:24:00 -05:00
util.c
mac80211: track master queue status
2008-12-19 15:23:59 -05:00
wep.c
mac80211: fix unaligned access in ieee80211_wep_encrypt_data
2008-11-26 09:47:51 -05:00
wep.h
mac80211: minor code cleanups
2008-10-31 18:05:59 -04:00
wext.c
mac80211: implement dynamic power save
2008-12-19 15:24:00 -05:00
wme.c
mac80211: Re-enable aggregation
2008-10-31 19:02:14 -04:00
wme.h
mac80211: clean up some comments
2008-09-15 16:48:22 -04:00
wpa.c
mac80211: minor code cleanups
2008-10-31 18:05:59 -04:00
wpa.h