aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00mac.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2007-12-28 08:32:58 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:09:43 -0500
commit471b3efdfccc257591331724145f8ccf8b3217e1 (patch)
treec9e576442c7b62c8c667ae1046e560323f0821fd /drivers/net/wireless/rt2x00/rt2x00mac.c
parent2bc454b0b30b3645d114689b64321cb49be99923 (diff)
mac80211: add unified BSS configuration
This patch (based on Ron Rindjunsky's) creates a framework for a unified way to pass BSS configuration to drivers that require the information, e.g. for implementing power save mode. This patch introduces new ieee80211_bss_conf structure that is passed to the driver via the new bss_info_changed() callback when the BSS configuration changes. This new BSS configuration infrastructure adds the following new features: * drivers are notified of their association AID * drivers are notified of association status and replaces the erp_ie_changed() callback. The patch also does the relevant driver updates for the latter change. Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00mac.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mac.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 1d67bcd46bcb..e3f15e518c76 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -342,23 +342,27 @@ int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw,
342} 342}
343EXPORT_SYMBOL_GPL(rt2x00mac_get_tx_stats); 343EXPORT_SYMBOL_GPL(rt2x00mac_get_tx_stats);
344 344
345void rt2x00mac_erp_ie_changed(struct ieee80211_hw *hw, u8 changes, 345void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
346 int cts_protection, int preamble) 346 struct ieee80211_vif *vif,
347 struct ieee80211_bss_conf *bss_conf,
348 u32 changes)
347{ 349{
348 struct rt2x00_dev *rt2x00dev = hw->priv; 350 struct rt2x00_dev *rt2x00dev = hw->priv;
349 int short_preamble; 351 int short_preamble;
350 int ack_timeout; 352 int ack_timeout;
351 int ack_consume_time; 353 int ack_consume_time;
352 int difs; 354 int difs;
355 int preamble;
353 356
354 /* 357 /*
355 * We only support changing preamble mode. 358 * We only support changing preamble mode.
356 */ 359 */
357 if (!(changes & IEEE80211_ERP_CHANGE_PREAMBLE)) 360 if (!(changes & BSS_CHANGED_ERP_PREAMBLE))
358 return; 361 return;
359 362
360 short_preamble = !preamble; 363 short_preamble = bss_conf->use_short_preamble;
361 preamble = !!(preamble) ? PREAMBLE : SHORT_PREAMBLE; 364 preamble = bss_conf->use_short_preamble ?
365 SHORT_PREAMBLE : PREAMBLE;
362 366
363 difs = (hw->conf.flags & IEEE80211_CONF_SHORT_SLOT_TIME) ? 367 difs = (hw->conf.flags & IEEE80211_CONF_SHORT_SLOT_TIME) ?
364 SHORT_DIFS : DIFS; 368 SHORT_DIFS : DIFS;
@@ -374,7 +378,7 @@ void rt2x00mac_erp_ie_changed(struct ieee80211_hw *hw, u8 changes,
374 rt2x00dev->ops->lib->config_preamble(rt2x00dev, short_preamble, 378 rt2x00dev->ops->lib->config_preamble(rt2x00dev, short_preamble,
375 ack_timeout, ack_consume_time); 379 ack_timeout, ack_consume_time);
376} 380}
377EXPORT_SYMBOL_GPL(rt2x00mac_erp_ie_changed); 381EXPORT_SYMBOL_GPL(rt2x00mac_bss_info_changed);
378 382
379int rt2x00mac_conf_tx(struct ieee80211_hw *hw, int queue, 383int rt2x00mac_conf_tx(struct ieee80211_hw *hw, int queue,
380 const struct ieee80211_tx_queue_params *params) 384 const struct ieee80211_tx_queue_params *params)