diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-commands.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-commands.h | 647 |
1 files changed, 6 insertions, 641 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index ca42ffa63ed..a1a5c1b2309 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * GPL LICENSE SUMMARY | 6 | * GPL LICENSE SUMMARY |
7 | * | 7 | * |
8 | * Copyright(c) 2005 - 2010 Intel Corporation. All rights reserved. | 8 | * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of version 2 of the GNU General Public License as | 11 | * it under the terms of version 2 of the GNU General Public License as |
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * BSD LICENSE | 31 | * BSD LICENSE |
32 | * | 32 | * |
33 | * Copyright(c) 2005 - 2010 Intel Corporation. All rights reserved. | 33 | * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved. |
34 | * All rights reserved. | 34 | * All rights reserved. |
35 | * | 35 | * |
36 | * Redistribution and use in source and binary forms, with or without | 36 | * Redistribution and use in source and binary forms, with or without |
@@ -103,9 +103,7 @@ enum { | |||
103 | REPLY_WEPKEY = 0x20, | 103 | REPLY_WEPKEY = 0x20, |
104 | 104 | ||
105 | /* RX, TX, LEDs */ | 105 | /* RX, TX, LEDs */ |
106 | REPLY_3945_RX = 0x1b, /* 3945 only */ | ||
107 | REPLY_TX = 0x1c, | 106 | REPLY_TX = 0x1c, |
108 | REPLY_RATE_SCALE = 0x47, /* 3945 only */ | ||
109 | REPLY_LEDS_CMD = 0x48, | 107 | REPLY_LEDS_CMD = 0x48, |
110 | REPLY_TX_LINK_QUALITY_CMD = 0x4e, /* for 4965 and up */ | 108 | REPLY_TX_LINK_QUALITY_CMD = 0x4e, /* for 4965 and up */ |
111 | 109 | ||
@@ -229,7 +227,7 @@ struct iwl_cmd_header { | |||
229 | * There is one exception: uCode sets bit 15 when it originates | 227 | * There is one exception: uCode sets bit 15 when it originates |
230 | * the response/notification, i.e. when the response/notification | 228 | * the response/notification, i.e. when the response/notification |
231 | * is not a direct response to a command sent by the driver. For | 229 | * is not a direct response to a command sent by the driver. For |
232 | * example, uCode issues REPLY_3945_RX when it sends a received frame | 230 | * example, uCode issues REPLY_RX when it sends a received frame |
233 | * to the driver; it is not a direct response to any driver command. | 231 | * to the driver; it is not a direct response to any driver command. |
234 | * | 232 | * |
235 | * The Linux driver uses the following format: | 233 | * The Linux driver uses the following format: |
@@ -249,36 +247,6 @@ struct iwl_cmd_header { | |||
249 | 247 | ||
250 | 248 | ||
251 | /** | 249 | /** |
252 | * struct iwl3945_tx_power | ||
253 | * | ||
254 | * Used in REPLY_TX_PWR_TABLE_CMD, REPLY_SCAN_CMD, REPLY_CHANNEL_SWITCH | ||
255 | * | ||
256 | * Each entry contains two values: | ||
257 | * 1) DSP gain (or sometimes called DSP attenuation). This is a fine-grained | ||
258 | * linear value that multiplies the output of the digital signal processor, | ||
259 | * before being sent to the analog radio. | ||
260 | * 2) Radio gain. This sets the analog gain of the radio Tx path. | ||
261 | * It is a coarser setting, and behaves in a logarithmic (dB) fashion. | ||
262 | * | ||
263 | * Driver obtains values from struct iwl3945_tx_power power_gain_table[][]. | ||
264 | */ | ||
265 | struct iwl3945_tx_power { | ||
266 | u8 tx_gain; /* gain for analog radio */ | ||
267 | u8 dsp_atten; /* gain for DSP */ | ||
268 | } __packed; | ||
269 | |||
270 | /** | ||
271 | * struct iwl3945_power_per_rate | ||
272 | * | ||
273 | * Used in REPLY_TX_PWR_TABLE_CMD, REPLY_CHANNEL_SWITCH | ||
274 | */ | ||
275 | struct iwl3945_power_per_rate { | ||
276 | u8 rate; /* plcp */ | ||
277 | struct iwl3945_tx_power tpc; | ||
278 | u8 reserved; | ||
279 | } __packed; | ||
280 | |||
281 | /** | ||
282 | * iwlagn rate_n_flags bit fields | 250 | * iwlagn rate_n_flags bit fields |
283 | * | 251 | * |
284 | * rate_n_flags format is used in following iwlagn commands: | 252 | * rate_n_flags format is used in following iwlagn commands: |
@@ -324,6 +292,8 @@ struct iwl3945_power_per_rate { | |||
324 | #define RATE_MCS_SPATIAL_MSK 0x18 | 292 | #define RATE_MCS_SPATIAL_MSK 0x18 |
325 | #define RATE_MCS_HT_DUP_POS 5 | 293 | #define RATE_MCS_HT_DUP_POS 5 |
326 | #define RATE_MCS_HT_DUP_MSK 0x20 | 294 | #define RATE_MCS_HT_DUP_MSK 0x20 |
295 | /* Both legacy and HT use bits 7:0 as the CCK/OFDM rate or HT MCS */ | ||
296 | #define RATE_MCS_RATE_MSK 0xff | ||
327 | 297 | ||
328 | /* Bit 8: (1) HT format, (0) legacy format in bits 7:0 */ | 298 | /* Bit 8: (1) HT format, (0) legacy format in bits 7:0 */ |
329 | #define RATE_MCS_FLAGS_POS 8 | 299 | #define RATE_MCS_FLAGS_POS 8 |
@@ -375,30 +345,6 @@ struct iwl3945_power_per_rate { | |||
375 | #define IWL_PWR_CCK_ENTRIES 2 | 345 | #define IWL_PWR_CCK_ENTRIES 2 |
376 | 346 | ||
377 | /** | 347 | /** |
378 | * union iwl4965_tx_power_dual_stream | ||
379 | * | ||
380 | * Host format used for REPLY_TX_PWR_TABLE_CMD, REPLY_CHANNEL_SWITCH | ||
381 | * Use __le32 version (struct tx_power_dual_stream) when building command. | ||
382 | * | ||
383 | * Driver provides radio gain and DSP attenuation settings to device in pairs, | ||
384 | * one value for each transmitter chain. The first value is for transmitter A, | ||
385 | * second for transmitter B. | ||
386 | * | ||
387 | * For SISO bit rates, both values in a pair should be identical. | ||
388 | * For MIMO rates, one value may be different from the other, | ||
389 | * in order to balance the Tx output between the two transmitters. | ||
390 | * | ||
391 | * See more details in doc for TXPOWER in iwl-4965-hw.h. | ||
392 | */ | ||
393 | union iwl4965_tx_power_dual_stream { | ||
394 | struct { | ||
395 | u8 radio_tx_gain[2]; | ||
396 | u8 dsp_predis_atten[2]; | ||
397 | } s; | ||
398 | u32 dw; | ||
399 | }; | ||
400 | |||
401 | /** | ||
402 | * struct tx_power_dual_stream | 348 | * struct tx_power_dual_stream |
403 | * | 349 | * |
404 | * Table entries in REPLY_TX_PWR_TABLE_CMD, REPLY_CHANNEL_SWITCH | 350 | * Table entries in REPLY_TX_PWR_TABLE_CMD, REPLY_CHANNEL_SWITCH |
@@ -410,15 +356,6 @@ struct tx_power_dual_stream { | |||
410 | } __packed; | 356 | } __packed; |
411 | 357 | ||
412 | /** | 358 | /** |
413 | * struct iwl4965_tx_power_db | ||
414 | * | ||
415 | * Entire table within REPLY_TX_PWR_TABLE_CMD, REPLY_CHANNEL_SWITCH | ||
416 | */ | ||
417 | struct iwl4965_tx_power_db { | ||
418 | struct tx_power_dual_stream power_tbl[POWER_TABLE_NUM_ENTRIES]; | ||
419 | } __packed; | ||
420 | |||
421 | /** | ||
422 | * Command REPLY_TX_POWER_DBM_CMD = 0x98 | 359 | * Command REPLY_TX_POWER_DBM_CMD = 0x98 |
423 | * struct iwlagn_tx_power_dbm_cmd | 360 | * struct iwlagn_tx_power_dbm_cmd |
424 | */ | 361 | */ |
@@ -451,54 +388,6 @@ struct iwl_tx_ant_config_cmd { | |||
451 | #define UCODE_VALID_OK cpu_to_le32(0x1) | 388 | #define UCODE_VALID_OK cpu_to_le32(0x1) |
452 | #define INITIALIZE_SUBTYPE (9) | 389 | #define INITIALIZE_SUBTYPE (9) |
453 | 390 | ||
454 | /* | ||
455 | * ("Initialize") REPLY_ALIVE = 0x1 (response only, not a command) | ||
456 | * | ||
457 | * uCode issues this "initialize alive" notification once the initialization | ||
458 | * uCode image has completed its work, and is ready to load the runtime image. | ||
459 | * This is the *first* "alive" notification that the driver will receive after | ||
460 | * rebooting uCode; the "initialize" alive is indicated by subtype field == 9. | ||
461 | * | ||
462 | * See comments documenting "BSM" (bootstrap state machine). | ||
463 | * | ||
464 | * For 4965, this notification contains important calibration data for | ||
465 | * calculating txpower settings: | ||
466 | * | ||
467 | * 1) Power supply voltage indication. The voltage sensor outputs higher | ||
468 | * values for lower voltage, and vice verse. | ||
469 | * | ||
470 | * 2) Temperature measurement parameters, for each of two channel widths | ||
471 | * (20 MHz and 40 MHz) supported by the radios. Temperature sensing | ||
472 | * is done via one of the receiver chains, and channel width influences | ||
473 | * the results. | ||
474 | * | ||
475 | * 3) Tx gain compensation to balance 4965's 2 Tx chains for MIMO operation, | ||
476 | * for each of 5 frequency ranges. | ||
477 | */ | ||
478 | struct iwl_init_alive_resp { | ||
479 | u8 ucode_minor; | ||
480 | u8 ucode_major; | ||
481 | __le16 reserved1; | ||
482 | u8 sw_rev[8]; | ||
483 | u8 ver_type; | ||
484 | u8 ver_subtype; /* "9" for initialize alive */ | ||
485 | __le16 reserved2; | ||
486 | __le32 log_event_table_ptr; | ||
487 | __le32 error_event_table_ptr; | ||
488 | __le32 timestamp; | ||
489 | __le32 is_valid; | ||
490 | |||
491 | /* calibration values from "initialize" uCode */ | ||
492 | __le32 voltage; /* signed, higher value is lower voltage */ | ||
493 | __le32 therm_r1[2]; /* signed, 1st for normal, 2nd for HT40 */ | ||
494 | __le32 therm_r2[2]; /* signed */ | ||
495 | __le32 therm_r3[2]; /* signed */ | ||
496 | __le32 therm_r4[2]; /* signed */ | ||
497 | __le32 tx_atten[5][2]; /* signed MIMO gain comp, 5 freq groups, | ||
498 | * 2 Tx chains */ | ||
499 | } __packed; | ||
500 | |||
501 | |||
502 | /** | 391 | /** |
503 | * REPLY_ALIVE = 0x1 (response only, not a command) | 392 | * REPLY_ALIVE = 0x1 (response only, not a command) |
504 | * | 393 | * |
@@ -722,46 +611,6 @@ enum { | |||
722 | * regardless of whether RXON_FILTER_ASSOC_MSK is set. | 611 | * regardless of whether RXON_FILTER_ASSOC_MSK is set. |
723 | */ | 612 | */ |
724 | 613 | ||
725 | struct iwl3945_rxon_cmd { | ||
726 | u8 node_addr[6]; | ||
727 | __le16 reserved1; | ||
728 | u8 bssid_addr[6]; | ||
729 | __le16 reserved2; | ||
730 | u8 wlap_bssid_addr[6]; | ||
731 | __le16 reserved3; | ||
732 | u8 dev_type; | ||
733 | u8 air_propagation; | ||
734 | __le16 reserved4; | ||
735 | u8 ofdm_basic_rates; | ||
736 | u8 cck_basic_rates; | ||
737 | __le16 assoc_id; | ||
738 | __le32 flags; | ||
739 | __le32 filter_flags; | ||
740 | __le16 channel; | ||
741 | __le16 reserved5; | ||
742 | } __packed; | ||
743 | |||
744 | struct iwl4965_rxon_cmd { | ||
745 | u8 node_addr[6]; | ||
746 | __le16 reserved1; | ||
747 | u8 bssid_addr[6]; | ||
748 | __le16 reserved2; | ||
749 | u8 wlap_bssid_addr[6]; | ||
750 | __le16 reserved3; | ||
751 | u8 dev_type; | ||
752 | u8 air_propagation; | ||
753 | __le16 rx_chain; | ||
754 | u8 ofdm_basic_rates; | ||
755 | u8 cck_basic_rates; | ||
756 | __le16 assoc_id; | ||
757 | __le32 flags; | ||
758 | __le32 filter_flags; | ||
759 | __le16 channel; | ||
760 | u8 ofdm_ht_single_stream_basic_rates; | ||
761 | u8 ofdm_ht_dual_stream_basic_rates; | ||
762 | } __packed; | ||
763 | |||
764 | /* 5000 HW just extend this command */ | ||
765 | struct iwl_rxon_cmd { | 614 | struct iwl_rxon_cmd { |
766 | u8 node_addr[6]; | 615 | u8 node_addr[6]; |
767 | __le16 reserved1; | 616 | __le16 reserved1; |
@@ -789,25 +638,6 @@ struct iwl_rxon_cmd { | |||
789 | /* | 638 | /* |
790 | * REPLY_RXON_ASSOC = 0x11 (command, has simple generic response) | 639 | * REPLY_RXON_ASSOC = 0x11 (command, has simple generic response) |
791 | */ | 640 | */ |
792 | struct iwl3945_rxon_assoc_cmd { | ||
793 | __le32 flags; | ||
794 | __le32 filter_flags; | ||
795 | u8 ofdm_basic_rates; | ||
796 | u8 cck_basic_rates; | ||
797 | __le16 reserved; | ||
798 | } __packed; | ||
799 | |||
800 | struct iwl4965_rxon_assoc_cmd { | ||
801 | __le32 flags; | ||
802 | __le32 filter_flags; | ||
803 | u8 ofdm_basic_rates; | ||
804 | u8 cck_basic_rates; | ||
805 | u8 ofdm_ht_single_stream_basic_rates; | ||
806 | u8 ofdm_ht_dual_stream_basic_rates; | ||
807 | __le16 rx_chain_select_flags; | ||
808 | __le16 reserved; | ||
809 | } __packed; | ||
810 | |||
811 | struct iwl5000_rxon_assoc_cmd { | 641 | struct iwl5000_rxon_assoc_cmd { |
812 | __le32 flags; | 642 | __le32 flags; |
813 | __le32 filter_flags; | 643 | __le32 filter_flags; |
@@ -843,26 +673,6 @@ struct iwl_rxon_time_cmd { | |||
843 | /* | 673 | /* |
844 | * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response) | 674 | * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response) |
845 | */ | 675 | */ |
846 | struct iwl3945_channel_switch_cmd { | ||
847 | u8 band; | ||
848 | u8 expect_beacon; | ||
849 | __le16 channel; | ||
850 | __le32 rxon_flags; | ||
851 | __le32 rxon_filter_flags; | ||
852 | __le32 switch_time; | ||
853 | struct iwl3945_power_per_rate power[IWL_MAX_RATES]; | ||
854 | } __packed; | ||
855 | |||
856 | struct iwl4965_channel_switch_cmd { | ||
857 | u8 band; | ||
858 | u8 expect_beacon; | ||
859 | __le16 channel; | ||
860 | __le32 rxon_flags; | ||
861 | __le32 rxon_filter_flags; | ||
862 | __le32 switch_time; | ||
863 | struct iwl4965_tx_power_db tx_power; | ||
864 | } __packed; | ||
865 | |||
866 | /** | 676 | /** |
867 | * struct iwl5000_channel_switch_cmd | 677 | * struct iwl5000_channel_switch_cmd |
868 | * @band: 0- 5.2GHz, 1- 2.4GHz | 678 | * @band: 0- 5.2GHz, 1- 2.4GHz |
@@ -976,15 +786,10 @@ struct iwl_qosparam_cmd { | |||
976 | #define IWL_AP_ID 0 | 786 | #define IWL_AP_ID 0 |
977 | #define IWL_AP_ID_PAN 1 | 787 | #define IWL_AP_ID_PAN 1 |
978 | #define IWL_STA_ID 2 | 788 | #define IWL_STA_ID 2 |
979 | #define IWL3945_BROADCAST_ID 24 | ||
980 | #define IWL3945_STATION_COUNT 25 | ||
981 | #define IWL4965_BROADCAST_ID 31 | ||
982 | #define IWL4965_STATION_COUNT 32 | ||
983 | #define IWLAGN_PAN_BCAST_ID 14 | 789 | #define IWLAGN_PAN_BCAST_ID 14 |
984 | #define IWLAGN_BROADCAST_ID 15 | 790 | #define IWLAGN_BROADCAST_ID 15 |
985 | #define IWLAGN_STATION_COUNT 16 | 791 | #define IWLAGN_STATION_COUNT 16 |
986 | 792 | ||
987 | #define IWL_STATION_COUNT 32 /* MAX(3945,4965)*/ | ||
988 | #define IWL_INVALID_STATION 255 | 793 | #define IWL_INVALID_STATION 255 |
989 | 794 | ||
990 | #define STA_FLG_TX_RATE_MSK cpu_to_le32(1 << 2) | 795 | #define STA_FLG_TX_RATE_MSK cpu_to_le32(1 << 2) |
@@ -1032,16 +837,6 @@ struct iwl_qosparam_cmd { | |||
1032 | * combined with Traffic ID (QOS priority), in format used by Tx Scheduler */ | 837 | * combined with Traffic ID (QOS priority), in format used by Tx Scheduler */ |
1033 | #define BUILD_RAxTID(sta_id, tid) (((sta_id) << 4) + (tid)) | 838 | #define BUILD_RAxTID(sta_id, tid) (((sta_id) << 4) + (tid)) |
1034 | 839 | ||
1035 | struct iwl4965_keyinfo { | ||
1036 | __le16 key_flags; | ||
1037 | u8 tkip_rx_tsc_byte2; /* TSC[2] for key mix ph1 detection */ | ||
1038 | u8 reserved1; | ||
1039 | __le16 tkip_rx_ttak[5]; /* 10-byte unicast TKIP TTAK */ | ||
1040 | u8 key_offset; | ||
1041 | u8 reserved2; | ||
1042 | u8 key[16]; /* 16-byte unicast decryption key */ | ||
1043 | } __packed; | ||
1044 | |||
1045 | /* agn */ | 840 | /* agn */ |
1046 | struct iwl_keyinfo { | 841 | struct iwl_keyinfo { |
1047 | __le16 key_flags; | 842 | __le16 key_flags; |
@@ -1083,7 +878,6 @@ struct sta_id_modify { | |||
1083 | * with info on security keys, aggregation parameters, and Tx rates for | 878 | * with info on security keys, aggregation parameters, and Tx rates for |
1084 | * initial Tx attempt and any retries (agn devices uses | 879 | * initial Tx attempt and any retries (agn devices uses |
1085 | * REPLY_TX_LINK_QUALITY_CMD, | 880 | * REPLY_TX_LINK_QUALITY_CMD, |
1086 | * 3945 uses REPLY_RATE_SCALE to set up rate tables). | ||
1087 | * | 881 | * |
1088 | * REPLY_ADD_STA sets up the table entry for one station, either creating | 882 | * REPLY_ADD_STA sets up the table entry for one station, either creating |
1089 | * a new entry, or modifying a pre-existing one. | 883 | * a new entry, or modifying a pre-existing one. |
@@ -1103,72 +897,6 @@ struct sta_id_modify { | |||
1103 | * entries for all STAs in network, starting with index IWL_STA_ID. | 897 | * entries for all STAs in network, starting with index IWL_STA_ID. |
1104 | */ | 898 | */ |
1105 | 899 | ||
1106 | struct iwl3945_addsta_cmd { | ||
1107 | u8 mode; /* 1: modify existing, 0: add new station */ | ||
1108 | u8 reserved[3]; | ||
1109 | struct sta_id_modify sta; | ||
1110 | struct iwl4965_keyinfo key; | ||
1111 | __le32 station_flags; /* STA_FLG_* */ | ||
1112 | __le32 station_flags_msk; /* STA_FLG_* */ | ||
1113 | |||
1114 | /* bit field to disable (1) or enable (0) Tx for Traffic ID (TID) | ||
1115 | * corresponding to bit (e.g. bit 5 controls TID 5). | ||
1116 | * Set modify_mask bit STA_MODIFY_TID_DISABLE_TX to use this field. */ | ||
1117 | __le16 tid_disable_tx; | ||
1118 | |||
1119 | __le16 rate_n_flags; | ||
1120 | |||
1121 | /* TID for which to add block-ack support. | ||
1122 | * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */ | ||
1123 | u8 add_immediate_ba_tid; | ||
1124 | |||
1125 | /* TID for which to remove block-ack support. | ||
1126 | * Set modify_mask bit STA_MODIFY_DELBA_TID_MSK to use this field. */ | ||
1127 | u8 remove_immediate_ba_tid; | ||
1128 | |||
1129 | /* Starting Sequence Number for added block-ack support. | ||
1130 | * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */ | ||
1131 | __le16 add_immediate_ba_ssn; | ||
1132 | } __packed; | ||
1133 | |||
1134 | struct iwl4965_addsta_cmd { | ||
1135 | u8 mode; /* 1: modify existing, 0: add new station */ | ||
1136 | u8 reserved[3]; | ||
1137 | struct sta_id_modify sta; | ||
1138 | struct iwl4965_keyinfo key; | ||
1139 | __le32 station_flags; /* STA_FLG_* */ | ||
1140 | __le32 station_flags_msk; /* STA_FLG_* */ | ||
1141 | |||
1142 | /* bit field to disable (1) or enable (0) Tx for Traffic ID (TID) | ||
1143 | * corresponding to bit (e.g. bit 5 controls TID 5). | ||
1144 | * Set modify_mask bit STA_MODIFY_TID_DISABLE_TX to use this field. */ | ||
1145 | __le16 tid_disable_tx; | ||
1146 | |||
1147 | __le16 reserved1; | ||
1148 | |||
1149 | /* TID for which to add block-ack support. | ||
1150 | * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */ | ||
1151 | u8 add_immediate_ba_tid; | ||
1152 | |||
1153 | /* TID for which to remove block-ack support. | ||
1154 | * Set modify_mask bit STA_MODIFY_DELBA_TID_MSK to use this field. */ | ||
1155 | u8 remove_immediate_ba_tid; | ||
1156 | |||
1157 | /* Starting Sequence Number for added block-ack support. | ||
1158 | * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */ | ||
1159 | __le16 add_immediate_ba_ssn; | ||
1160 | |||
1161 | /* | ||
1162 | * Number of packets OK to transmit to station even though | ||
1163 | * it is asleep -- used to synchronise PS-poll and u-APSD | ||
1164 | * responses while ucode keeps track of STA sleep state. | ||
1165 | */ | ||
1166 | __le16 sleep_tx_count; | ||
1167 | |||
1168 | __le16 reserved2; | ||
1169 | } __packed; | ||
1170 | |||
1171 | /* agn */ | ||
1172 | struct iwl_addsta_cmd { | 900 | struct iwl_addsta_cmd { |
1173 | u8 mode; /* 1: modify existing, 0: add new station */ | 901 | u8 mode; /* 1: modify existing, 0: add new station */ |
1174 | u8 reserved[3]; | 902 | u8 reserved[3]; |
@@ -1337,62 +1065,6 @@ struct iwl_wep_cmd { | |||
1337 | #define RX_MPDU_RES_STATUS_DEC_DONE_MSK (0x800) | 1065 | #define RX_MPDU_RES_STATUS_DEC_DONE_MSK (0x800) |
1338 | 1066 | ||
1339 | 1067 | ||
1340 | struct iwl3945_rx_frame_stats { | ||
1341 | u8 phy_count; | ||
1342 | u8 id; | ||
1343 | u8 rssi; | ||
1344 | u8 agc; | ||
1345 | __le16 sig_avg; | ||
1346 | __le16 noise_diff; | ||
1347 | u8 payload[0]; | ||
1348 | } __packed; | ||
1349 | |||
1350 | struct iwl3945_rx_frame_hdr { | ||
1351 | __le16 channel; | ||
1352 | __le16 phy_flags; | ||
1353 | u8 reserved1; | ||
1354 | u8 rate; | ||
1355 | __le16 len; | ||
1356 | u8 payload[0]; | ||
1357 | } __packed; | ||
1358 | |||
1359 | struct iwl3945_rx_frame_end { | ||
1360 | __le32 status; | ||
1361 | __le64 timestamp; | ||
1362 | __le32 beacon_timestamp; | ||
1363 | } __packed; | ||
1364 | |||
1365 | /* | ||
1366 | * REPLY_3945_RX = 0x1b (response only, not a command) | ||
1367 | * | ||
1368 | * NOTE: DO NOT dereference from casts to this structure | ||
1369 | * It is provided only for calculating minimum data set size. | ||
1370 | * The actual offsets of the hdr and end are dynamic based on | ||
1371 | * stats.phy_count | ||
1372 | */ | ||
1373 | struct iwl3945_rx_frame { | ||
1374 | struct iwl3945_rx_frame_stats stats; | ||
1375 | struct iwl3945_rx_frame_hdr hdr; | ||
1376 | struct iwl3945_rx_frame_end end; | ||
1377 | } __packed; | ||
1378 | |||
1379 | #define IWL39_RX_FRAME_SIZE (4 + sizeof(struct iwl3945_rx_frame)) | ||
1380 | |||
1381 | /* Fixed (non-configurable) rx data from phy */ | ||
1382 | |||
1383 | #define IWL49_RX_RES_PHY_CNT 14 | ||
1384 | #define IWL49_RX_PHY_FLAGS_ANTENNAE_OFFSET (4) | ||
1385 | #define IWL49_RX_PHY_FLAGS_ANTENNAE_MASK (0x70) | ||
1386 | #define IWL49_AGC_DB_MASK (0x3f80) /* MASK(7,13) */ | ||
1387 | #define IWL49_AGC_DB_POS (7) | ||
1388 | struct iwl4965_rx_non_cfg_phy { | ||
1389 | __le16 ant_selection; /* ant A bit 4, ant B bit 5, ant C bit 6 */ | ||
1390 | __le16 agc_info; /* agc code 0:6, agc dB 7:13, reserved 14:15 */ | ||
1391 | u8 rssi_info[6]; /* we use even entries, 0/2/4 for A/B/C rssi */ | ||
1392 | u8 pad[0]; | ||
1393 | } __packed; | ||
1394 | |||
1395 | |||
1396 | #define IWLAGN_RX_RES_PHY_CNT 8 | 1068 | #define IWLAGN_RX_RES_PHY_CNT 8 |
1397 | #define IWLAGN_RX_RES_AGC_IDX 1 | 1069 | #define IWLAGN_RX_RES_AGC_IDX 1 |
1398 | #define IWLAGN_RX_RES_RSSI_AB_IDX 2 | 1070 | #define IWLAGN_RX_RES_RSSI_AB_IDX 2 |
@@ -1576,80 +1248,6 @@ struct iwl_rx_mpdu_res_start { | |||
1576 | * REPLY_TX = 0x1c (command) | 1248 | * REPLY_TX = 0x1c (command) |
1577 | */ | 1249 | */ |
1578 | 1250 | ||
1579 | struct iwl3945_tx_cmd { | ||
1580 | /* | ||
1581 | * MPDU byte count: | ||
1582 | * MAC header (24/26/30/32 bytes) + 2 bytes pad if 26/30 header size, | ||
1583 | * + 8 byte IV for CCM or TKIP (not used for WEP) | ||
1584 | * + Data payload | ||
1585 | * + 8-byte MIC (not used for CCM/WEP) | ||
1586 | * NOTE: Does not include Tx command bytes, post-MAC pad bytes, | ||
1587 | * MIC (CCM) 8 bytes, ICV (WEP/TKIP/CKIP) 4 bytes, CRC 4 bytes.i | ||
1588 | * Range: 14-2342 bytes. | ||
1589 | */ | ||
1590 | __le16 len; | ||
1591 | |||
1592 | /* | ||
1593 | * MPDU or MSDU byte count for next frame. | ||
1594 | * Used for fragmentation and bursting, but not 11n aggregation. | ||
1595 | * Same as "len", but for next frame. Set to 0 if not applicable. | ||
1596 | */ | ||
1597 | __le16 next_frame_len; | ||
1598 | |||
1599 | __le32 tx_flags; /* TX_CMD_FLG_* */ | ||
1600 | |||
1601 | u8 rate; | ||
1602 | |||
1603 | /* Index of recipient station in uCode's station table */ | ||
1604 | u8 sta_id; | ||
1605 | u8 tid_tspec; | ||
1606 | u8 sec_ctl; | ||
1607 | u8 key[16]; | ||
1608 | union { | ||
1609 | u8 byte[8]; | ||
1610 | __le16 word[4]; | ||
1611 | __le32 dw[2]; | ||
1612 | } tkip_mic; | ||
1613 | __le32 next_frame_info; | ||
1614 | union { | ||
1615 | __le32 life_time; | ||
1616 | __le32 attempt; | ||
1617 | } stop_time; | ||
1618 | u8 supp_rates[2]; | ||
1619 | u8 rts_retry_limit; /*byte 50 */ | ||
1620 | u8 data_retry_limit; /*byte 51 */ | ||
1621 | union { | ||
1622 | __le16 pm_frame_timeout; | ||
1623 | __le16 attempt_duration; | ||
1624 | } timeout; | ||
1625 | |||
1626 | /* | ||
1627 | * Duration of EDCA burst Tx Opportunity, in 32-usec units. | ||
1628 | * Set this if txop time is not specified by HCCA protocol (e.g. by AP). | ||
1629 | */ | ||
1630 | __le16 driver_txop; | ||
1631 | |||
1632 | /* | ||
1633 | * MAC header goes here, followed by 2 bytes padding if MAC header | ||
1634 | * length is 26 or 30 bytes, followed by payload data | ||
1635 | */ | ||
1636 | u8 payload[0]; | ||
1637 | struct ieee80211_hdr hdr[0]; | ||
1638 | } __packed; | ||
1639 | |||
1640 | /* | ||
1641 | * REPLY_TX = 0x1c (response) | ||
1642 | */ | ||
1643 | struct iwl3945_tx_resp { | ||
1644 | u8 failure_rts; | ||
1645 | u8 failure_frame; | ||
1646 | u8 bt_kill_count; | ||
1647 | u8 rate; | ||
1648 | __le32 wireless_media_time; | ||
1649 | __le32 status; /* TX status */ | ||
1650 | } __packed; | ||
1651 | |||
1652 | |||
1653 | /* | 1251 | /* |
1654 | * 4965 uCode updates these Tx attempt count values in host DRAM. | 1252 | * 4965 uCode updates these Tx attempt count values in host DRAM. |
1655 | * Used for managing Tx retries when expecting block-acks. | 1253 | * Used for managing Tx retries when expecting block-acks. |
@@ -1740,54 +1338,6 @@ struct iwl_tx_cmd { | |||
1740 | struct ieee80211_hdr hdr[0]; | 1338 | struct ieee80211_hdr hdr[0]; |
1741 | } __packed; | 1339 | } __packed; |
1742 | 1340 | ||
1743 | /* TX command response is sent after *3945* transmission attempts. | ||
1744 | * | ||
1745 | * NOTES: | ||
1746 | * | ||
1747 | * TX_STATUS_FAIL_NEXT_FRAG | ||
1748 | * | ||
1749 | * If the fragment flag in the MAC header for the frame being transmitted | ||
1750 | * is set and there is insufficient time to transmit the next frame, the | ||
1751 | * TX status will be returned with 'TX_STATUS_FAIL_NEXT_FRAG'. | ||
1752 | * | ||
1753 | * TX_STATUS_FIFO_UNDERRUN | ||
1754 | * | ||
1755 | * Indicates the host did not provide bytes to the FIFO fast enough while | ||
1756 | * a TX was in progress. | ||
1757 | * | ||
1758 | * TX_STATUS_FAIL_MGMNT_ABORT | ||
1759 | * | ||
1760 | * This status is only possible if the ABORT ON MGMT RX parameter was | ||
1761 | * set to true with the TX command. | ||
1762 | * | ||
1763 | * If the MSB of the status parameter is set then an abort sequence is | ||
1764 | * required. This sequence consists of the host activating the TX Abort | ||
1765 | * control line, and then waiting for the TX Abort command response. This | ||
1766 | * indicates that a the device is no longer in a transmit state, and that the | ||
1767 | * command FIFO has been cleared. The host must then deactivate the TX Abort | ||
1768 | * control line. Receiving is still allowed in this case. | ||
1769 | */ | ||
1770 | enum { | ||
1771 | TX_3945_STATUS_SUCCESS = 0x01, | ||
1772 | TX_3945_STATUS_DIRECT_DONE = 0x02, | ||
1773 | TX_3945_STATUS_FAIL_SHORT_LIMIT = 0x82, | ||
1774 | TX_3945_STATUS_FAIL_LONG_LIMIT = 0x83, | ||
1775 | TX_3945_STATUS_FAIL_FIFO_UNDERRUN = 0x84, | ||
1776 | TX_3945_STATUS_FAIL_MGMNT_ABORT = 0x85, | ||
1777 | TX_3945_STATUS_FAIL_NEXT_FRAG = 0x86, | ||
1778 | TX_3945_STATUS_FAIL_LIFE_EXPIRE = 0x87, | ||
1779 | TX_3945_STATUS_FAIL_DEST_PS = 0x88, | ||
1780 | TX_3945_STATUS_FAIL_ABORTED = 0x89, | ||
1781 | TX_3945_STATUS_FAIL_BT_RETRY = 0x8a, | ||
1782 | TX_3945_STATUS_FAIL_STA_INVALID = 0x8b, | ||
1783 | TX_3945_STATUS_FAIL_FRAG_DROPPED = 0x8c, | ||
1784 | TX_3945_STATUS_FAIL_TID_DISABLE = 0x8d, | ||
1785 | TX_3945_STATUS_FAIL_FRAME_FLUSHED = 0x8e, | ||
1786 | TX_3945_STATUS_FAIL_INSUFFICIENT_CF_POLL = 0x8f, | ||
1787 | TX_3945_STATUS_FAIL_TX_LOCKED = 0x90, | ||
1788 | TX_3945_STATUS_FAIL_NO_BEACON_ON_RADAR = 0x91, | ||
1789 | }; | ||
1790 | |||
1791 | /* | 1341 | /* |
1792 | * TX command response is sent after *agn* transmission attempts. | 1342 | * TX command response is sent after *agn* transmission attempts. |
1793 | * | 1343 | * |
@@ -1905,43 +1455,6 @@ struct agg_tx_status { | |||
1905 | __le16 sequence; | 1455 | __le16 sequence; |
1906 | } __packed; | 1456 | } __packed; |
1907 | 1457 | ||
1908 | struct iwl4965_tx_resp { | ||
1909 | u8 frame_count; /* 1 no aggregation, >1 aggregation */ | ||
1910 | u8 bt_kill_count; /* # blocked by bluetooth (unused for agg) */ | ||
1911 | u8 failure_rts; /* # failures due to unsuccessful RTS */ | ||
1912 | u8 failure_frame; /* # failures due to no ACK (unused for agg) */ | ||
1913 | |||
1914 | /* For non-agg: Rate at which frame was successful. | ||
1915 | * For agg: Rate at which all frames were transmitted. */ | ||
1916 | __le32 rate_n_flags; /* RATE_MCS_* */ | ||
1917 | |||
1918 | /* For non-agg: RTS + CTS + frame tx attempts time + ACK. | ||
1919 | * For agg: RTS + CTS + aggregation tx time + block-ack time. */ | ||
1920 | __le16 wireless_media_time; /* uSecs */ | ||
1921 | |||
1922 | __le16 reserved; | ||
1923 | __le32 pa_power1; /* RF power amplifier measurement (not used) */ | ||
1924 | __le32 pa_power2; | ||
1925 | |||
1926 | /* | ||
1927 | * For non-agg: frame status TX_STATUS_* | ||
1928 | * For agg: status of 1st frame, AGG_TX_STATE_*; other frame status | ||
1929 | * fields follow this one, up to frame_count. | ||
1930 | * Bit fields: | ||
1931 | * 11- 0: AGG_TX_STATE_* status code | ||
1932 | * 15-12: Retry count for 1st frame in aggregation (retries | ||
1933 | * occur if tx failed for this frame when it was a | ||
1934 | * member of a previous aggregation block). If rate | ||
1935 | * scaling is used, retry count indicates the rate | ||
1936 | * table entry used for all frames in the new agg. | ||
1937 | * 31-16: Sequence # for this frame's Tx cmd (not SSN!) | ||
1938 | */ | ||
1939 | union { | ||
1940 | __le32 status; | ||
1941 | struct agg_tx_status agg_status[0]; /* for each agg frame */ | ||
1942 | } u; | ||
1943 | } __packed; | ||
1944 | |||
1945 | /* | 1458 | /* |
1946 | * definitions for initial rate index field | 1459 | * definitions for initial rate index field |
1947 | * bits [3:0] initial rate index | 1460 | * bits [3:0] initial rate index |
@@ -2030,51 +1543,7 @@ struct iwl_compressed_ba_resp { | |||
2030 | /* | 1543 | /* |
2031 | * REPLY_TX_PWR_TABLE_CMD = 0x97 (command, has simple generic response) | 1544 | * REPLY_TX_PWR_TABLE_CMD = 0x97 (command, has simple generic response) |
2032 | * | 1545 | * |
2033 | * See details under "TXPOWER" in iwl-4965-hw.h. | ||
2034 | */ | ||
2035 | |||
2036 | struct iwl3945_txpowertable_cmd { | ||
2037 | u8 band; /* 0: 5 GHz, 1: 2.4 GHz */ | ||
2038 | u8 reserved; | ||
2039 | __le16 channel; | ||
2040 | struct iwl3945_power_per_rate power[IWL_MAX_RATES]; | ||
2041 | } __packed; | ||
2042 | |||
2043 | struct iwl4965_txpowertable_cmd { | ||
2044 | u8 band; /* 0: 5 GHz, 1: 2.4 GHz */ | ||
2045 | u8 reserved; | ||
2046 | __le16 channel; | ||
2047 | struct iwl4965_tx_power_db tx_power; | ||
2048 | } __packed; | ||
2049 | |||
2050 | |||
2051 | /** | ||
2052 | * struct iwl3945_rate_scaling_cmd - Rate Scaling Command & Response | ||
2053 | * | ||
2054 | * REPLY_RATE_SCALE = 0x47 (command, has simple generic response) | ||
2055 | * | ||
2056 | * NOTE: The table of rates passed to the uCode via the | ||
2057 | * RATE_SCALE command sets up the corresponding order of | ||
2058 | * rates used for all related commands, including rate | ||
2059 | * masks, etc. | ||
2060 | * | ||
2061 | * For example, if you set 9MB (PLCP 0x0f) as the first | ||
2062 | * rate in the rate table, the bit mask for that rate | ||
2063 | * when passed through ofdm_basic_rates on the REPLY_RXON | ||
2064 | * command would be bit 0 (1 << 0) | ||
2065 | */ | 1546 | */ |
2066 | struct iwl3945_rate_scaling_info { | ||
2067 | __le16 rate_n_flags; | ||
2068 | u8 try_cnt; | ||
2069 | u8 next_rate_index; | ||
2070 | } __packed; | ||
2071 | |||
2072 | struct iwl3945_rate_scaling_cmd { | ||
2073 | u8 table_id; | ||
2074 | u8 reserved[3]; | ||
2075 | struct iwl3945_rate_scaling_info table[IWL_MAX_RATES]; | ||
2076 | } __packed; | ||
2077 | |||
2078 | 1547 | ||
2079 | /*RS_NEW_API: only TLC_RTS remains and moved to bit 0 */ | 1548 | /*RS_NEW_API: only TLC_RTS remains and moved to bit 0 */ |
2080 | #define LINK_QUAL_FLAGS_SET_STA_TLC_RTS_MSK (1 << 0) | 1549 | #define LINK_QUAL_FLAGS_SET_STA_TLC_RTS_MSK (1 << 0) |
@@ -2130,7 +1599,7 @@ struct iwl_link_qual_general_params { | |||
2130 | #define LINK_QUAL_AGG_DISABLE_START_MAX (255) | 1599 | #define LINK_QUAL_AGG_DISABLE_START_MAX (255) |
2131 | #define LINK_QUAL_AGG_DISABLE_START_MIN (0) | 1600 | #define LINK_QUAL_AGG_DISABLE_START_MIN (0) |
2132 | 1601 | ||
2133 | #define LINK_QUAL_AGG_FRAME_LIMIT_DEF (31) | 1602 | #define LINK_QUAL_AGG_FRAME_LIMIT_DEF (63) |
2134 | #define LINK_QUAL_AGG_FRAME_LIMIT_MAX (63) | 1603 | #define LINK_QUAL_AGG_FRAME_LIMIT_MAX (63) |
2135 | #define LINK_QUAL_AGG_FRAME_LIMIT_MIN (0) | 1604 | #define LINK_QUAL_AGG_FRAME_LIMIT_MIN (0) |
2136 | 1605 | ||
@@ -2696,14 +2165,6 @@ struct iwl_spectrum_notification { | |||
2696 | #define IWL_POWER_BT_SCO_ENA cpu_to_le16(BIT(8)) | 2165 | #define IWL_POWER_BT_SCO_ENA cpu_to_le16(BIT(8)) |
2697 | #define IWL_POWER_ADVANCE_PM_ENA_MSK cpu_to_le16(BIT(9)) | 2166 | #define IWL_POWER_ADVANCE_PM_ENA_MSK cpu_to_le16(BIT(9)) |
2698 | 2167 | ||
2699 | struct iwl3945_powertable_cmd { | ||
2700 | __le16 flags; | ||
2701 | u8 reserved[2]; | ||
2702 | __le32 rx_data_timeout; | ||
2703 | __le32 tx_data_timeout; | ||
2704 | __le32 sleep_interval[IWL_POWER_VEC_SIZE]; | ||
2705 | } __packed; | ||
2706 | |||
2707 | struct iwl_powertable_cmd { | 2168 | struct iwl_powertable_cmd { |
2708 | __le16 flags; | 2169 | __le16 flags; |
2709 | u8 keep_alive_seconds; /* 3945 reserved */ | 2170 | u8 keep_alive_seconds; /* 3945 reserved */ |
@@ -2806,25 +2267,6 @@ struct iwl_ct_kill_throttling_config { | |||
2806 | * active_dwell < max_out_time | 2267 | * active_dwell < max_out_time |
2807 | */ | 2268 | */ |
2808 | 2269 | ||
2809 | /* FIXME: rename to AP1, remove tpc */ | ||
2810 | struct iwl3945_scan_channel { | ||
2811 | /* | ||
2812 | * type is defined as: | ||
2813 | * 0:0 1 = active, 0 = passive | ||
2814 | * 1:4 SSID direct bit map; if a bit is set, then corresponding | ||
2815 | * SSID IE is transmitted in probe request. | ||
2816 | * 5:7 reserved | ||
2817 | */ | ||
2818 | u8 type; | ||
2819 | u8 channel; /* band is selected by iwl3945_scan_cmd "flags" field */ | ||
2820 | struct iwl3945_tx_power tpc; | ||
2821 | __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */ | ||
2822 | __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */ | ||
2823 | } __packed; | ||
2824 | |||
2825 | /* set number of direct probes u8 type */ | ||
2826 | #define IWL39_SCAN_PROBE_MASK(n) ((BIT(n) | (BIT(n) - BIT(1)))) | ||
2827 | |||
2828 | struct iwl_scan_channel { | 2270 | struct iwl_scan_channel { |
2829 | /* | 2271 | /* |
2830 | * type is defined as: | 2272 | * type is defined as: |
@@ -2920,50 +2362,6 @@ struct iwl_ssid_ie { | |||
2920 | * struct iwl_scan_channel. | 2362 | * struct iwl_scan_channel. |
2921 | */ | 2363 | */ |
2922 | 2364 | ||
2923 | struct iwl3945_scan_cmd { | ||
2924 | __le16 len; | ||
2925 | u8 reserved0; | ||
2926 | u8 channel_count; /* # channels in channel list */ | ||
2927 | __le16 quiet_time; /* dwell only this # millisecs on quiet channel | ||
2928 | * (only for active scan) */ | ||
2929 | __le16 quiet_plcp_th; /* quiet chnl is < this # pkts (typ. 1) */ | ||
2930 | __le16 good_CRC_th; /* passive -> active promotion threshold */ | ||
2931 | __le16 reserved1; | ||
2932 | __le32 max_out_time; /* max usec to be away from associated (service) | ||
2933 | * channel */ | ||
2934 | __le32 suspend_time; /* pause scan this long (in "extended beacon | ||
2935 | * format") when returning to service channel: | ||
2936 | * 3945; 31:24 # beacons, 19:0 additional usec, | ||
2937 | * 4965; 31:22 # beacons, 21:0 additional usec. | ||
2938 | */ | ||
2939 | __le32 flags; /* RXON_FLG_* */ | ||
2940 | __le32 filter_flags; /* RXON_FILTER_* */ | ||
2941 | |||
2942 | /* For active scans (set to all-0s for passive scans). | ||
2943 | * Does not include payload. Must specify Tx rate; no rate scaling. */ | ||
2944 | struct iwl3945_tx_cmd tx_cmd; | ||
2945 | |||
2946 | /* For directed active scans (set to all-0s otherwise) */ | ||
2947 | struct iwl_ssid_ie direct_scan[PROBE_OPTION_MAX_3945]; | ||
2948 | |||
2949 | /* | ||
2950 | * Probe request frame, followed by channel list. | ||
2951 | * | ||
2952 | * Size of probe request frame is specified by byte count in tx_cmd. | ||
2953 | * Channel list follows immediately after probe request frame. | ||
2954 | * Number of channels in list is specified by channel_count. | ||
2955 | * Each channel in list is of type: | ||
2956 | * | ||
2957 | * struct iwl3945_scan_channel channels[0]; | ||
2958 | * | ||
2959 | * NOTE: Only one band of channels can be scanned per pass. You | ||
2960 | * must not mix 2.4GHz channels and 5.2GHz channels, and you must wait | ||
2961 | * for one scan to complete (i.e. receive SCAN_COMPLETE_NOTIFICATION) | ||
2962 | * before requesting another scan. | ||
2963 | */ | ||
2964 | u8 data[0]; | ||
2965 | } __packed; | ||
2966 | |||
2967 | enum iwl_scan_flags { | 2365 | enum iwl_scan_flags { |
2968 | /* BIT(0) currently unused */ | 2366 | /* BIT(0) currently unused */ |
2969 | IWL_SCAN_FLAGS_ACTION_FRAME_TX = BIT(1), | 2367 | IWL_SCAN_FLAGS_ACTION_FRAME_TX = BIT(1), |
@@ -3090,20 +2488,6 @@ enum iwl_ibss_manager { | |||
3090 | * BEACON_NOTIFICATION = 0x90 (notification only, not a command) | 2488 | * BEACON_NOTIFICATION = 0x90 (notification only, not a command) |
3091 | */ | 2489 | */ |
3092 | 2490 | ||
3093 | struct iwl3945_beacon_notif { | ||
3094 | struct iwl3945_tx_resp beacon_notify_hdr; | ||
3095 | __le32 low_tsf; | ||
3096 | __le32 high_tsf; | ||
3097 | __le32 ibss_mgr_status; | ||
3098 | } __packed; | ||
3099 | |||
3100 | struct iwl4965_beacon_notif { | ||
3101 | struct iwl4965_tx_resp beacon_notify_hdr; | ||
3102 | __le32 low_tsf; | ||
3103 | __le32 high_tsf; | ||
3104 | __le32 ibss_mgr_status; | ||
3105 | } __packed; | ||
3106 | |||
3107 | struct iwlagn_beacon_notif { | 2491 | struct iwlagn_beacon_notif { |
3108 | struct iwlagn_tx_resp beacon_notify_hdr; | 2492 | struct iwlagn_tx_resp beacon_notify_hdr; |
3109 | __le32 low_tsf; | 2493 | __le32 low_tsf; |
@@ -3115,14 +2499,6 @@ struct iwlagn_beacon_notif { | |||
3115 | * REPLY_TX_BEACON = 0x91 (command, has simple generic response) | 2499 | * REPLY_TX_BEACON = 0x91 (command, has simple generic response) |
3116 | */ | 2500 | */ |
3117 | 2501 | ||
3118 | struct iwl3945_tx_beacon_cmd { | ||
3119 | struct iwl3945_tx_cmd tx; | ||
3120 | __le16 tim_idx; | ||
3121 | u8 tim_size; | ||
3122 | u8 reserved1; | ||
3123 | struct ieee80211_hdr frame[0]; /* beacon frame */ | ||
3124 | } __packed; | ||
3125 | |||
3126 | struct iwl_tx_beacon_cmd { | 2502 | struct iwl_tx_beacon_cmd { |
3127 | struct iwl_tx_cmd tx; | 2503 | struct iwl_tx_cmd tx; |
3128 | __le16 tim_idx; | 2504 | __le16 tim_idx; |
@@ -3471,13 +2847,6 @@ struct iwl_statistics_cmd { | |||
3471 | #define STATISTICS_REPLY_FLG_BAND_24G_MSK cpu_to_le32(0x2) | 2847 | #define STATISTICS_REPLY_FLG_BAND_24G_MSK cpu_to_le32(0x2) |
3472 | #define STATISTICS_REPLY_FLG_HT40_MODE_MSK cpu_to_le32(0x8) | 2848 | #define STATISTICS_REPLY_FLG_HT40_MODE_MSK cpu_to_le32(0x8) |
3473 | 2849 | ||
3474 | struct iwl3945_notif_statistics { | ||
3475 | __le32 flag; | ||
3476 | struct iwl39_statistics_rx rx; | ||
3477 | struct iwl39_statistics_tx tx; | ||
3478 | struct iwl39_statistics_general general; | ||
3479 | } __packed; | ||
3480 | |||
3481 | struct iwl_notif_statistics { | 2850 | struct iwl_notif_statistics { |
3482 | __le32 flag; | 2851 | __le32 flag; |
3483 | struct statistics_rx rx; | 2852 | struct statistics_rx rx; |
@@ -4451,10 +3820,6 @@ struct iwl_rx_packet { | |||
4451 | __le32 len_n_flags; | 3820 | __le32 len_n_flags; |
4452 | struct iwl_cmd_header hdr; | 3821 | struct iwl_cmd_header hdr; |
4453 | union { | 3822 | union { |
4454 | struct iwl3945_rx_frame rx_frame; | ||
4455 | struct iwl3945_tx_resp tx_resp; | ||
4456 | struct iwl3945_beacon_notif beacon_status; | ||
4457 | |||
4458 | struct iwl_alive_resp alive_frame; | 3823 | struct iwl_alive_resp alive_frame; |
4459 | struct iwl_spectrum_notification spectrum_notif; | 3824 | struct iwl_spectrum_notification spectrum_notif; |
4460 | struct iwl_csa_notification csa_notif; | 3825 | struct iwl_csa_notification csa_notif; |