aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-dev.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h109
1 files changed, 0 insertions, 109 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index af846002150a..aa99457c3a52 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -292,114 +292,6 @@ struct iwl_vif_priv {
292 u8 ibss_bssid_sta_id; 292 u8 ibss_bssid_sta_id;
293}; 293};
294 294
295/* v1/v2 uCode file layout */
296struct iwl_ucode_header {
297 __le32 ver; /* major/minor/API/serial */
298 union {
299 struct {
300 __le32 inst_size; /* bytes of runtime code */
301 __le32 data_size; /* bytes of runtime data */
302 __le32 init_size; /* bytes of init code */
303 __le32 init_data_size; /* bytes of init data */
304 __le32 boot_size; /* bytes of bootstrap code */
305 u8 data[0]; /* in same order as sizes */
306 } v1;
307 struct {
308 __le32 build; /* build number */
309 __le32 inst_size; /* bytes of runtime code */
310 __le32 data_size; /* bytes of runtime data */
311 __le32 init_size; /* bytes of init code */
312 __le32 init_data_size; /* bytes of init data */
313 __le32 boot_size; /* bytes of bootstrap code */
314 u8 data[0]; /* in same order as sizes */
315 } v2;
316 } u;
317};
318
319/*
320 * new TLV uCode file layout
321 *
322 * The new TLV file format contains TLVs, that each specify
323 * some piece of data. To facilitate "groups", for example
324 * different instruction image with different capabilities,
325 * bundled with the same init image, an alternative mechanism
326 * is provided:
327 * When the alternative field is 0, that means that the item
328 * is always valid. When it is non-zero, then it is only
329 * valid in conjunction with items of the same alternative,
330 * in which case the driver (user) selects one alternative
331 * to use.
332 */
333
334enum iwl_ucode_tlv_type {
335 IWL_UCODE_TLV_INVALID = 0, /* unused */
336 IWL_UCODE_TLV_INST = 1,
337 IWL_UCODE_TLV_DATA = 2,
338 IWL_UCODE_TLV_INIT = 3,
339 IWL_UCODE_TLV_INIT_DATA = 4,
340 IWL_UCODE_TLV_BOOT = 5,
341 IWL_UCODE_TLV_PROBE_MAX_LEN = 6, /* a u32 value */
342 IWL_UCODE_TLV_PAN = 7,
343 IWL_UCODE_TLV_RUNT_EVTLOG_PTR = 8,
344 IWL_UCODE_TLV_RUNT_EVTLOG_SIZE = 9,
345 IWL_UCODE_TLV_RUNT_ERRLOG_PTR = 10,
346 IWL_UCODE_TLV_INIT_EVTLOG_PTR = 11,
347 IWL_UCODE_TLV_INIT_EVTLOG_SIZE = 12,
348 IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13,
349 IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14,
350 IWL_UCODE_TLV_PHY_CALIBRATION_SIZE = 15,
351 IWL_UCODE_TLV_WOWLAN_INST = 16,
352 IWL_UCODE_TLV_WOWLAN_DATA = 17,
353 IWL_UCODE_TLV_FLAGS = 18,
354};
355
356/**
357 * enum iwl_ucode_tlv_flag - ucode API flags
358 * @IWL_UCODE_TLV_FLAGS_PAN: This is PAN capable microcode; this previously
359 * was a separate TLV but moved here to save space.
360 * @IWL_UCODE_TLV_FLAGS_NEWSCAN: new uCode scan behaviour on hidden SSID,
361 * treats good CRC threshold as a boolean
362 * @IWL_UCODE_TLV_FLAGS_MFP: This uCode image supports MFP (802.11w).
363 * @IWL_UCODE_TLV_FLAGS_P2P: This uCode image supports P2P.
364 */
365enum iwl_ucode_tlv_flag {
366 IWL_UCODE_TLV_FLAGS_PAN = BIT(0),
367 IWL_UCODE_TLV_FLAGS_NEWSCAN = BIT(1),
368 IWL_UCODE_TLV_FLAGS_MFP = BIT(2),
369 IWL_UCODE_TLV_FLAGS_P2P = BIT(3),
370};
371
372struct iwl_ucode_tlv {
373 __le16 type; /* see above */
374 __le16 alternative; /* see comment */
375 __le32 length; /* not including type/length fields */
376 u8 data[0];
377} __packed;
378
379#define IWL_TLV_UCODE_MAGIC 0x0a4c5749
380
381struct iwl_tlv_ucode_header {
382 /*
383 * The TLV style ucode header is distinguished from
384 * the v1/v2 style header by first four bytes being
385 * zero, as such is an invalid combination of
386 * major/minor/API/serial versions.
387 */
388 __le32 zero;
389 __le32 magic;
390 u8 human_readable[64];
391 __le32 ver; /* major/minor/API/serial */
392 __le32 build;
393 __le64 alternatives; /* bitmask of valid alternatives */
394 /*
395 * The data contained herein has a TLV layout,
396 * see above for the TLV header and types.
397 * Note that each TLV is padded to a length
398 * that is a multiple of 4 for alignment.
399 */
400 u8 data[0];
401};
402
403struct iwl_sensitivity_ranges { 295struct iwl_sensitivity_ranges {
404 u16 min_nrg_cck; 296 u16 min_nrg_cck;
405 u16 max_nrg_cck; 297 u16 max_nrg_cck;
@@ -821,7 +713,6 @@ struct iwl_wipan_noa_data {
821struct iwl_priv { 713struct iwl_priv {
822 714
823 /*data shared among all the driver's layers */ 715 /*data shared among all the driver's layers */
824 struct iwl_shared _shrd;
825 struct iwl_shared *shrd; 716 struct iwl_shared *shrd;
826 717
827 /* ieee device used by generic ieee processing code */ 718 /* ieee device used by generic ieee processing code */