diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-04-23 10:10:04 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-05-06 15:14:33 -0400 |
commit | 57c4d7b4c4986037be51476b8e3025d5ba18d8b8 (patch) | |
tree | bcd24a127b4c79891f45799a20867f49c0f7f949 /drivers/net/wireless/ath/ar9170 | |
parent | f3b85252f081581a8f257545ed748062dce7798b (diff) |
mac80211: clean up beacon interval settings
We currently have two beacon interval configuration knobs:
hw.conf.beacon_int and vif.bss_info.beacon_int. This is
rather confusing, even though the former is used when we
beacon ourselves and the latter when we are associated to
an AP.
This just deprecates the hw.conf.beacon_int setting in favour
of always using vif.bss_info.beacon_int. Since it touches all
the beaconing IBSS code anyway, we can also add support for
the cfg80211 IBSS beacon interval configuration easily.
NOTE: The hw.conf.beacon_int setting is retained for now due
to drivers still using it -- I couldn't untangle all
drivers, some are updated in this patch.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ar9170')
-rw-r--r-- | drivers/net/wireless/ath/ar9170/mac.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ar9170/main.c | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ar9170/mac.c b/drivers/net/wireless/ath/ar9170/mac.c index c8fa3073169f..0e5967dd119c 100644 --- a/drivers/net/wireless/ath/ar9170/mac.c +++ b/drivers/net/wireless/ath/ar9170/mac.c | |||
@@ -316,9 +316,9 @@ int ar9170_set_beacon_timers(struct ar9170 *ar) | |||
316 | u32 v = 0; | 316 | u32 v = 0; |
317 | u32 pretbtt = 0; | 317 | u32 pretbtt = 0; |
318 | 318 | ||
319 | v |= ar->hw->conf.beacon_int; | ||
320 | |||
321 | if (ar->vif) { | 319 | if (ar->vif) { |
320 | v |= ar->vif->bss_conf.beacon_int; | ||
321 | |||
322 | switch (ar->vif->type) { | 322 | switch (ar->vif->type) { |
323 | case NL80211_IFTYPE_MESH_POINT: | 323 | case NL80211_IFTYPE_MESH_POINT: |
324 | case NL80211_IFTYPE_ADHOC: | 324 | case NL80211_IFTYPE_ADHOC: |
@@ -326,7 +326,7 @@ int ar9170_set_beacon_timers(struct ar9170 *ar) | |||
326 | break; | 326 | break; |
327 | case NL80211_IFTYPE_AP: | 327 | case NL80211_IFTYPE_AP: |
328 | v |= BIT(24); | 328 | v |= BIT(24); |
329 | pretbtt = (ar->hw->conf.beacon_int - 6) << 16; | 329 | pretbtt = (ar->vif->bss_conf.beacon_int - 6) << 16; |
330 | break; | 330 | break; |
331 | default: | 331 | default: |
332 | break; | 332 | break; |
diff --git a/drivers/net/wireless/ath/ar9170/main.c b/drivers/net/wireless/ath/ar9170/main.c index 1b60906b80c9..49c729bc7147 100644 --- a/drivers/net/wireless/ath/ar9170/main.c +++ b/drivers/net/wireless/ath/ar9170/main.c | |||
@@ -1337,7 +1337,7 @@ static int ar9170_op_config(struct ieee80211_hw *hw, u32 changed) | |||
1337 | goto out; | 1337 | goto out; |
1338 | } | 1338 | } |
1339 | 1339 | ||
1340 | if (changed & IEEE80211_CONF_CHANGE_BEACON_INTERVAL) { | 1340 | if (changed & BSS_CHANGED_BEACON_INT) { |
1341 | err = ar9170_set_beacon_timers(ar); | 1341 | err = ar9170_set_beacon_timers(ar); |
1342 | if (err) | 1342 | if (err) |
1343 | goto out; | 1343 | goto out; |
@@ -1499,6 +1499,9 @@ static void ar9170_op_bss_info_changed(struct ieee80211_hw *hw, | |||
1499 | #endif /* CONFIG_AR9170_LEDS */ | 1499 | #endif /* CONFIG_AR9170_LEDS */ |
1500 | } | 1500 | } |
1501 | 1501 | ||
1502 | if (changed & BSS_CHANGED_BEACON_INT) | ||
1503 | err = ar9170_set_beacon_timers(ar); | ||
1504 | |||
1502 | if (changed & BSS_CHANGED_HT) { | 1505 | if (changed & BSS_CHANGED_HT) { |
1503 | /* TODO */ | 1506 | /* TODO */ |
1504 | err = 0; | 1507 | err = 0; |