aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-14 23:40:34 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-14 23:40:34 -0400
commitfc943b12e48f9341bce48c2fadf094cc721aab93 (patch)
tree8c3244d7f5fae4edbfe0a5103789b0bc5c64f478 /include
parent72d9794f444734af56ef12833b496326643e2964 (diff)
parent4c9adafff7d910f142fe44fae37ed12c6b99f20f (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include')
-rw-r--r--include/linux/ssb/ssb.h1
-rw-r--r--include/net/mac80211.h73
2 files changed, 36 insertions, 38 deletions
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 0fe5a0ded3ea..4bf8cade9dbc 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -7,6 +7,7 @@
7#include <linux/spinlock.h> 7#include <linux/spinlock.h>
8#include <linux/pci.h> 8#include <linux/pci.h>
9#include <linux/mod_devicetable.h> 9#include <linux/mod_devicetable.h>
10#include <linux/dma-mapping.h>
10 11
11#include <linux/ssb/ssb_regs.h> 12#include <linux/ssb/ssb_regs.h>
12 13
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 656442c6b1c3..24a69f6075c2 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -115,17 +115,17 @@ enum ieee80211_max_queues {
115 * The information provided in this structure is required for QoS 115 * The information provided in this structure is required for QoS
116 * transmit queue configuration. Cf. IEEE 802.11 7.3.2.29. 116 * transmit queue configuration. Cf. IEEE 802.11 7.3.2.29.
117 * 117 *
118 * @aifs: arbitration interface space [0..255, -1: use default] 118 * @aifs: arbitration interface space [0..255]
119 * @cw_min: minimum contention window [will be a value of the form 119 * @cw_min: minimum contention window [a value of the form
120 * 2^n-1 in the range 1..1023; 0: use default] 120 * 2^n-1 in the range 1..32767]
121 * @cw_max: maximum contention window [like @cw_min] 121 * @cw_max: maximum contention window [like @cw_min]
122 * @txop: maximum burst time in units of 32 usecs, 0 meaning disabled 122 * @txop: maximum burst time in units of 32 usecs, 0 meaning disabled
123 */ 123 */
124struct ieee80211_tx_queue_params { 124struct ieee80211_tx_queue_params {
125 s16 aifs; 125 u16 txop;
126 u16 cw_min; 126 u16 cw_min;
127 u16 cw_max; 127 u16 cw_max;
128 u16 txop; 128 u8 aifs;
129}; 129};
130 130
131/** 131/**
@@ -239,6 +239,17 @@ struct ieee80211_bss_conf {
239 * is for the whole aggregation. 239 * is for the whole aggregation.
240 * @IEEE80211_TX_STAT_AMPDU_NO_BACK: no block ack was returned, 240 * @IEEE80211_TX_STAT_AMPDU_NO_BACK: no block ack was returned,
241 * so consider using block ack request (BAR). 241 * so consider using block ack request (BAR).
242 * @IEEE80211_TX_CTL_ASSIGN_SEQ: The driver has to assign a sequence
243 * number to this frame, taking care of not overwriting the fragment
244 * number and increasing the sequence number only when the
245 * IEEE80211_TX_CTL_FIRST_FRAGMENT flags is set. mac80211 will properly
246 * assign sequence numbers to QoS-data frames but cannot do so correctly
247 * for non-QoS-data and management frames because beacons need them from
248 * that counter as well and mac80211 cannot guarantee proper sequencing.
249 * If this flag is set, the driver should instruct the hardware to
250 * assign a sequence number to the frame or assign one itself. Cf. IEEE
251 * 802.11-2007 7.1.3.4.1 paragraph 3. This flag will always be set for
252 * beacons always be clear for frames without a sequence number field.
242 */ 253 */
243enum mac80211_tx_control_flags { 254enum mac80211_tx_control_flags {
244 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 255 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -265,6 +276,7 @@ enum mac80211_tx_control_flags {
265 IEEE80211_TX_STAT_ACK = BIT(21), 276 IEEE80211_TX_STAT_ACK = BIT(21),
266 IEEE80211_TX_STAT_AMPDU = BIT(22), 277 IEEE80211_TX_STAT_AMPDU = BIT(22),
267 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(23), 278 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(23),
279 IEEE80211_TX_CTL_ASSIGN_SEQ = BIT(24),
268}; 280};
269 281
270 282
@@ -407,11 +419,13 @@ struct ieee80211_rx_status {
407 * @IEEE80211_CONF_SHORT_SLOT_TIME: use 802.11g short slot time 419 * @IEEE80211_CONF_SHORT_SLOT_TIME: use 802.11g short slot time
408 * @IEEE80211_CONF_RADIOTAP: add radiotap header at receive time (if supported) 420 * @IEEE80211_CONF_RADIOTAP: add radiotap header at receive time (if supported)
409 * @IEEE80211_CONF_SUPPORT_HT_MODE: use 802.11n HT capabilities (if supported) 421 * @IEEE80211_CONF_SUPPORT_HT_MODE: use 802.11n HT capabilities (if supported)
422 * @IEEE80211_CONF_PS: Enable 802.11 power save mode
410 */ 423 */
411enum ieee80211_conf_flags { 424enum ieee80211_conf_flags {
412 IEEE80211_CONF_SHORT_SLOT_TIME = (1<<0), 425 IEEE80211_CONF_SHORT_SLOT_TIME = (1<<0),
413 IEEE80211_CONF_RADIOTAP = (1<<1), 426 IEEE80211_CONF_RADIOTAP = (1<<1),
414 IEEE80211_CONF_SUPPORT_HT_MODE = (1<<2), 427 IEEE80211_CONF_SUPPORT_HT_MODE = (1<<2),
428 IEEE80211_CONF_PS = (1<<3),
415}; 429};
416 430
417/** 431/**
@@ -527,33 +541,38 @@ struct ieee80211_if_init_conf {
527}; 541};
528 542
529/** 543/**
544 * enum ieee80211_if_conf_change - interface config change flags
545 *
546 * @IEEE80211_IFCC_BSSID: The BSSID changed.
547 * @IEEE80211_IFCC_SSID: The SSID changed.
548 * @IEEE80211_IFCC_BEACON: The beacon for this interface changed
549 * (currently AP and MESH only), use ieee80211_beacon_get().
550 */
551enum ieee80211_if_conf_change {
552 IEEE80211_IFCC_BSSID = BIT(0),
553 IEEE80211_IFCC_SSID = BIT(1),
554 IEEE80211_IFCC_BEACON = BIT(2),
555};
556
557/**
530 * struct ieee80211_if_conf - configuration of an interface 558 * struct ieee80211_if_conf - configuration of an interface
531 * 559 *
532 * @type: type of the interface. This is always the same as was specified in 560 * @changed: parameters that have changed, see &enum ieee80211_if_conf_change.
533 * &struct ieee80211_if_init_conf. The type of an interface never changes
534 * during the life of the interface; this field is present only for
535 * convenience.
536 * @bssid: BSSID of the network we are associated to/creating. 561 * @bssid: BSSID of the network we are associated to/creating.
537 * @ssid: used (together with @ssid_len) by drivers for hardware that 562 * @ssid: used (together with @ssid_len) by drivers for hardware that
538 * generate beacons independently. The pointer is valid only during the 563 * generate beacons independently. The pointer is valid only during the
539 * config_interface() call, so copy the value somewhere if you need 564 * config_interface() call, so copy the value somewhere if you need
540 * it. 565 * it.
541 * @ssid_len: length of the @ssid field. 566 * @ssid_len: length of the @ssid field.
542 * @beacon: beacon template. Valid only if @host_gen_beacon_template in
543 * &struct ieee80211_hw is set. The driver is responsible of freeing
544 * the sk_buff.
545 * @beacon_control: tx_control for the beacon template, this field is only
546 * valid when the @beacon field was set.
547 * 567 *
548 * This structure is passed to the config_interface() callback of 568 * This structure is passed to the config_interface() callback of
549 * &struct ieee80211_hw. 569 * &struct ieee80211_hw.
550 */ 570 */
551struct ieee80211_if_conf { 571struct ieee80211_if_conf {
552 int type; 572 u32 changed;
553 u8 *bssid; 573 u8 *bssid;
554 u8 *ssid; 574 u8 *ssid;
555 size_t ssid_len; 575 size_t ssid_len;
556 struct sk_buff *beacon;
557}; 576};
558 577
559/** 578/**
@@ -681,15 +700,6 @@ enum ieee80211_tkip_key_type {
681 * any particular flags. There are some exceptions to this rule, 700 * any particular flags. There are some exceptions to this rule,
682 * however, so you are advised to review these flags carefully. 701 * however, so you are advised to review these flags carefully.
683 * 702 *
684 * @IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE:
685 * The device only needs to be supplied with a beacon template.
686 * If you need the host to generate each beacon then don't use
687 * this flag and call ieee80211_beacon_get() when you need the
688 * next beacon frame. Note that if you set this flag, you must
689 * implement the set_tim() callback for powersave mode to work
690 * properly.
691 * This flag is only relevant for access-point mode.
692 *
693 * @IEEE80211_HW_RX_INCLUDES_FCS: 703 * @IEEE80211_HW_RX_INCLUDES_FCS:
694 * Indicates that received frames passed to the stack include 704 * Indicates that received frames passed to the stack include
695 * the FCS at the end. 705 * the FCS at the end.
@@ -1149,17 +1159,6 @@ enum ieee80211_ampdu_mlme_action {
1149 * function is optional if the firmware/hardware takes full care of 1159 * function is optional if the firmware/hardware takes full care of
1150 * TSF synchronization. 1160 * TSF synchronization.
1151 * 1161 *
1152 * @beacon_update: Setup beacon data for IBSS beacons. Unlike access point,
1153 * IBSS uses a fixed beacon frame which is configured using this
1154 * function.
1155 * If the driver returns success (0) from this callback, it owns
1156 * the skb. That means the driver is responsible to kfree_skb() it.
1157 * The control structure is not dynamically allocated. That means the
1158 * driver does not own the pointer and if it needs it somewhere
1159 * outside of the context of this function, it must copy it
1160 * somewhere else.
1161 * This handler is required only for IBSS mode.
1162 *
1163 * @tx_last_beacon: Determine whether the last IBSS beacon was sent by us. 1162 * @tx_last_beacon: Determine whether the last IBSS beacon was sent by us.
1164 * This is needed only for IBSS mode and the result of this function is 1163 * This is needed only for IBSS mode and the result of this function is
1165 * used to determine whether to reply to Probe Requests. 1164 * used to determine whether to reply to Probe Requests.
@@ -1217,8 +1216,6 @@ struct ieee80211_ops {
1217 struct ieee80211_tx_queue_stats *stats); 1216 struct ieee80211_tx_queue_stats *stats);
1218 u64 (*get_tsf)(struct ieee80211_hw *hw); 1217 u64 (*get_tsf)(struct ieee80211_hw *hw);
1219 void (*reset_tsf)(struct ieee80211_hw *hw); 1218 void (*reset_tsf)(struct ieee80211_hw *hw);
1220 int (*beacon_update)(struct ieee80211_hw *hw,
1221 struct sk_buff *skb);
1222 int (*tx_last_beacon)(struct ieee80211_hw *hw); 1219 int (*tx_last_beacon)(struct ieee80211_hw *hw);
1223 int (*ampdu_action)(struct ieee80211_hw *hw, 1220 int (*ampdu_action)(struct ieee80211_hw *hw,
1224 enum ieee80211_ampdu_mlme_action action, 1221 enum ieee80211_ampdu_mlme_action action,