aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-commands.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-08-07 18:41:51 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-08-14 09:13:50 -0400
commite312c24cf8229f9b6e76dbfd5d99eefe21f4ac0a (patch)
tree79e3b967f3905716baef4bc73b4510543b38ceb5 /drivers/net/wireless/iwlwifi/iwl-commands.h
parentd91b1ba37744bc7fb7524516be855c9fa81142e2 (diff)
iwlwifi: automatically adjust sleep level
Depending on required latency requested by pm_qos (via mac80211) we can automatically adjust the sleep state. Also, mac80211 has a user-visible dynamic sleep feature where we are supposed to stay awake after sending/receiving frames to better receive response frames to our packets, this can be integrated into the sleep command. Currently, and this patch doesn't change that yet, we default to using sleep level 1 if PS is enabled. With a module parameter to iwlcore, automatic adjustment to changing network latency requirements can be enabled -- this isn't yet the default due to requiring more testing. The goal is to enable automatic adjustment and then go into the deepest possible sleep state possible depending on the networking latency requirements. This patch does, however, enable IEEE80211_HW_SUPPORTS_DYNAMIC_PS to avoid the double-timer (one in software and one in the device) when transmitting -- the exact timeout may be ignored but that is not of big concern. Note also that we keep the hard-coded power indices around for thermal throttling -- the specification of that calls for using the specified power levels. Those can also be selected in debugfs to allow easier testing of such parameters. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-commands.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 6188c54113b0..68d7719071f7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -2313,15 +2313,22 @@ struct iwl_spectrum_notification {
2313 * PM allow: 2313 * PM allow:
2314 * bit 0 - '0' Driver not allow power management 2314 * bit 0 - '0' Driver not allow power management
2315 * '1' Driver allow PM (use rest of parameters) 2315 * '1' Driver allow PM (use rest of parameters)
2316 *
2316 * uCode send sleep notifications: 2317 * uCode send sleep notifications:
2317 * bit 1 - '0' Don't send sleep notification 2318 * bit 1 - '0' Don't send sleep notification
2318 * '1' send sleep notification (SEND_PM_NOTIFICATION) 2319 * '1' send sleep notification (SEND_PM_NOTIFICATION)
2320 *
2319 * Sleep over DTIM 2321 * Sleep over DTIM
2320 * bit 2 - '0' PM have to walk up every DTIM 2322 * bit 2 - '0' PM have to walk up every DTIM
2321 * '1' PM could sleep over DTIM till listen Interval. 2323 * '1' PM could sleep over DTIM till listen Interval.
2324 *
2322 * PCI power managed 2325 * PCI power managed
2323 * bit 3 - '0' (PCI_CFG_LINK_CTRL & 0x1) 2326 * bit 3 - '0' (PCI_CFG_LINK_CTRL & 0x1)
2324 * '1' !(PCI_CFG_LINK_CTRL & 0x1) 2327 * '1' !(PCI_CFG_LINK_CTRL & 0x1)
2328 *
2329 * Fast PD
2330 * bit 4 - '1' Put radio to sleep when receiving frame for others
2331 *
2325 * Force sleep Modes 2332 * Force sleep Modes
2326 * bit 31/30- '00' use both mac/xtal sleeps 2333 * bit 31/30- '00' use both mac/xtal sleeps
2327 * '01' force Mac sleep 2334 * '01' force Mac sleep