diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2009-10-06 20:44:34 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-10-07 16:39:51 -0400 |
commit | 8ce54c5a5f5d2f4f03993395d60f3110670002ca (patch) | |
tree | 636345a71ec097688b66da271b8cfc0275b7f645 /drivers/net/wireless/ath/ath5k/base.c | |
parent | a3f86bff1c056f47c2df4c58bfcf7bdda8eaf9d0 (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.c | 11 |
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) { |