diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/ath9k_platform.h | 28 | ||||
| -rw-r--r-- | include/linux/ieee80211.h | 181 | ||||
| -rw-r--r-- | include/linux/nl80211.h | 36 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 4 | ||||
| -rw-r--r-- | include/linux/spi/libertas_spi.h | 25 | ||||
| -rw-r--r-- | include/linux/ssb/ssb_regs.h | 36 | ||||
| -rw-r--r-- | include/linux/wireless.h | 12 |
7 files changed, 316 insertions, 6 deletions
diff --git a/include/linux/ath9k_platform.h b/include/linux/ath9k_platform.h new file mode 100644 index 000000000000..b847fc7b93f9 --- /dev/null +++ b/include/linux/ath9k_platform.h | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2008 Atheros Communications Inc. | ||
| 3 | * Copyright (c) 2009 Gabor Juhos <juhosg@openwrt.org> | ||
| 4 | * Copyright (c) 2009 Imre Kaloz <kaloz@openwrt.org> | ||
| 5 | * | ||
| 6 | * Permission to use, copy, modify, and/or distribute this software for any | ||
| 7 | * purpose with or without fee is hereby granted, provided that the above | ||
| 8 | * copyright notice and this permission notice appear in all copies. | ||
| 9 | * | ||
| 10 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
| 11 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
| 12 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
| 13 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
| 14 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
| 15 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
| 16 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
| 17 | */ | ||
| 18 | |||
| 19 | #ifndef _LINUX_ATH9K_PLATFORM_H | ||
| 20 | #define _LINUX_ATH9K_PLATFORM_H | ||
| 21 | |||
| 22 | #define ATH9K_PLAT_EEP_MAX_WORDS 2048 | ||
| 23 | |||
| 24 | struct ath9k_platform_data { | ||
| 25 | u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS]; | ||
| 26 | }; | ||
| 27 | |||
| 28 | #endif /* _LINUX_ATH9K_PLATFORM_H */ | ||
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index c4e6ca1a6306..b1bb817d1427 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
| @@ -527,6 +527,8 @@ struct ieee80211_tim_ie { | |||
| 527 | u8 virtual_map[0]; | 527 | u8 virtual_map[0]; |
| 528 | } __attribute__ ((packed)); | 528 | } __attribute__ ((packed)); |
| 529 | 529 | ||
| 530 | #define WLAN_SA_QUERY_TR_ID_LEN 16 | ||
| 531 | |||
| 530 | struct ieee80211_mgmt { | 532 | struct ieee80211_mgmt { |
| 531 | __le16 frame_control; | 533 | __le16 frame_control; |
| 532 | __le16 duration; | 534 | __le16 duration; |
| @@ -646,6 +648,10 @@ struct ieee80211_mgmt { | |||
| 646 | u8 action_code; | 648 | u8 action_code; |
| 647 | u8 variable[0]; | 649 | u8 variable[0]; |
| 648 | } __attribute__((packed)) mesh_action; | 650 | } __attribute__((packed)) mesh_action; |
| 651 | struct { | ||
| 652 | u8 action; | ||
| 653 | u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN]; | ||
| 654 | } __attribute__ ((packed)) sa_query; | ||
| 649 | } u; | 655 | } u; |
| 650 | } __attribute__ ((packed)) action; | 656 | } __attribute__ ((packed)) action; |
| 651 | } u; | 657 | } u; |
| @@ -655,6 +661,15 @@ struct ieee80211_mgmt { | |||
| 655 | #define IEEE80211_MIN_ACTION_SIZE offsetof(struct ieee80211_mgmt, u.action.u) | 661 | #define IEEE80211_MIN_ACTION_SIZE offsetof(struct ieee80211_mgmt, u.action.u) |
| 656 | 662 | ||
| 657 | 663 | ||
| 664 | /* Management MIC information element (IEEE 802.11w) */ | ||
| 665 | struct ieee80211_mmie { | ||
| 666 | u8 element_id; | ||
| 667 | u8 length; | ||
| 668 | __le16 key_id; | ||
| 669 | u8 sequence_number[6]; | ||
| 670 | u8 mic[8]; | ||
| 671 | } __attribute__ ((packed)); | ||
| 672 | |||
| 658 | /* Control frames */ | 673 | /* Control frames */ |
| 659 | struct ieee80211_rts { | 674 | struct ieee80211_rts { |
| 660 | __le16 frame_control; | 675 | __le16 frame_control; |
| @@ -899,6 +914,9 @@ enum ieee80211_statuscode { | |||
| 899 | /* 802.11g */ | 914 | /* 802.11g */ |
| 900 | WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25, | 915 | WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25, |
| 901 | WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26, | 916 | WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26, |
| 917 | /* 802.11w */ | ||
| 918 | WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY = 30, | ||
| 919 | WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31, | ||
| 902 | /* 802.11i */ | 920 | /* 802.11i */ |
| 903 | WLAN_STATUS_INVALID_IE = 40, | 921 | WLAN_STATUS_INVALID_IE = 40, |
| 904 | WLAN_STATUS_INVALID_GROUP_CIPHER = 41, | 922 | WLAN_STATUS_INVALID_GROUP_CIPHER = 41, |
| @@ -1018,6 +1036,8 @@ enum ieee80211_eid { | |||
| 1018 | WLAN_EID_HT_INFORMATION = 61, | 1036 | WLAN_EID_HT_INFORMATION = 61, |
| 1019 | /* 802.11i */ | 1037 | /* 802.11i */ |
| 1020 | WLAN_EID_RSN = 48, | 1038 | WLAN_EID_RSN = 48, |
| 1039 | WLAN_EID_TIMEOUT_INTERVAL = 56, | ||
| 1040 | WLAN_EID_MMIE = 76 /* 802.11w */, | ||
| 1021 | WLAN_EID_WPA = 221, | 1041 | WLAN_EID_WPA = 221, |
| 1022 | WLAN_EID_GENERIC = 221, | 1042 | WLAN_EID_GENERIC = 221, |
| 1023 | WLAN_EID_VENDOR_SPECIFIC = 221, | 1043 | WLAN_EID_VENDOR_SPECIFIC = 221, |
| @@ -1030,6 +1050,8 @@ enum ieee80211_category { | |||
| 1030 | WLAN_CATEGORY_QOS = 1, | 1050 | WLAN_CATEGORY_QOS = 1, |
| 1031 | WLAN_CATEGORY_DLS = 2, | 1051 | WLAN_CATEGORY_DLS = 2, |
| 1032 | WLAN_CATEGORY_BACK = 3, | 1052 | WLAN_CATEGORY_BACK = 3, |
| 1053 | WLAN_CATEGORY_PUBLIC = 4, | ||
| 1054 | WLAN_CATEGORY_SA_QUERY = 8, | ||
| 1033 | WLAN_CATEGORY_WMM = 17, | 1055 | WLAN_CATEGORY_WMM = 17, |
| 1034 | }; | 1056 | }; |
| 1035 | 1057 | ||
| @@ -1104,6 +1126,12 @@ struct ieee80211_country_ie_triplet { | |||
| 1104 | }; | 1126 | }; |
| 1105 | } __attribute__ ((packed)); | 1127 | } __attribute__ ((packed)); |
| 1106 | 1128 | ||
| 1129 | enum ieee80211_timeout_interval_type { | ||
| 1130 | WLAN_TIMEOUT_REASSOC_DEADLINE = 1 /* 802.11r */, | ||
| 1131 | WLAN_TIMEOUT_KEY_LIFETIME = 2 /* 802.11r */, | ||
| 1132 | WLAN_TIMEOUT_ASSOC_COMEBACK = 3 /* 802.11w */, | ||
| 1133 | }; | ||
| 1134 | |||
| 1107 | /* BACK action code */ | 1135 | /* BACK action code */ |
| 1108 | enum ieee80211_back_actioncode { | 1136 | enum ieee80211_back_actioncode { |
| 1109 | WLAN_ACTION_ADDBA_REQ = 0, | 1137 | WLAN_ACTION_ADDBA_REQ = 0, |
| @@ -1118,6 +1146,13 @@ enum ieee80211_back_parties { | |||
| 1118 | WLAN_BACK_TIMER = 2, | 1146 | WLAN_BACK_TIMER = 2, |
| 1119 | }; | 1147 | }; |
| 1120 | 1148 | ||
| 1149 | /* SA Query action */ | ||
| 1150 | enum ieee80211_sa_query_action { | ||
| 1151 | WLAN_ACTION_SA_QUERY_REQUEST = 0, | ||
| 1152 | WLAN_ACTION_SA_QUERY_RESPONSE = 1, | ||
| 1153 | }; | ||
| 1154 | |||
| 1155 | |||
| 1121 | /* A-MSDU 802.11n */ | 1156 | /* A-MSDU 802.11n */ |
| 1122 | #define IEEE80211_QOS_CONTROL_A_MSDU_PRESENT 0x0080 | 1157 | #define IEEE80211_QOS_CONTROL_A_MSDU_PRESENT 0x0080 |
| 1123 | 1158 | ||
| @@ -1128,6 +1163,7 @@ enum ieee80211_back_parties { | |||
| 1128 | /* reserved: 0x000FAC03 */ | 1163 | /* reserved: 0x000FAC03 */ |
| 1129 | #define WLAN_CIPHER_SUITE_CCMP 0x000FAC04 | 1164 | #define WLAN_CIPHER_SUITE_CCMP 0x000FAC04 |
| 1130 | #define WLAN_CIPHER_SUITE_WEP104 0x000FAC05 | 1165 | #define WLAN_CIPHER_SUITE_WEP104 0x000FAC05 |
| 1166 | #define WLAN_CIPHER_SUITE_AES_CMAC 0x000FAC06 | ||
| 1131 | 1167 | ||
| 1132 | #define WLAN_MAX_KEY_LEN 32 | 1168 | #define WLAN_MAX_KEY_LEN 32 |
| 1133 | 1169 | ||
| @@ -1185,4 +1221,149 @@ static inline u8 *ieee80211_get_DA(struct ieee80211_hdr *hdr) | |||
| 1185 | return hdr->addr1; | 1221 | return hdr->addr1; |
| 1186 | } | 1222 | } |
| 1187 | 1223 | ||
| 1224 | /** | ||
| 1225 | * ieee80211_is_robust_mgmt_frame - check if frame is a robust management frame | ||
| 1226 | * @hdr: the frame (buffer must include at least the first octet of payload) | ||
| 1227 | */ | ||
| 1228 | static inline bool ieee80211_is_robust_mgmt_frame(struct ieee80211_hdr *hdr) | ||
| 1229 | { | ||
| 1230 | if (ieee80211_is_disassoc(hdr->frame_control) || | ||
| 1231 | ieee80211_is_deauth(hdr->frame_control)) | ||
| 1232 | return true; | ||
| 1233 | |||
| 1234 | if (ieee80211_is_action(hdr->frame_control)) { | ||
| 1235 | u8 *category; | ||
| 1236 | |||
| 1237 | /* | ||
| 1238 | * Action frames, excluding Public Action frames, are Robust | ||
| 1239 | * Management Frames. However, if we are looking at a Protected | ||
| 1240 | * frame, skip the check since the data may be encrypted and | ||
| 1241 | * the frame has already been found to be a Robust Management | ||
| 1242 | * Frame (by the other end). | ||
| 1243 | */ | ||
| 1244 | if (ieee80211_has_protected(hdr->frame_control)) | ||
| 1245 | return true; | ||
| 1246 | category = ((u8 *) hdr) + 24; | ||
| 1247 | return *category != WLAN_CATEGORY_PUBLIC; | ||
| 1248 | } | ||
| 1249 | |||
| 1250 | return false; | ||
| 1251 | } | ||
| 1252 | |||
| 1253 | /** | ||
| 1254 | * ieee80211_fhss_chan_to_freq - get channel frequency | ||
| 1255 | * @channel: the FHSS channel | ||
| 1256 | * | ||
| 1257 | * Convert IEEE802.11 FHSS channel to frequency (MHz) | ||
| 1258 | * Ref IEEE 802.11-2007 section 14.6 | ||
| 1259 | */ | ||
| 1260 | static inline int ieee80211_fhss_chan_to_freq(int channel) | ||
| 1261 | { | ||
| 1262 | if ((channel > 1) && (channel < 96)) | ||
| 1263 | return channel + 2400; | ||
| 1264 | else | ||
| 1265 | return -1; | ||
| 1266 | } | ||
| 1267 | |||
| 1268 | /** | ||
| 1269 | * ieee80211_freq_to_fhss_chan - get channel | ||
| 1270 | * @freq: the channels frequency | ||
| 1271 | * | ||
| 1272 | * Convert frequency (MHz) to IEEE802.11 FHSS channel | ||
| 1273 | * Ref IEEE 802.11-2007 section 14.6 | ||
| 1274 | */ | ||
| 1275 | static inline int ieee80211_freq_to_fhss_chan(int freq) | ||
| 1276 | { | ||
| 1277 | if ((freq > 2401) && (freq < 2496)) | ||
| 1278 | return freq - 2400; | ||
| 1279 | else | ||
| 1280 | return -1; | ||
| 1281 | } | ||
| 1282 | |||
| 1283 | /** | ||
| 1284 | * ieee80211_dsss_chan_to_freq - get channel center frequency | ||
| 1285 | * @channel: the DSSS channel | ||
| 1286 | * | ||
| 1287 | * Convert IEEE802.11 DSSS channel to the center frequency (MHz). | ||
| 1288 | * Ref IEEE 802.11-2007 section 15.6 | ||
| 1289 | */ | ||
| 1290 | static inline int ieee80211_dsss_chan_to_freq(int channel) | ||
| 1291 | { | ||
| 1292 | if ((channel > 0) && (channel < 14)) | ||
| 1293 | return 2407 + (channel * 5); | ||
| 1294 | else if (channel == 14) | ||
| 1295 | return 2484; | ||
| 1296 | else | ||
| 1297 | return -1; | ||
| 1298 | } | ||
| 1299 | |||
| 1300 | /** | ||
| 1301 | * ieee80211_freq_to_dsss_chan - get channel | ||
| 1302 | * @freq: the frequency | ||
| 1303 | * | ||
| 1304 | * Convert frequency (MHz) to IEEE802.11 DSSS channel | ||
| 1305 | * Ref IEEE 802.11-2007 section 15.6 | ||
| 1306 | * | ||
| 1307 | * This routine selects the channel with the closest center frequency. | ||
| 1308 | */ | ||
| 1309 | static inline int ieee80211_freq_to_dsss_chan(int freq) | ||
| 1310 | { | ||
| 1311 | if ((freq >= 2410) && (freq < 2475)) | ||
| 1312 | return (freq - 2405) / 5; | ||
| 1313 | else if ((freq >= 2482) && (freq < 2487)) | ||
| 1314 | return 14; | ||
| 1315 | else | ||
| 1316 | return -1; | ||
| 1317 | } | ||
| 1318 | |||
| 1319 | /* Convert IEEE802.11 HR DSSS channel to frequency (MHz) and back | ||
| 1320 | * Ref IEEE 802.11-2007 section 18.4.6.2 | ||
| 1321 | * | ||
| 1322 | * The channels and frequencies are the same as those defined for DSSS | ||
| 1323 | */ | ||
| 1324 | #define ieee80211_hr_chan_to_freq(chan) ieee80211_dsss_chan_to_freq(chan) | ||
| 1325 | #define ieee80211_freq_to_hr_chan(freq) ieee80211_freq_to_dsss_chan(freq) | ||
| 1326 | |||
| 1327 | /* Convert IEEE802.11 ERP channel to frequency (MHz) and back | ||
| 1328 | * Ref IEEE 802.11-2007 section 19.4.2 | ||
| 1329 | */ | ||
| 1330 | #define ieee80211_erp_chan_to_freq(chan) ieee80211_hr_chan_to_freq(chan) | ||
| 1331 | #define ieee80211_freq_to_erp_chan(freq) ieee80211_freq_to_hr_chan(freq) | ||
| 1332 | |||
| 1333 | /** | ||
| 1334 | * ieee80211_ofdm_chan_to_freq - get channel center frequency | ||
| 1335 | * @s_freq: starting frequency == (dotChannelStartingFactor/2) MHz | ||
| 1336 | * @channel: the OFDM channel | ||
| 1337 | * | ||
| 1338 | * Convert IEEE802.11 OFDM channel to center frequency (MHz) | ||
| 1339 | * Ref IEEE 802.11-2007 section 17.3.8.3.2 | ||
| 1340 | */ | ||
| 1341 | static inline int ieee80211_ofdm_chan_to_freq(int s_freq, int channel) | ||
| 1342 | { | ||
| 1343 | if ((channel > 0) && (channel <= 200) && | ||
| 1344 | (s_freq >= 4000)) | ||
| 1345 | return s_freq + (channel * 5); | ||
| 1346 | else | ||
| 1347 | return -1; | ||
| 1348 | } | ||
| 1349 | |||
| 1350 | /** | ||
| 1351 | * ieee80211_freq_to_ofdm_channel - get channel | ||
| 1352 | * @s_freq: starting frequency == (dotChannelStartingFactor/2) MHz | ||
| 1353 | * @freq: the frequency | ||
| 1354 | * | ||
| 1355 | * Convert frequency (MHz) to IEEE802.11 OFDM channel | ||
| 1356 | * Ref IEEE 802.11-2007 section 17.3.8.3.2 | ||
| 1357 | * | ||
| 1358 | * This routine selects the channel with the closest center frequency. | ||
| 1359 | */ | ||
| 1360 | static inline int ieee80211_freq_to_ofdm_chan(int s_freq, int freq) | ||
| 1361 | { | ||
| 1362 | if ((freq > (s_freq + 2)) && (freq <= (s_freq + 1202)) && | ||
| 1363 | (s_freq >= 4000)) | ||
| 1364 | return (freq + 2 - s_freq) / 5; | ||
| 1365 | else | ||
| 1366 | return -1; | ||
| 1367 | } | ||
| 1368 | |||
| 1188 | #endif /* LINUX_IEEE80211_H */ | 1369 | #endif /* LINUX_IEEE80211_H */ |
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index e86ed59f9ad5..76aae3d8e97e 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
| @@ -47,7 +47,7 @@ | |||
| 47 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or | 47 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or |
| 48 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, | 48 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, |
| 49 | * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, and/or | 49 | * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, and/or |
| 50 | * %NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET. | 50 | * %NL80211_ATTR_WIPHY_CHANNEL_TYPE. |
| 51 | * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request | 51 | * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request |
| 52 | * or rename notification. Has attributes %NL80211_ATTR_WIPHY and | 52 | * or rename notification. Has attributes %NL80211_ATTR_WIPHY and |
| 53 | * %NL80211_ATTR_WIPHY_NAME. | 53 | * %NL80211_ATTR_WIPHY_NAME. |
| @@ -72,8 +72,8 @@ | |||
| 72 | * | 72 | * |
| 73 | * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified | 73 | * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified |
| 74 | * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. | 74 | * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. |
| 75 | * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT or | 75 | * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT, |
| 76 | * %NL80211_ATTR_KEY_THRESHOLD. | 76 | * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD. |
| 77 | * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, | 77 | * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, |
| 78 | * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC and %NL80211_ATTR_KEY_CIPHER | 78 | * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC and %NL80211_ATTR_KEY_CIPHER |
| 79 | * attributes. | 79 | * attributes. |
| @@ -84,7 +84,7 @@ | |||
| 84 | * %NL80222_CMD_NEW_BEACON message) | 84 | * %NL80222_CMD_NEW_BEACON message) |
| 85 | * @NL80211_CMD_SET_BEACON: set the beacon on an access point interface | 85 | * @NL80211_CMD_SET_BEACON: set the beacon on an access point interface |
| 86 | * using the %NL80211_ATTR_BEACON_INTERVAL, %NL80211_ATTR_DTIM_PERIOD, | 86 | * using the %NL80211_ATTR_BEACON_INTERVAL, %NL80211_ATTR_DTIM_PERIOD, |
| 87 | * %NL80211_BEACON_HEAD and %NL80211_BEACON_TAIL attributes. | 87 | * %NL80211_ATTR_BEACON_HEAD and %NL80211_ATTR_BEACON_TAIL attributes. |
| 88 | * @NL80211_CMD_NEW_BEACON: add a new beacon to an access point interface, | 88 | * @NL80211_CMD_NEW_BEACON: add a new beacon to an access point interface, |
| 89 | * parameters are like for %NL80211_CMD_SET_BEACON. | 89 | * parameters are like for %NL80211_CMD_SET_BEACON. |
| 90 | * @NL80211_CMD_DEL_BEACON: remove the beacon, stop sending it | 90 | * @NL80211_CMD_DEL_BEACON: remove the beacon, stop sending it |
| @@ -133,6 +133,14 @@ | |||
| 133 | * @NL80211_CMD_SET_MESH_PARAMS: Set mesh networking properties for the | 133 | * @NL80211_CMD_SET_MESH_PARAMS: Set mesh networking properties for the |
| 134 | * interface identified by %NL80211_ATTR_IFINDEX | 134 | * interface identified by %NL80211_ATTR_IFINDEX |
| 135 | * | 135 | * |
| 136 | * @NL80211_CMD_SET_MGMT_EXTRA_IE: Set extra IEs for management frames. The | ||
| 137 | * interface is identified with %NL80211_ATTR_IFINDEX and the management | ||
| 138 | * frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be | ||
| 139 | * added to the end of the specified management frame is specified with | ||
| 140 | * %NL80211_ATTR_IE. If the command succeeds, the requested data will be | ||
| 141 | * added to all specified management frames generated by | ||
| 142 | * kernel/firmware/driver. | ||
| 143 | * | ||
| 136 | * @NL80211_CMD_MAX: highest used command number | 144 | * @NL80211_CMD_MAX: highest used command number |
| 137 | * @__NL80211_CMD_AFTER_LAST: internal use | 145 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 138 | */ | 146 | */ |
| @@ -178,6 +186,8 @@ enum nl80211_commands { | |||
| 178 | NL80211_CMD_GET_MESH_PARAMS, | 186 | NL80211_CMD_GET_MESH_PARAMS, |
| 179 | NL80211_CMD_SET_MESH_PARAMS, | 187 | NL80211_CMD_SET_MESH_PARAMS, |
| 180 | 188 | ||
| 189 | NL80211_CMD_SET_MGMT_EXTRA_IE, | ||
| 190 | |||
| 181 | /* add new commands above here */ | 191 | /* add new commands above here */ |
| 182 | 192 | ||
| 183 | /* used to define NL80211_CMD_MAX below */ | 193 | /* used to define NL80211_CMD_MAX below */ |
| @@ -190,6 +200,7 @@ enum nl80211_commands { | |||
| 190 | * here | 200 | * here |
| 191 | */ | 201 | */ |
| 192 | #define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS | 202 | #define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS |
| 203 | #define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE | ||
| 193 | 204 | ||
| 194 | /** | 205 | /** |
| 195 | * enum nl80211_attrs - nl80211 netlink attributes | 206 | * enum nl80211_attrs - nl80211 netlink attributes |
| @@ -284,6 +295,12 @@ enum nl80211_commands { | |||
| 284 | * supported interface types, each a flag attribute with the number | 295 | * supported interface types, each a flag attribute with the number |
| 285 | * of the interface mode. | 296 | * of the interface mode. |
| 286 | * | 297 | * |
| 298 | * @NL80211_ATTR_MGMT_SUBTYPE: Management frame subtype for | ||
| 299 | * %NL80211_CMD_SET_MGMT_EXTRA_IE. | ||
| 300 | * | ||
| 301 | * @NL80211_ATTR_IE: Information element(s) data (used, e.g., with | ||
| 302 | * %NL80211_CMD_SET_MGMT_EXTRA_IE). | ||
| 303 | * | ||
| 287 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 304 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 288 | * @__NL80211_ATTR_AFTER_LAST: internal use | 305 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| 289 | */ | 306 | */ |
| @@ -346,6 +363,11 @@ enum nl80211_attrs { | |||
| 346 | NL80211_ATTR_WIPHY_FREQ, | 363 | NL80211_ATTR_WIPHY_FREQ, |
| 347 | NL80211_ATTR_WIPHY_CHANNEL_TYPE, | 364 | NL80211_ATTR_WIPHY_CHANNEL_TYPE, |
| 348 | 365 | ||
| 366 | NL80211_ATTR_KEY_DEFAULT_MGMT, | ||
| 367 | |||
| 368 | NL80211_ATTR_MGMT_SUBTYPE, | ||
| 369 | NL80211_ATTR_IE, | ||
| 370 | |||
| 349 | /* add attributes here, update the policy in nl80211.c */ | 371 | /* add attributes here, update the policy in nl80211.c */ |
| 350 | 372 | ||
| 351 | __NL80211_ATTR_AFTER_LAST, | 373 | __NL80211_ATTR_AFTER_LAST, |
| @@ -360,7 +382,9 @@ enum nl80211_attrs { | |||
| 360 | #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES | 382 | #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES |
| 361 | #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS | 383 | #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS |
| 362 | #define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ | 384 | #define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ |
| 363 | #define NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET | 385 | #define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE |
| 386 | #define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE | ||
| 387 | #define NL80211_ATTR_IE NL80211_ATTR_IE | ||
| 364 | 388 | ||
| 365 | #define NL80211_MAX_SUPP_RATES 32 | 389 | #define NL80211_MAX_SUPP_RATES 32 |
| 366 | #define NL80211_MAX_SUPP_REG_RULES 32 | 390 | #define NL80211_MAX_SUPP_REG_RULES 32 |
| @@ -412,12 +436,14 @@ enum nl80211_iftype { | |||
| 412 | * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames | 436 | * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames |
| 413 | * with short barker preamble | 437 | * with short barker preamble |
| 414 | * @NL80211_STA_FLAG_WME: station is WME/QoS capable | 438 | * @NL80211_STA_FLAG_WME: station is WME/QoS capable |
| 439 | * @NL80211_STA_FLAG_MFP: station uses management frame protection | ||
| 415 | */ | 440 | */ |
| 416 | enum nl80211_sta_flags { | 441 | enum nl80211_sta_flags { |
| 417 | __NL80211_STA_FLAG_INVALID, | 442 | __NL80211_STA_FLAG_INVALID, |
| 418 | NL80211_STA_FLAG_AUTHORIZED, | 443 | NL80211_STA_FLAG_AUTHORIZED, |
| 419 | NL80211_STA_FLAG_SHORT_PREAMBLE, | 444 | NL80211_STA_FLAG_SHORT_PREAMBLE, |
| 420 | NL80211_STA_FLAG_WME, | 445 | NL80211_STA_FLAG_WME, |
| 446 | NL80211_STA_FLAG_MFP, | ||
| 421 | 447 | ||
| 422 | /* keep last */ | 448 | /* keep last */ |
| 423 | __NL80211_STA_FLAG_AFTER_LAST, | 449 | __NL80211_STA_FLAG_AFTER_LAST, |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 2370184e3654..966e02332990 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -834,6 +834,8 @@ | |||
| 834 | #define PCI_DEVICE_ID_PROMISE_20276 0x5275 | 834 | #define PCI_DEVICE_ID_PROMISE_20276 0x5275 |
| 835 | #define PCI_DEVICE_ID_PROMISE_20277 0x7275 | 835 | #define PCI_DEVICE_ID_PROMISE_20277 0x7275 |
| 836 | 836 | ||
| 837 | #define PCI_VENDOR_ID_FOXCONN 0x105b | ||
| 838 | |||
| 837 | #define PCI_VENDOR_ID_UMC 0x1060 | 839 | #define PCI_VENDOR_ID_UMC 0x1060 |
| 838 | #define PCI_DEVICE_ID_UMC_UM8673F 0x0101 | 840 | #define PCI_DEVICE_ID_UMC_UM8673F 0x0101 |
| 839 | #define PCI_DEVICE_ID_UMC_UM8886BF 0x673a | 841 | #define PCI_DEVICE_ID_UMC_UM8886BF 0x673a |
| @@ -1969,6 +1971,8 @@ | |||
| 1969 | 1971 | ||
| 1970 | #define PCI_VENDOR_ID_SAMSUNG 0x144d | 1972 | #define PCI_VENDOR_ID_SAMSUNG 0x144d |
| 1971 | 1973 | ||
| 1974 | #define PCI_VENDOR_ID_AMBIT 0x1468 | ||
| 1975 | |||
| 1972 | #define PCI_VENDOR_ID_MYRICOM 0x14c1 | 1976 | #define PCI_VENDOR_ID_MYRICOM 0x14c1 |
| 1973 | 1977 | ||
| 1974 | #define PCI_VENDOR_ID_TITAN 0x14D2 | 1978 | #define PCI_VENDOR_ID_TITAN 0x14D2 |
diff --git a/include/linux/spi/libertas_spi.h b/include/linux/spi/libertas_spi.h new file mode 100644 index 000000000000..ada71b4f3788 --- /dev/null +++ b/include/linux/spi/libertas_spi.h | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | /* | ||
| 2 | * board-specific data for the libertas_spi driver. | ||
| 3 | * | ||
| 4 | * Copyright 2008 Analog Devices Inc. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or (at | ||
| 9 | * your option) any later version. | ||
| 10 | */ | ||
| 11 | #ifndef _LIBERTAS_SPI_H_ | ||
| 12 | #define _LIBERTAS_SPI_H_ | ||
| 13 | struct libertas_spi_platform_data { | ||
| 14 | /* There are two ways to read data from the WLAN module's SPI | ||
| 15 | * interface. Setting 0 or 1 here controls which one is used. | ||
| 16 | * | ||
| 17 | * Usually you want to set use_dummy_writes = 1. | ||
| 18 | * However, if that doesn't work or if you are using a slow SPI clock | ||
| 19 | * speed, you may want to use 0 here. */ | ||
| 20 | u16 use_dummy_writes; | ||
| 21 | |||
| 22 | /* GPIO number to use as chip select */ | ||
| 23 | u16 gpio_cs; | ||
| 24 | }; | ||
| 25 | #endif | ||
diff --git a/include/linux/ssb/ssb_regs.h b/include/linux/ssb/ssb_regs.h index 99a0f991e850..a01b982b5783 100644 --- a/include/linux/ssb/ssb_regs.h +++ b/include/linux/ssb/ssb_regs.h | |||
| @@ -326,6 +326,42 @@ | |||
| 326 | #define SSB_SPROM5_GPIOB_P3 0xFF00 /* Pin 3 */ | 326 | #define SSB_SPROM5_GPIOB_P3 0xFF00 /* Pin 3 */ |
| 327 | #define SSB_SPROM5_GPIOB_P3_SHIFT 8 | 327 | #define SSB_SPROM5_GPIOB_P3_SHIFT 8 |
| 328 | 328 | ||
| 329 | /* SPROM Revision 8 */ | ||
| 330 | #define SSB_SPROM8_BFLLO 0x1084 /* Boardflags (low 16 bits) */ | ||
| 331 | #define SSB_SPROM8_BFLHI 0x1086 /* Boardflags Hi */ | ||
| 332 | #define SSB_SPROM8_IL0MAC 0x108C /* 6 byte MAC address */ | ||
| 333 | #define SSB_SPROM8_CCODE 0x1092 /* 2 byte country code */ | ||
| 334 | #define SSB_SPROM8_ANTAVAIL 0x109C /* Antenna available bitfields*/ | ||
| 335 | #define SSB_SPROM8_ANTAVAIL_A 0xFF00 /* A-PHY bitfield */ | ||
| 336 | #define SSB_SPROM8_ANTAVAIL_A_SHIFT 8 | ||
| 337 | #define SSB_SPROM8_ANTAVAIL_BG 0x00FF /* B-PHY and G-PHY bitfield */ | ||
| 338 | #define SSB_SPROM8_ANTAVAIL_BG_SHIFT 0 | ||
| 339 | #define SSB_SPROM8_AGAIN01 0x109E /* Antenna Gain (in dBm Q5.2) */ | ||
| 340 | #define SSB_SPROM8_AGAIN0 0x00FF /* Antenna 0 */ | ||
| 341 | #define SSB_SPROM8_AGAIN0_SHIFT 0 | ||
| 342 | #define SSB_SPROM8_AGAIN1 0xFF00 /* Antenna 1 */ | ||
| 343 | #define SSB_SPROM8_AGAIN1_SHIFT 8 | ||
| 344 | #define SSB_SPROM8_AGAIN23 0x10A0 | ||
| 345 | #define SSB_SPROM8_AGAIN2 0x00FF /* Antenna 2 */ | ||
| 346 | #define SSB_SPROM8_AGAIN2_SHIFT 0 | ||
| 347 | #define SSB_SPROM8_AGAIN3 0xFF00 /* Antenna 3 */ | ||
| 348 | #define SSB_SPROM8_AGAIN3_SHIFT 8 | ||
| 349 | #define SSB_SPROM8_GPIOA 0x1096 /*Gen. Purpose IO # 0 and 1 */ | ||
| 350 | #define SSB_SPROM8_GPIOA_P0 0x00FF /* Pin 0 */ | ||
| 351 | #define SSB_SPROM8_GPIOA_P1 0xFF00 /* Pin 1 */ | ||
| 352 | #define SSB_SPROM8_GPIOA_P1_SHIFT 8 | ||
| 353 | #define SSB_SPROM8_GPIOB 0x1098 /* Gen. Purpose IO # 2 and 3 */ | ||
| 354 | #define SSB_SPROM8_GPIOB_P2 0x00FF /* Pin 2 */ | ||
| 355 | #define SSB_SPROM8_GPIOB_P3 0xFF00 /* Pin 3 */ | ||
| 356 | #define SSB_SPROM8_GPIOB_P3_SHIFT 8 | ||
| 357 | #define SSB_SPROM8_MAXP_BG 0x10C0 /* Max Power BG in path 1 */ | ||
| 358 | #define SSB_SPROM8_MAXP_BG_MASK 0x00FF /* Mask for Max Power BG */ | ||
| 359 | #define SSB_SPROM8_ITSSI_BG 0xFF00 /* Mask for path 1 itssi_bg */ | ||
| 360 | #define SSB_SPROM8_ITSSI_BG_SHIFT 8 | ||
| 361 | #define SSB_SPROM8_MAXP_A 0x10C8 /* Max Power A in path 1 */ | ||
| 362 | #define SSB_SPROM8_MAXP_A_MASK 0x00FF /* Mask for Max Power A */ | ||
| 363 | #define SSB_SPROM8_ITSSI_A 0xFF00 /* Mask for path 1 itssi_a */ | ||
| 364 | #define SSB_SPROM8_ITSSI_A_SHIFT 8 | ||
| 329 | 365 | ||
| 330 | /* Values for SSB_SPROM1_BINF_CCODE */ | 366 | /* Values for SSB_SPROM1_BINF_CCODE */ |
| 331 | enum { | 367 | enum { |
diff --git a/include/linux/wireless.h b/include/linux/wireless.h index d7958f9b52cb..cb24204851f7 100644 --- a/include/linux/wireless.h +++ b/include/linux/wireless.h | |||
| @@ -577,18 +577,22 @@ | |||
| 577 | #define IW_AUTH_RX_UNENCRYPTED_EAPOL 8 | 577 | #define IW_AUTH_RX_UNENCRYPTED_EAPOL 8 |
| 578 | #define IW_AUTH_ROAMING_CONTROL 9 | 578 | #define IW_AUTH_ROAMING_CONTROL 9 |
| 579 | #define IW_AUTH_PRIVACY_INVOKED 10 | 579 | #define IW_AUTH_PRIVACY_INVOKED 10 |
| 580 | #define IW_AUTH_CIPHER_GROUP_MGMT 11 | ||
| 581 | #define IW_AUTH_MFP 12 | ||
| 580 | 582 | ||
| 581 | /* IW_AUTH_WPA_VERSION values (bit field) */ | 583 | /* IW_AUTH_WPA_VERSION values (bit field) */ |
| 582 | #define IW_AUTH_WPA_VERSION_DISABLED 0x00000001 | 584 | #define IW_AUTH_WPA_VERSION_DISABLED 0x00000001 |
| 583 | #define IW_AUTH_WPA_VERSION_WPA 0x00000002 | 585 | #define IW_AUTH_WPA_VERSION_WPA 0x00000002 |
| 584 | #define IW_AUTH_WPA_VERSION_WPA2 0x00000004 | 586 | #define IW_AUTH_WPA_VERSION_WPA2 0x00000004 |
| 585 | 587 | ||
| 586 | /* IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values (bit field) */ | 588 | /* IW_AUTH_PAIRWISE_CIPHER, IW_AUTH_GROUP_CIPHER, and IW_AUTH_CIPHER_GROUP_MGMT |
| 589 | * values (bit field) */ | ||
| 587 | #define IW_AUTH_CIPHER_NONE 0x00000001 | 590 | #define IW_AUTH_CIPHER_NONE 0x00000001 |
| 588 | #define IW_AUTH_CIPHER_WEP40 0x00000002 | 591 | #define IW_AUTH_CIPHER_WEP40 0x00000002 |
| 589 | #define IW_AUTH_CIPHER_TKIP 0x00000004 | 592 | #define IW_AUTH_CIPHER_TKIP 0x00000004 |
| 590 | #define IW_AUTH_CIPHER_CCMP 0x00000008 | 593 | #define IW_AUTH_CIPHER_CCMP 0x00000008 |
| 591 | #define IW_AUTH_CIPHER_WEP104 0x00000010 | 594 | #define IW_AUTH_CIPHER_WEP104 0x00000010 |
| 595 | #define IW_AUTH_CIPHER_AES_CMAC 0x00000020 | ||
| 592 | 596 | ||
| 593 | /* IW_AUTH_KEY_MGMT values (bit field) */ | 597 | /* IW_AUTH_KEY_MGMT values (bit field) */ |
| 594 | #define IW_AUTH_KEY_MGMT_802_1X 1 | 598 | #define IW_AUTH_KEY_MGMT_802_1X 1 |
| @@ -604,6 +608,11 @@ | |||
| 604 | #define IW_AUTH_ROAMING_DISABLE 1 /* user space program used for roaming | 608 | #define IW_AUTH_ROAMING_DISABLE 1 /* user space program used for roaming |
| 605 | * control */ | 609 | * control */ |
| 606 | 610 | ||
| 611 | /* IW_AUTH_MFP (management frame protection) values */ | ||
| 612 | #define IW_AUTH_MFP_DISABLED 0 /* MFP disabled */ | ||
| 613 | #define IW_AUTH_MFP_OPTIONAL 1 /* MFP optional */ | ||
| 614 | #define IW_AUTH_MFP_REQUIRED 2 /* MFP required */ | ||
| 615 | |||
| 607 | /* SIOCSIWENCODEEXT definitions */ | 616 | /* SIOCSIWENCODEEXT definitions */ |
| 608 | #define IW_ENCODE_SEQ_MAX_SIZE 8 | 617 | #define IW_ENCODE_SEQ_MAX_SIZE 8 |
| 609 | /* struct iw_encode_ext ->alg */ | 618 | /* struct iw_encode_ext ->alg */ |
| @@ -612,6 +621,7 @@ | |||
| 612 | #define IW_ENCODE_ALG_TKIP 2 | 621 | #define IW_ENCODE_ALG_TKIP 2 |
| 613 | #define IW_ENCODE_ALG_CCMP 3 | 622 | #define IW_ENCODE_ALG_CCMP 3 |
| 614 | #define IW_ENCODE_ALG_PMK 4 | 623 | #define IW_ENCODE_ALG_PMK 4 |
| 624 | #define IW_ENCODE_ALG_AES_CMAC 5 | ||
| 615 | /* struct iw_encode_ext ->ext_flags */ | 625 | /* struct iw_encode_ext ->ext_flags */ |
| 616 | #define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001 | 626 | #define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001 |
| 617 | #define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002 | 627 | #define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002 |
