aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-08-06 15:57:18 -0400
committerDavid S. Miller <davem@davemloft.net>2009-08-06 15:57:18 -0400
commitbfe34ebbaa125f00da309f59cc9d30febe1e3115 (patch)
tree505b43fc81be09ec5b42f82a3e64f300a5e838d5 /include
parent3d7ddd540b4c2d24c6a3e7a52c083a0c31e6151c (diff)
parent6b4f645a491ac29c7dced415d034eea7736155a6 (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/rfkill.h1
-rw-r--r--include/linux/usb/rndis_host.h13
-rw-r--r--include/linux/usb/usbnet.h6
-rw-r--r--include/net/cfg80211.h14
-rw-r--r--include/net/mac80211.h58
5 files changed, 59 insertions, 33 deletions
diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h
index 10202903141a..21ca51bf4dd2 100644
--- a/include/linux/rfkill.h
+++ b/include/linux/rfkill.h
@@ -47,6 +47,7 @@ enum rfkill_type {
47 RFKILL_TYPE_UWB, 47 RFKILL_TYPE_UWB,
48 RFKILL_TYPE_WIMAX, 48 RFKILL_TYPE_WIMAX,
49 RFKILL_TYPE_WWAN, 49 RFKILL_TYPE_WWAN,
50 RFKILL_TYPE_GPS,
50 NUM_RFKILL_TYPES, 51 NUM_RFKILL_TYPES,
51}; 52};
52 53
diff --git a/include/linux/usb/rndis_host.h b/include/linux/usb/rndis_host.h
index 37836b937d97..1ef1ebc2b04f 100644
--- a/include/linux/usb/rndis_host.h
+++ b/include/linux/usb/rndis_host.h
@@ -70,12 +70,13 @@ struct rndis_msg_hdr {
70#define RNDIS_MSG_KEEPALIVE_C (RNDIS_MSG_KEEPALIVE|RNDIS_MSG_COMPLETION) 70#define RNDIS_MSG_KEEPALIVE_C (RNDIS_MSG_KEEPALIVE|RNDIS_MSG_COMPLETION)
71 71
72/* codes for "status" field of completion messages */ 72/* codes for "status" field of completion messages */
73#define RNDIS_STATUS_SUCCESS cpu_to_le32(0x00000000) 73#define RNDIS_STATUS_SUCCESS cpu_to_le32(0x00000000)
74#define RNDIS_STATUS_FAILURE cpu_to_le32(0xc0000001) 74#define RNDIS_STATUS_FAILURE cpu_to_le32(0xc0000001)
75#define RNDIS_STATUS_INVALID_DATA cpu_to_le32(0xc0010015) 75#define RNDIS_STATUS_INVALID_DATA cpu_to_le32(0xc0010015)
76#define RNDIS_STATUS_NOT_SUPPORTED cpu_to_le32(0xc00000bb) 76#define RNDIS_STATUS_NOT_SUPPORTED cpu_to_le32(0xc00000bb)
77#define RNDIS_STATUS_MEDIA_CONNECT cpu_to_le32(0x4001000b) 77#define RNDIS_STATUS_MEDIA_CONNECT cpu_to_le32(0x4001000b)
78#define RNDIS_STATUS_MEDIA_DISCONNECT cpu_to_le32(0x4001000c) 78#define RNDIS_STATUS_MEDIA_DISCONNECT cpu_to_le32(0x4001000c)
79#define RNDIS_STATUS_MEDIA_SPECIFIC_INDICATION cpu_to_le32(0x40010012)
79 80
80/* codes for OID_GEN_PHYSICAL_MEDIUM */ 81/* codes for OID_GEN_PHYSICAL_MEDIUM */
81#define RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED cpu_to_le32(0x00000000) 82#define RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED cpu_to_le32(0x00000000)
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index 7c17b2efba86..de8b4b18961b 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -86,6 +86,7 @@ struct driver_info {
86 86
87#define FLAG_FRAMING_AX 0x0040 /* AX88772/178 packets */ 87#define FLAG_FRAMING_AX 0x0040 /* AX88772/178 packets */
88#define FLAG_WLAN 0x0080 /* use "wlan%d" names */ 88#define FLAG_WLAN 0x0080 /* use "wlan%d" names */
89#define FLAG_AVOID_UNLINK_URBS 0x0100 /* don't unlink urbs at usbnet_stop() */
89 90
90 91
91 /* init device ... can sleep, or cause probe() failure */ 92 /* init device ... can sleep, or cause probe() failure */
@@ -121,9 +122,8 @@ struct driver_info {
121 * right after minidriver have initialized hardware. */ 122 * right after minidriver have initialized hardware. */
122 int (*early_init)(struct usbnet *dev); 123 int (*early_init)(struct usbnet *dev);
123 124
124 /* called by minidriver when link state changes, state: 0=disconnect, 125 /* called by minidriver when receiving indication */
125 * 1=connect */ 126 void (*indication)(struct usbnet *dev, void *ind, int indlen);
126 void (*link_change)(struct usbnet *dev, int state);
127 127
128 /* for new devices, use the descriptor-reading code instead */ 128 /* for new devices, use the descriptor-reading code instead */
129 int in; /* rx endpoint */ 129 int in; /* rx endpoint */
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index e1b92358242b..fa729979de88 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1514,20 +1514,6 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb);
1514extern int regulatory_hint(struct wiphy *wiphy, const char *alpha2); 1514extern int regulatory_hint(struct wiphy *wiphy, const char *alpha2);
1515 1515
1516/** 1516/**
1517 * regulatory_hint_11d - hints a country IE as a regulatory domain
1518 * @wiphy: the wireless device giving the hint (used only for reporting
1519 * conflicts)
1520 * @country_ie: pointer to the country IE
1521 * @country_ie_len: length of the country IE
1522 *
1523 * We will intersect the rd with the what CRDA tells us should apply
1524 * for the alpha2 this country IE belongs to, this prevents APs from
1525 * sending us incorrect or outdated information against a country.
1526 */
1527extern void regulatory_hint_11d(struct wiphy *wiphy,
1528 u8 *country_ie,
1529 u8 country_ie_len);
1530/**
1531 * wiphy_apply_custom_regulatory - apply a custom driver regulatory domain 1517 * wiphy_apply_custom_regulatory - apply a custom driver regulatory domain
1532 * @wiphy: the wireless device we want to process the regulatory domain on 1518 * @wiphy: the wireless device we want to process the regulatory domain on
1533 * @regd: the custom regulatory domain to use for this wiphy 1519 * @regd: the custom regulatory domain to use for this wiphy
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index d4e09a06b4a2..e2fb5767e1fa 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -73,6 +73,21 @@
73 */ 73 */
74 74
75/** 75/**
76 * DOC: mac80211 workqueue
77 *
78 * mac80211 provides its own workqueue for drivers and internal mac80211 use.
79 * The workqueue is a single threaded workqueue and can only be accessed by
80 * helpers for sanity checking. Drivers must ensure all work added onto the
81 * mac80211 workqueue should be cancelled on the driver stop() callback.
82 *
83 * mac80211 will flushed the workqueue upon interface removal and during
84 * suspend.
85 *
86 * All work performed on the mac80211 workqueue must not acquire the RTNL lock.
87 *
88 */
89
90/**
76 * enum ieee80211_max_queues - maximum number of queues 91 * enum ieee80211_max_queues - maximum number of queues
77 * 92 *
78 * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues. 93 * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues.
@@ -913,12 +928,6 @@ enum ieee80211_hw_flags {
913 * 928 *
914 * @conf: &struct ieee80211_conf, device configuration, don't use. 929 * @conf: &struct ieee80211_conf, device configuration, don't use.
915 * 930 *
916 * @workqueue: single threaded workqueue available for driver use,
917 * allocated by mac80211 on registration and flushed when an
918 * interface is removed.
919 * NOTICE: All work performed on this workqueue must not
920 * acquire the RTNL lock.
921 *
922 * @priv: pointer to private area that was allocated for driver use 931 * @priv: pointer to private area that was allocated for driver use
923 * along with this structure. 932 * along with this structure.
924 * 933 *
@@ -954,7 +963,6 @@ enum ieee80211_hw_flags {
954struct ieee80211_hw { 963struct ieee80211_hw {
955 struct ieee80211_conf conf; 964 struct ieee80211_conf conf;
956 struct wiphy *wiphy; 965 struct wiphy *wiphy;
957 struct workqueue_struct *workqueue;
958 const char *rate_control_algorithm; 966 const char *rate_control_algorithm;
959 void *priv; 967 void *priv;
960 u32 flags; 968 u32 flags;
@@ -1236,10 +1244,13 @@ ieee80211_get_alt_retry_rate(const struct ieee80211_hw *hw,
1236 * mac80211 needs to do and the amount of CPU wakeups, so you should 1244 * mac80211 needs to do and the amount of CPU wakeups, so you should
1237 * honour this flag if possible. 1245 * honour this flag if possible.
1238 * 1246 *
1239 * @FIF_CONTROL: pass control frames, if PROMISC_IN_BSS is not set then 1247 * @FIF_CONTROL: pass control frames (except for PS Poll), if PROMISC_IN_BSS
1240 * only those addressed to this station 1248 * is not set then only those addressed to this station.
1241 * 1249 *
1242 * @FIF_OTHER_BSS: pass frames destined to other BSSes 1250 * @FIF_OTHER_BSS: pass frames destined to other BSSes
1251 *
1252 * @FIF_PSPOLL: pass PS Poll frames, if PROMISC_IN_BSS is not set then only
1253 * those addressed to this station.
1243 */ 1254 */
1244enum ieee80211_filter_flags { 1255enum ieee80211_filter_flags {
1245 FIF_PROMISC_IN_BSS = 1<<0, 1256 FIF_PROMISC_IN_BSS = 1<<0,
@@ -1249,6 +1260,7 @@ enum ieee80211_filter_flags {
1249 FIF_BCN_PRBRESP_PROMISC = 1<<4, 1260 FIF_BCN_PRBRESP_PROMISC = 1<<4,
1250 FIF_CONTROL = 1<<5, 1261 FIF_CONTROL = 1<<5,
1251 FIF_OTHER_BSS = 1<<6, 1262 FIF_OTHER_BSS = 1<<6,
1263 FIF_PSPOLL = 1<<7,
1252}; 1264};
1253 1265
1254/** 1266/**
@@ -1301,7 +1313,8 @@ enum ieee80211_ampdu_mlme_action {
1301 * is disabled. This should turn off the hardware (at least 1313 * is disabled. This should turn off the hardware (at least
1302 * it must turn off frame reception.) 1314 * it must turn off frame reception.)
1303 * May be called right after add_interface if that rejects 1315 * May be called right after add_interface if that rejects
1304 * an interface. 1316 * an interface. If you added any work onto the mac80211 workqueue
1317 * you should ensure to cancel it on this callback.
1305 * Must be implemented. 1318 * Must be implemented.
1306 * 1319 *
1307 * @add_interface: Called when a netdevice attached to the hardware is 1320 * @add_interface: Called when a netdevice attached to the hardware is
@@ -1928,6 +1941,31 @@ void ieee80211_iterate_active_interfaces_atomic(struct ieee80211_hw *hw,
1928 void *data); 1941 void *data);
1929 1942
1930/** 1943/**
1944 * ieee80211_queue_work - add work onto the mac80211 workqueue
1945 *
1946 * Drivers and mac80211 use this to add work onto the mac80211 workqueue.
1947 * This helper ensures drivers are not queueing work when they should not be.
1948 *
1949 * @hw: the hardware struct for the interface we are adding work for
1950 * @work: the work we want to add onto the mac80211 workqueue
1951 */
1952void ieee80211_queue_work(struct ieee80211_hw *hw, struct work_struct *work);
1953
1954/**
1955 * ieee80211_queue_delayed_work - add work onto the mac80211 workqueue
1956 *
1957 * Drivers and mac80211 use this to queue delayed work onto the mac80211
1958 * workqueue.
1959 *
1960 * @hw: the hardware struct for the interface we are adding work for
1961 * @dwork: delayable work to queue onto the mac80211 workqueue
1962 * @delay: number of jiffies to wait before queueing
1963 */
1964void ieee80211_queue_delayed_work(struct ieee80211_hw *hw,
1965 struct delayed_work *dwork,
1966 unsigned long delay);
1967
1968/**
1931 * ieee80211_start_tx_ba_session - Start a tx Block Ack session. 1969 * ieee80211_start_tx_ba_session - Start a tx Block Ack session.
1932 * @hw: pointer as obtained from ieee80211_alloc_hw(). 1970 * @hw: pointer as obtained from ieee80211_alloc_hw().
1933 * @ra: receiver address of the BA session recipient 1971 * @ra: receiver address of the BA session recipient