diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-01-07 12:28:20 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-01-29 15:59:58 -0500 |
commit | 4be8c3873e0b88397866d3ede578503e188f9ad2 (patch) | |
tree | 1ccf8a0c204bb01aca08d90c2d8c37b5e0439bd3 /drivers | |
parent | acbaf32e94cb70218792cac68e5149e482e77441 (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.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2400pci.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500pci.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500usb.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt73usb.c | 4 |
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); |