aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-11-28 19:21:10 -0500
committerDavid S. Miller <davem@davemloft.net>2011-11-28 19:21:10 -0500
commit8317e2047ef7d70dd76bf1d571fecaa8d4deb06f (patch)
treec400a600a4eb00da224b4e59e76396655e853d07 /include
parent2c55a3d08ade44a778c182c220a7907ec65d5fb8 (diff)
parent39338b56382ac640614851a80e0bd71994cc664d (diff)
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
Diffstat (limited to 'include')
-rw-r--r--include/linux/nl80211.h35
-rw-r--r--include/net/cfg80211.h94
-rw-r--r--include/net/mac80211.h22
-rw-r--r--include/net/nfc/nci.h84
-rw-r--r--include/net/regulatory.h6
5 files changed, 131 insertions, 110 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index f9261c253735..97bfebfcce90 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -1169,6 +1169,21 @@ enum nl80211_commands {
1169 * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire 1169 * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire
1170 * probe-response frame. The DA field in the 802.11 header is zero-ed out, 1170 * probe-response frame. The DA field in the 802.11 header is zero-ed out,
1171 * to be filled by the FW. 1171 * to be filled by the FW.
1172 * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable
1173 * this feature. Currently, only supported in mac80211 drivers.
1174 * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the
1175 * ATTR_HT_CAPABILITY to which attention should be paid.
1176 * Currently, only mac80211 NICs support this feature.
1177 * The values that may be configured are:
1178 * MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40
1179 * AMPDU density and AMPDU factor.
1180 * All values are treated as suggestions and may be ignored
1181 * by the driver as required. The actual values may be seen in
1182 * the station debugfs ht_caps file.
1183 *
1184 * @NL80211_ATTR_DFS_REGION: region for regulatory rules which this country
1185 * abides to when initiating radiation on DFS channels. A country maps
1186 * to one DFS region.
1172 * 1187 *
1173 * @NL80211_ATTR_MAX: highest attribute number currently defined 1188 * @NL80211_ATTR_MAX: highest attribute number currently defined
1174 * @__NL80211_ATTR_AFTER_LAST: internal use 1189 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -1408,6 +1423,11 @@ enum nl80211_attrs {
1408 1423
1409 NL80211_ATTR_PROBE_RESP, 1424 NL80211_ATTR_PROBE_RESP,
1410 1425
1426 NL80211_ATTR_DFS_REGION,
1427
1428 NL80211_ATTR_DISABLE_HT,
1429 NL80211_ATTR_HT_CAPABILITY_MASK,
1430
1411 /* add attributes here, update the policy in nl80211.c */ 1431 /* add attributes here, update the policy in nl80211.c */
1412 1432
1413 __NL80211_ATTR_AFTER_LAST, 1433 __NL80211_ATTR_AFTER_LAST,
@@ -1917,6 +1937,21 @@ enum nl80211_reg_rule_flags {
1917}; 1937};
1918 1938
1919/** 1939/**
1940 * enum nl80211_dfs_regions - regulatory DFS regions
1941 *
1942 * @NL80211_DFS_UNSET: Country has no DFS master region specified
1943 * @NL80211_DFS_FCC_: Country follows DFS master rules from FCC
1944 * @NL80211_DFS_FCC_: Country follows DFS master rules from ETSI
1945 * @NL80211_DFS_JP_: Country follows DFS master rules from JP/MKK/Telec
1946 */
1947enum nl80211_dfs_regions {
1948 NL80211_DFS_UNSET = 0,
1949 NL80211_DFS_FCC = 1,
1950 NL80211_DFS_ETSI = 2,
1951 NL80211_DFS_JP = 3,
1952};
1953
1954/**
1920 * enum nl80211_survey_info - survey information 1955 * enum nl80211_survey_info - survey information
1921 * 1956 *
1922 * These attribute types are used with %NL80211_ATTR_SURVEY_INFO 1957 * These attribute types are used with %NL80211_ATTR_SURVEY_INFO
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 8d7ba0961d3e..d5e18913f293 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1044,6 +1044,15 @@ struct cfg80211_auth_request {
1044}; 1044};
1045 1045
1046/** 1046/**
1047 * enum cfg80211_assoc_req_flags - Over-ride default behaviour in association.
1048 *
1049 * @ASSOC_REQ_DISABLE_HT: Disable HT (802.11n)
1050 */
1051enum cfg80211_assoc_req_flags {
1052 ASSOC_REQ_DISABLE_HT = BIT(0),
1053};
1054
1055/**
1047 * struct cfg80211_assoc_request - (Re)Association request data 1056 * struct cfg80211_assoc_request - (Re)Association request data
1048 * 1057 *
1049 * This structure provides information needed to complete IEEE 802.11 1058 * This structure provides information needed to complete IEEE 802.11
@@ -1054,6 +1063,10 @@ struct cfg80211_auth_request {
1054 * @use_mfp: Use management frame protection (IEEE 802.11w) in this association 1063 * @use_mfp: Use management frame protection (IEEE 802.11w) in this association
1055 * @crypto: crypto settings 1064 * @crypto: crypto settings
1056 * @prev_bssid: previous BSSID, if not %NULL use reassociate frame 1065 * @prev_bssid: previous BSSID, if not %NULL use reassociate frame
1066 * @flags: See &enum cfg80211_assoc_req_flags
1067 * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
1068 * will be used in ht_capa. Un-supported values will be ignored.
1069 * @ht_capa_mask: The bits of ht_capa which are to be used.
1057 */ 1070 */
1058struct cfg80211_assoc_request { 1071struct cfg80211_assoc_request {
1059 struct cfg80211_bss *bss; 1072 struct cfg80211_bss *bss;
@@ -1061,6 +1074,9 @@ struct cfg80211_assoc_request {
1061 size_t ie_len; 1074 size_t ie_len;
1062 struct cfg80211_crypto_settings crypto; 1075 struct cfg80211_crypto_settings crypto;
1063 bool use_mfp; 1076 bool use_mfp;
1077 u32 flags;
1078 struct ieee80211_ht_cap ht_capa;
1079 struct ieee80211_ht_cap ht_capa_mask;
1064}; 1080};
1065 1081
1066/** 1082/**
@@ -1159,6 +1175,10 @@ struct cfg80211_ibss_params {
1159 * @key_len: length of WEP key for shared key authentication 1175 * @key_len: length of WEP key for shared key authentication
1160 * @key_idx: index of WEP key for shared key authentication 1176 * @key_idx: index of WEP key for shared key authentication
1161 * @key: WEP key for shared key authentication 1177 * @key: WEP key for shared key authentication
1178 * @flags: See &enum cfg80211_assoc_req_flags
1179 * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
1180 * will be used in ht_capa. Un-supported values will be ignored.
1181 * @ht_capa_mask: The bits of ht_capa which are to be used.
1162 */ 1182 */
1163struct cfg80211_connect_params { 1183struct cfg80211_connect_params {
1164 struct ieee80211_channel *channel; 1184 struct ieee80211_channel *channel;
@@ -1172,6 +1192,9 @@ struct cfg80211_connect_params {
1172 struct cfg80211_crypto_settings crypto; 1192 struct cfg80211_crypto_settings crypto;
1173 const u8 *key; 1193 const u8 *key;
1174 u8 key_len, key_idx; 1194 u8 key_len, key_idx;
1195 u32 flags;
1196 struct ieee80211_ht_cap ht_capa;
1197 struct ieee80211_ht_cap ht_capa_mask;
1175}; 1198};
1176 1199
1177/** 1200/**
@@ -1700,6 +1723,8 @@ struct cfg80211_ops {
1700 * cfg80211_report_obss_beacon(). 1723 * cfg80211_report_obss_beacon().
1701 * @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD: When operating as an AP, the device 1724 * @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD: When operating as an AP, the device
1702 * responds to probe-requests in hardware. 1725 * responds to probe-requests in hardware.
1726 * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX.
1727 * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call.
1703 */ 1728 */
1704enum wiphy_flags { 1729enum wiphy_flags {
1705 WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), 1730 WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0),
@@ -1721,6 +1746,8 @@ enum wiphy_flags {
1721 WIPHY_FLAG_HAVE_AP_SME = BIT(17), 1746 WIPHY_FLAG_HAVE_AP_SME = BIT(17),
1722 WIPHY_FLAG_REPORTS_OBSS = BIT(18), 1747 WIPHY_FLAG_REPORTS_OBSS = BIT(18),
1723 WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = BIT(19), 1748 WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = BIT(19),
1749 WIPHY_FLAG_OFFCHAN_TX = BIT(20),
1750 WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = BIT(21),
1724}; 1751};
1725 1752
1726/** 1753/**
@@ -1934,6 +1961,8 @@ struct wiphy_wowlan_support {
1934 * @wowlan: WoWLAN support information 1961 * @wowlan: WoWLAN support information
1935 * 1962 *
1936 * @ap_sme_capa: AP SME capabilities, flags from &enum nl80211_ap_sme_features. 1963 * @ap_sme_capa: AP SME capabilities, flags from &enum nl80211_ap_sme_features.
1964 * @ht_capa_mod_mask: Specify what ht_cap values can be over-ridden.
1965 * If null, then none can be over-ridden.
1937 */ 1966 */
1938struct wiphy { 1967struct wiphy {
1939 /* assign these fields before you register the wiphy */ 1968 /* assign these fields before you register the wiphy */
@@ -2023,6 +2052,8 @@ struct wiphy {
2023 /* dir in debugfs: ieee80211/<wiphyname> */ 2052 /* dir in debugfs: ieee80211/<wiphyname> */
2024 struct dentry *debugfsdir; 2053 struct dentry *debugfsdir;
2025 2054
2055 const struct ieee80211_ht_cap *ht_capa_mod_mask;
2056
2026#ifdef CONFIG_NET_NS 2057#ifdef CONFIG_NET_NS
2027 /* the network namespace this phy lives in currently */ 2058 /* the network namespace this phy lives in currently */
2028 struct net *_net; 2059 struct net *_net;
@@ -2387,69 +2418,6 @@ extern int ieee80211_radiotap_iterator_next(
2387extern const unsigned char rfc1042_header[6]; 2418extern const unsigned char rfc1042_header[6];
2388extern const unsigned char bridge_tunnel_header[6]; 2419extern const unsigned char bridge_tunnel_header[6];
2389 2420
2390/* Parsed Information Elements */
2391struct ieee802_11_elems {
2392 u8 *ie_start;
2393 size_t total_len;
2394
2395 /* pointers to IEs */
2396 u8 *ssid;
2397 u8 *supp_rates;
2398 u8 *fh_params;
2399 u8 *ds_params;
2400 u8 *cf_params;
2401 struct ieee80211_tim_ie *tim;
2402 u8 *ibss_params;
2403 u8 *challenge;
2404 u8 *wpa;
2405 u8 *rsn;
2406 u8 *erp_info;
2407 u8 *ext_supp_rates;
2408 u8 *wmm_info;
2409 u8 *wmm_param;
2410 struct ieee80211_ht_cap *ht_cap_elem;
2411 struct ieee80211_ht_info *ht_info_elem;
2412 struct ieee80211_meshconf_ie *mesh_config;
2413 u8 *mesh_id;
2414 u8 *peering;
2415 u8 *preq;
2416 u8 *prep;
2417 u8 *perr;
2418 struct ieee80211_rann_ie *rann;
2419 u8 *ch_switch_elem;
2420 u8 *country_elem;
2421 u8 *pwr_constr_elem;
2422 u8 *quiet_elem; /* first quite element */
2423 u8 *timeout_int;
2424
2425 /* length of them, respectively */
2426 u8 ssid_len;
2427 u8 supp_rates_len;
2428 u8 fh_params_len;
2429 u8 ds_params_len;
2430 u8 cf_params_len;
2431 u8 tim_len;
2432 u8 ibss_params_len;
2433 u8 challenge_len;
2434 u8 wpa_len;
2435 u8 rsn_len;
2436 u8 erp_info_len;
2437 u8 ext_supp_rates_len;
2438 u8 wmm_info_len;
2439 u8 wmm_param_len;
2440 u8 mesh_id_len;
2441 u8 peering_len;
2442 u8 preq_len;
2443 u8 prep_len;
2444 u8 perr_len;
2445 u8 ch_switch_elem_len;
2446 u8 country_elem_len;
2447 u8 pwr_constr_elem_len;
2448 u8 quiet_elem_len;
2449 u8 num_of_quiet_elem; /* can be more the one */
2450 u8 timeout_int_len;
2451};
2452
2453/** 2421/**
2454 * ieee80211_get_hdrlen_from_skb - get header length from data 2422 * ieee80211_get_hdrlen_from_skb - get header length from data
2455 * 2423 *
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 0756049ae76d..5b5c8a7e26d7 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1760,11 +1760,21 @@ enum ieee80211_frame_release_type {
1760 * skb contains the buffer starting from the IEEE 802.11 header. 1760 * skb contains the buffer starting from the IEEE 802.11 header.
1761 * The low-level driver should send the frame out based on 1761 * The low-level driver should send the frame out based on
1762 * configuration in the TX control data. This handler should, 1762 * configuration in the TX control data. This handler should,
1763 * preferably, never fail and stop queues appropriately, more 1763 * preferably, never fail and stop queues appropriately.
1764 * importantly, however, it must never fail for A-MPDU-queues. 1764 * This must be implemented if @tx_frags is not.
1765 * This function should return NETDEV_TX_OK except in very 1765 * Must be atomic.
1766 * limited cases. 1766 *
1767 * Must be implemented and atomic. 1767 * @tx_frags: Called to transmit multiple fragments of a single MSDU.
1768 * This handler must consume all fragments, sending out some of
1769 * them only is useless and it can't ask for some of them to be
1770 * queued again. If the frame is not fragmented the queue has a
1771 * single SKB only. To avoid issues with the networking stack
1772 * when TX status is reported the frames should be removed from
1773 * the skb queue.
1774 * If this is used, the tx_info @vif and @sta pointers will be
1775 * invalid -- you must not use them in that case.
1776 * This must be implemented if @tx isn't.
1777 * Must be atomic.
1768 * 1778 *
1769 * @start: Called before the first netdevice attached to the hardware 1779 * @start: Called before the first netdevice attached to the hardware
1770 * is enabled. This should turn on the hardware and must turn on 1780 * is enabled. This should turn on the hardware and must turn on
@@ -2101,6 +2111,8 @@ enum ieee80211_frame_release_type {
2101 */ 2111 */
2102struct ieee80211_ops { 2112struct ieee80211_ops {
2103 void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); 2113 void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb);
2114 void (*tx_frags)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
2115 struct ieee80211_sta *sta, struct sk_buff_head *skbs);
2104 int (*start)(struct ieee80211_hw *hw); 2116 int (*start)(struct ieee80211_hw *hw);
2105 void (*stop)(struct ieee80211_hw *hw); 2117 void (*stop)(struct ieee80211_hw *hw);
2106#ifdef CONFIG_PM 2118#ifdef CONFIG_PM
diff --git a/include/net/nfc/nci.h b/include/net/nfc/nci.h
index cdbe67139343..b61eb6c9df14 100644
--- a/include/net/nfc/nci.h
+++ b/include/net/nfc/nci.h
@@ -34,30 +34,30 @@
34#define NCI_MAX_NUM_CONN 10 34#define NCI_MAX_NUM_CONN 10
35 35
36/* NCI Status Codes */ 36/* NCI Status Codes */
37#define NCI_STATUS_OK 0x00 37#define NCI_STATUS_OK 0x00
38#define NCI_STATUS_REJECTED 0x01 38#define NCI_STATUS_REJECTED 0x01
39#define NCI_STATUS_RF_FRAME_CORRUPTED 0x02 39#define NCI_STATUS_RF_FRAME_CORRUPTED 0x02
40#define NCI_STATUS_FAILED 0x03 40#define NCI_STATUS_FAILED 0x03
41#define NCI_STATUS_NOT_INITIALIZED 0x04 41#define NCI_STATUS_NOT_INITIALIZED 0x04
42#define NCI_STATUS_SYNTAX_ERROR 0x05 42#define NCI_STATUS_SYNTAX_ERROR 0x05
43#define NCI_STATUS_SEMANTIC_ERROR 0x06 43#define NCI_STATUS_SEMANTIC_ERROR 0x06
44#define NCI_STATUS_UNKNOWN_GID 0x07 44#define NCI_STATUS_UNKNOWN_GID 0x07
45#define NCI_STATUS_UNKNOWN_OID 0x08 45#define NCI_STATUS_UNKNOWN_OID 0x08
46#define NCI_STATUS_INVALID_PARAM 0x09 46#define NCI_STATUS_INVALID_PARAM 0x09
47#define NCI_STATUS_MESSAGE_SIZE_EXCEEDED 0x0a 47#define NCI_STATUS_MESSAGE_SIZE_EXCEEDED 0x0a
48/* Discovery Specific Status Codes */ 48/* Discovery Specific Status Codes */
49#define NCI_STATUS_DISCOVERY_ALREADY_STARTED 0xa0 49#define NCI_STATUS_DISCOVERY_ALREADY_STARTED 0xa0
50#define NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED 0xa1 50#define NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED 0xa1
51#define NCI_STATUS_DISCOVERY_TEAR_DOWN 0xa2 51#define NCI_STATUS_DISCOVERY_TEAR_DOWN 0xa2
52/* RF Interface Specific Status Codes */ 52/* RF Interface Specific Status Codes */
53#define NCI_STATUS_RF_TRANSMISSION_ERROR 0xb0 53#define NCI_STATUS_RF_TRANSMISSION_ERROR 0xb0
54#define NCI_STATUS_RF_PROTOCOL_ERROR 0xb1 54#define NCI_STATUS_RF_PROTOCOL_ERROR 0xb1
55#define NCI_STATUS_RF_TIMEOUT_ERROR 0xb2 55#define NCI_STATUS_RF_TIMEOUT_ERROR 0xb2
56/* NFCEE Interface Specific Status Codes */ 56/* NFCEE Interface Specific Status Codes */
57#define NCI_STATUS_MAX_ACTIVE_NFCEE_INTERFACES_REACHED 0xc0 57#define NCI_STATUS_MAX_ACTIVE_NFCEE_INTERFACES_REACHED 0xc0
58#define NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED 0xc1 58#define NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED 0xc1
59#define NCI_STATUS_NFCEE_TRANSMISSION_ERROR 0xc2 59#define NCI_STATUS_NFCEE_TRANSMISSION_ERROR 0xc2
60#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc3 60#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc3
61#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc4 61#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc4
62 62
63/* NCI RF Technology and Mode */ 63/* NCI RF Technology and Mode */
@@ -97,9 +97,9 @@
97 97
98/* NCI RF Interfaces */ 98/* NCI RF Interfaces */
99#define NCI_RF_INTERFACE_NFCEE_DIRECT 0x00 99#define NCI_RF_INTERFACE_NFCEE_DIRECT 0x00
100#define NCI_RF_INTERFACE_FRAME 0x01 100#define NCI_RF_INTERFACE_FRAME 0x01
101#define NCI_RF_INTERFACE_ISO_DEP 0x02 101#define NCI_RF_INTERFACE_ISO_DEP 0x02
102#define NCI_RF_INTERFACE_NFC_DEP 0x03 102#define NCI_RF_INTERFACE_NFC_DEP 0x03
103 103
104/* NCI Reset types */ 104/* NCI Reset types */
105#define NCI_RESET_TYPE_KEEP_CONFIG 0x00 105#define NCI_RESET_TYPE_KEEP_CONFIG 0x00
@@ -118,22 +118,22 @@
118 118
119/* NCI Discovery Types */ 119/* NCI Discovery Types */
120#define NCI_DISCOVERY_TYPE_POLL_A_PASSIVE 0x00 120#define NCI_DISCOVERY_TYPE_POLL_A_PASSIVE 0x00
121#define NCI_DISCOVERY_TYPE_POLL_B_PASSIVE 0x01 121#define NCI_DISCOVERY_TYPE_POLL_B_PASSIVE 0x01
122#define NCI_DISCOVERY_TYPE_POLL_F_PASSIVE 0x02 122#define NCI_DISCOVERY_TYPE_POLL_F_PASSIVE 0x02
123#define NCI_DISCOVERY_TYPE_POLL_A_ACTIVE 0x03 123#define NCI_DISCOVERY_TYPE_POLL_A_ACTIVE 0x03
124#define NCI_DISCOVERY_TYPE_POLL_F_ACTIVE 0x05 124#define NCI_DISCOVERY_TYPE_POLL_F_ACTIVE 0x05
125#define NCI_DISCOVERY_TYPE_WAKEUP_A_ACTIVE 0x09 125#define NCI_DISCOVERY_TYPE_WAKEUP_A_ACTIVE 0x09
126#define NCI_DISCOVERY_TYPE_LISTEN_A_PASSIVE 0x80 126#define NCI_DISCOVERY_TYPE_LISTEN_A_PASSIVE 0x80
127#define NCI_DISCOVERY_TYPE_LISTEN_B_PASSIVE 0x81 127#define NCI_DISCOVERY_TYPE_LISTEN_B_PASSIVE 0x81
128#define NCI_DISCOVERY_TYPE_LISTEN_F_PASSIVE 0x82 128#define NCI_DISCOVERY_TYPE_LISTEN_F_PASSIVE 0x82
129#define NCI_DISCOVERY_TYPE_LISTEN_A_ACTIVE 0x83 129#define NCI_DISCOVERY_TYPE_LISTEN_A_ACTIVE 0x83
130#define NCI_DISCOVERY_TYPE_LISTEN_F_ACTIVE 0x85 130#define NCI_DISCOVERY_TYPE_LISTEN_F_ACTIVE 0x85
131 131
132/* NCI Deactivation Type */ 132/* NCI Deactivation Type */
133#define NCI_DEACTIVATE_TYPE_IDLE_MODE 0x00 133#define NCI_DEACTIVATE_TYPE_IDLE_MODE 0x00
134#define NCI_DEACTIVATE_TYPE_SLEEP_MODE 0x01 134#define NCI_DEACTIVATE_TYPE_SLEEP_MODE 0x01
135#define NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE 0x02 135#define NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE 0x02
136#define NCI_DEACTIVATE_TYPE_DISCOVERY 0x03 136#define NCI_DEACTIVATE_TYPE_DISCOVERY 0x03
137 137
138/* Message Type (MT) */ 138/* Message Type (MT) */
139#define NCI_MT_DATA_PKT 0x00 139#define NCI_MT_DATA_PKT 0x00
@@ -165,10 +165,10 @@
165#define nci_conn_id(hdr) (__u8)(((hdr)[0])&0x0f) 165#define nci_conn_id(hdr) (__u8)(((hdr)[0])&0x0f)
166 166
167/* GID values */ 167/* GID values */
168#define NCI_GID_CORE 0x0 168#define NCI_GID_CORE 0x0
169#define NCI_GID_RF_MGMT 0x1 169#define NCI_GID_RF_MGMT 0x1
170#define NCI_GID_NFCEE_MGMT 0x2 170#define NCI_GID_NFCEE_MGMT 0x2
171#define NCI_GID_PROPRIETARY 0xf 171#define NCI_GID_PROPRIETARY 0xf
172 172
173/* ---- NCI Packet structures ---- */ 173/* ---- NCI Packet structures ---- */
174#define NCI_CTRL_HDR_SIZE 3 174#define NCI_CTRL_HDR_SIZE 3
diff --git a/include/net/regulatory.h b/include/net/regulatory.h
index eb7d3c2d4274..a5f79933e211 100644
--- a/include/net/regulatory.h
+++ b/include/net/regulatory.h
@@ -48,6 +48,10 @@ enum environment_cap {
48 * 99 - built by driver but a specific alpha2 cannot be determined 48 * 99 - built by driver but a specific alpha2 cannot be determined
49 * 98 - result of an intersection between two regulatory domains 49 * 98 - result of an intersection between two regulatory domains
50 * 97 - regulatory domain has not yet been configured 50 * 97 - regulatory domain has not yet been configured
51 * @dfs_region: If CRDA responded with a regulatory domain that requires
52 * DFS master operation on a known DFS region (NL80211_DFS_*),
53 * dfs_region represents that region. Drivers can use this and the
54 * @alpha2 to adjust their device's DFS parameters as required.
51 * @intersect: indicates whether the wireless core should intersect 55 * @intersect: indicates whether the wireless core should intersect
52 * the requested regulatory domain with the presently set regulatory 56 * the requested regulatory domain with the presently set regulatory
53 * domain. 57 * domain.
@@ -67,6 +71,7 @@ struct regulatory_request {
67 int wiphy_idx; 71 int wiphy_idx;
68 enum nl80211_reg_initiator initiator; 72 enum nl80211_reg_initiator initiator;
69 char alpha2[2]; 73 char alpha2[2];
74 u8 dfs_region;
70 bool intersect; 75 bool intersect;
71 bool processed; 76 bool processed;
72 enum environment_cap country_ie_env; 77 enum environment_cap country_ie_env;
@@ -93,6 +98,7 @@ struct ieee80211_reg_rule {
93struct ieee80211_regdomain { 98struct ieee80211_regdomain {
94 u32 n_reg_rules; 99 u32 n_reg_rules;
95 char alpha2[2]; 100 char alpha2[2];
101 u8 dfs_region;
96 struct ieee80211_reg_rule reg_rules[]; 102 struct ieee80211_reg_rule reg_rules[];
97}; 103};
98 104