aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-01-07 12:28:20 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 15:59:58 -0500
commit4be8c3873e0b88397866d3ede578503e188f9ad2 (patch)
tree1ccf8a0c204bb01aca08d90c2d8c37b5e0439bd3 /drivers
parentacbaf32e94cb70218792cac68e5149e482e77441 (diff)
mac80211: extend/document powersave API
This modifies hardware flags for powersave to support three different flags: * IEEE80211_HW_SUPPORTS_PS - indicates general PS support * IEEE80211_HW_PS_NULLFUNC_STACK - indicates nullfunc sending in software * IEEE80211_HW_SUPPORTS_DYNAMIC_PS - indicates dynamic PS on the device It also adds documentation for all this which explains how to set the various flags. Additionally, it fixes a few things: * a spot where && was used to test flags * enable CONF_PS only when associated again Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c3
-rw-r--r--drivers/net/wireless/rt2x00/rt2400pci.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt2500pci.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt2500usb.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c4
6 files changed, 17 insertions, 6 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 76315c30e6fc..07c3870365be 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -805,7 +805,8 @@ int iwl_setup_mac(struct iwl_priv *priv)
805 /* Tell mac80211 our characteristics */ 805 /* Tell mac80211 our characteristics */
806 hw->flags = IEEE80211_HW_SIGNAL_DBM | 806 hw->flags = IEEE80211_HW_SIGNAL_DBM |
807 IEEE80211_HW_NOISE_DBM | 807 IEEE80211_HW_NOISE_DBM |
808 IEEE80211_HW_AMPDU_AGGREGATION; 808 IEEE80211_HW_AMPDU_AGGREGATION |
809 IEEE80211_HW_SUPPORTS_PS;
809 hw->wiphy->interface_modes = 810 hw->wiphy->interface_modes =
810 BIT(NL80211_IFTYPE_STATION) | 811 BIT(NL80211_IFTYPE_STATION) |
811 BIT(NL80211_IFTYPE_ADHOC); 812 BIT(NL80211_IFTYPE_ADHOC);
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index 9104113270d0..ae8bfd6b59df 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -1449,7 +1449,9 @@ static int rt2400pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
1449 * Initialize all hw fields. 1449 * Initialize all hw fields.
1450 */ 1450 */
1451 rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | 1451 rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
1452 IEEE80211_HW_SIGNAL_DBM; 1452 IEEE80211_HW_SIGNAL_DBM |
1453 IEEE80211_HW_SUPPORTS_PS |
1454 IEEE80211_HW_PS_NULLFUNC_STACK;
1453 rt2x00dev->hw->extra_tx_headroom = 0; 1455 rt2x00dev->hw->extra_tx_headroom = 0;
1454 1456
1455 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev); 1457 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev);
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index ebcc49770922..bca6798be153 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -1749,7 +1749,9 @@ static int rt2500pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
1749 * Initialize all hw fields. 1749 * Initialize all hw fields.
1750 */ 1750 */
1751 rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | 1751 rt2x00dev->hw->flags = IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
1752 IEEE80211_HW_SIGNAL_DBM; 1752 IEEE80211_HW_SIGNAL_DBM |
1753 IEEE80211_HW_SUPPORTS_PS |
1754 IEEE80211_HW_PS_NULLFUNC_STACK;
1753 1755
1754 rt2x00dev->hw->extra_tx_headroom = 0; 1756 rt2x00dev->hw->extra_tx_headroom = 0;
1755 1757
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index e992bad64644..27a6971df579 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -1801,7 +1801,9 @@ static int rt2500usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
1801 rt2x00dev->hw->flags = 1801 rt2x00dev->hw->flags =
1802 IEEE80211_HW_RX_INCLUDES_FCS | 1802 IEEE80211_HW_RX_INCLUDES_FCS |
1803 IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | 1803 IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
1804 IEEE80211_HW_SIGNAL_DBM; 1804 IEEE80211_HW_SIGNAL_DBM |
1805 IEEE80211_HW_SUPPORTS_PS |
1806 IEEE80211_HW_PS_NULLFUNC_STACK;
1805 1807
1806 rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE; 1808 rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
1807 1809
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index 82d35a5a4aa7..549480a963e9 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2556,7 +2556,9 @@ static int rt61pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2556 */ 2556 */
2557 rt2x00dev->hw->flags = 2557 rt2x00dev->hw->flags =
2558 IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | 2558 IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
2559 IEEE80211_HW_SIGNAL_DBM; 2559 IEEE80211_HW_SIGNAL_DBM |
2560 IEEE80211_HW_SUPPORTS_PS |
2561 IEEE80211_HW_PS_NULLFUNC_STACK;
2560 rt2x00dev->hw->extra_tx_headroom = 0; 2562 rt2x00dev->hw->extra_tx_headroom = 0;
2561 2563
2562 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev); 2564 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev);
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 2b70c01b55e9..849220236c7d 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -2077,7 +2077,9 @@ static int rt73usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2077 */ 2077 */
2078 rt2x00dev->hw->flags = 2078 rt2x00dev->hw->flags =
2079 IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | 2079 IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING |
2080 IEEE80211_HW_SIGNAL_DBM; 2080 IEEE80211_HW_SIGNAL_DBM |
2081 IEEE80211_HW_SUPPORTS_PS |
2082 IEEE80211_HW_PS_NULLFUNC_STACK;
2081 rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE; 2083 rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
2082 2084
2083 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev); 2085 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev);