aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath5k/base.c
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2009-10-06 20:44:34 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-10-07 16:39:51 -0400
commit8ce54c5a5f5d2f4f03993395d60f3110670002ca (patch)
tree636345a71ec097688b66da271b8cfc0275b7f645 /drivers/net/wireless/ath/ath5k/base.c
parenta3f86bff1c056f47c2df4c58bfcf7bdda8eaf9d0 (diff)
ath5k: enable Power-Save Polls by setting the association ID
mac80211 has long provided us the association ID. This isn't useful except for Power-Save polling which now gets enabled. We can now poll for our pending frames on the AP during power save. You can review the details of Power-Save on the wireless wiki: http://wireless.kernel.org/en/developers/Documentation/ieee80211/power-savings Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/base.c')
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 01da83d75ef4..07c1e52b5a0c 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -3211,8 +3211,7 @@ static void ath5k_bss_info_changed(struct ieee80211_hw *hw,
3211 if (changes & BSS_CHANGED_BSSID) { 3211 if (changes & BSS_CHANGED_BSSID) {
3212 /* Cache for later use during resets */ 3212 /* Cache for later use during resets */
3213 memcpy(common->curbssid, bss_conf->bssid, ETH_ALEN); 3213 memcpy(common->curbssid, bss_conf->bssid, ETH_ALEN);
3214 /* XXX: assoc id is set to 0 for now, mac80211 doesn't have 3214 common->curaid = 0;
3215 * a clean way of letting us retrieve this yet. */
3216 ath5k_hw_set_associd(ah); 3215 ath5k_hw_set_associd(ah);
3217 mmiowb(); 3216 mmiowb();
3218 } 3217 }
@@ -3226,6 +3225,14 @@ static void ath5k_bss_info_changed(struct ieee80211_hw *hw,
3226 set_beacon_filter(hw, sc->assoc); 3225 set_beacon_filter(hw, sc->assoc);
3227 ath5k_hw_set_ledstate(sc->ah, sc->assoc ? 3226 ath5k_hw_set_ledstate(sc->ah, sc->assoc ?
3228 AR5K_LED_ASSOC : AR5K_LED_INIT); 3227 AR5K_LED_ASSOC : AR5K_LED_INIT);
3228 if (bss_conf->assoc) {
3229 ATH5K_DBG(sc, ATH5K_DEBUG_ANY,
3230 "Bss Info ASSOC %d, bssid: %pM\n",
3231 bss_conf->aid, common->curbssid);
3232 common->curaid = bss_conf->aid;
3233 ath5k_hw_set_associd(ah);
3234 /* Once ANI is available you would start it here */
3235 }
3229 } 3236 }
3230 3237
3231 if (changes & BSS_CHANGED_BEACON) { 3238 if (changes & BSS_CHANGED_BEACON) {