aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2010-07-27 11:59:19 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-07-27 11:59:19 -0400
commit800f65bba8d2030b3fef62850e203f9f176625a8 (patch)
tree6507c4fe7a0826c253b4afb29375ab306a0fd9c8 /drivers/net/wireless/iwlwifi
parent06b3cda0c12986f5bba578b918b188d731c4e191 (diff)
parentb3190df628617c7a4f188a9465aeabe1f5761933 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-commands.h
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-fh.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-hw.h10
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-hw.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-hw.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h244
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h12
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fh.h6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-spectrum.h10
9 files changed, 149 insertions, 149 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-fh.h b/drivers/net/wireless/iwlwifi/iwl-3945-fh.h
index 042f6bc0df13..2c9ed2b502a3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-fh.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-fh.h
@@ -175,13 +175,13 @@
175struct iwl3945_tfd_tb { 175struct iwl3945_tfd_tb {
176 __le32 addr; 176 __le32 addr;
177 __le32 len; 177 __le32 len;
178} __attribute__ ((packed)); 178} __packed;
179 179
180struct iwl3945_tfd { 180struct iwl3945_tfd {
181 __le32 control_flags; 181 __le32 control_flags;
182 struct iwl3945_tfd_tb tbs[4]; 182 struct iwl3945_tfd_tb tbs[4];
183 u8 __pad[28]; 183 u8 __pad[28];
184} __attribute__ ((packed)); 184} __packed;
185 185
186 186
187#endif /* __iwl_3945_fh_h__ */ 187#endif /* __iwl_3945_fh_h__ */
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
index 91bcb4e3cdfb..7c731a793632 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
@@ -96,7 +96,7 @@ struct iwl3945_eeprom_txpower_sample {
96 u8 gain_index; /* index into power (gain) setup table ... */ 96 u8 gain_index; /* index into power (gain) setup table ... */
97 s8 power; /* ... for this pwr level for this chnl group */ 97 s8 power; /* ... for this pwr level for this chnl group */
98 u16 v_det; /* PA output voltage */ 98 u16 v_det; /* PA output voltage */
99} __attribute__ ((packed)); 99} __packed;
100 100
101/* 101/*
102 * Mappings of Tx power levels -> nominal radio/DSP gain table indexes. 102 * Mappings of Tx power levels -> nominal radio/DSP gain table indexes.
@@ -117,7 +117,7 @@ struct iwl3945_eeprom_txpower_group {
117 u8 group_channel; /* "representative" channel # in this band */ 117 u8 group_channel; /* "representative" channel # in this band */
118 s16 temperature; /* h/w temperature at factory calib this band 118 s16 temperature; /* h/w temperature at factory calib this band
119 * (signed) */ 119 * (signed) */
120} __attribute__ ((packed)); 120} __packed;
121 121
122/* 122/*
123 * Temperature-based Tx-power compensation data, not band-specific. 123 * Temperature-based Tx-power compensation data, not band-specific.
@@ -131,7 +131,7 @@ struct iwl3945_eeprom_temperature_corr {
131 u32 Tc; 131 u32 Tc;
132 u32 Td; 132 u32 Td;
133 u32 Te; 133 u32 Te;
134} __attribute__ ((packed)); 134} __packed;
135 135
136/* 136/*
137 * EEPROM map 137 * EEPROM map
@@ -215,7 +215,7 @@ struct iwl3945_eeprom {
215/* abs.ofs: 512 */ 215/* abs.ofs: 512 */
216 struct iwl3945_eeprom_temperature_corr corrections; /* abs.ofs: 832 */ 216 struct iwl3945_eeprom_temperature_corr corrections; /* abs.ofs: 832 */
217 u8 reserved16[172]; /* fill out to full 1024 byte block */ 217 u8 reserved16[172]; /* fill out to full 1024 byte block */
218} __attribute__ ((packed)); 218} __packed;
219 219
220#define IWL3945_EEPROM_IMG_SIZE 1024 220#define IWL3945_EEPROM_IMG_SIZE 1024
221 221
@@ -274,7 +274,7 @@ static inline int iwl3945_hw_valid_rtc_data_addr(u32 addr)
274 * and &iwl3945_shared.rx_read_ptr[0] is provided to FH_RCSR_RPTR_ADDR(0) */ 274 * and &iwl3945_shared.rx_read_ptr[0] is provided to FH_RCSR_RPTR_ADDR(0) */
275struct iwl3945_shared { 275struct iwl3945_shared {
276 __le32 tx_base_ptr[8]; 276 __le32 tx_base_ptr[8];
277} __attribute__ ((packed)); 277} __packed;
278 278
279static inline u8 iwl3945_hw_get_rate(__le16 rate_n_flags) 279static inline u8 iwl3945_hw_get_rate(__le16 rate_n_flags)
280{ 280{
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
index cd4b61ae25b7..9166794eda0d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
@@ -787,6 +787,6 @@ enum {
787struct iwl4965_scd_bc_tbl { 787struct iwl4965_scd_bc_tbl {
788 __le16 tfd_offset[TFD_QUEUE_BC_SIZE]; 788 __le16 tfd_offset[TFD_QUEUE_BC_SIZE];
789 u8 pad[1024 - (TFD_QUEUE_BC_SIZE) * sizeof(__le16)]; 789 u8 pad[1024 - (TFD_QUEUE_BC_SIZE) * sizeof(__le16)];
790} __attribute__ ((packed)); 790} __packed;
791 791
792#endif /* !__iwl_4965_hw_h__ */ 792#endif /* !__iwl_4965_hw_h__ */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hw.h b/drivers/net/wireless/iwlwifi/iwl-agn-hw.h
index f9a3fbb6338f..a52b82c8e7a6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-hw.h
@@ -112,7 +112,7 @@
112 */ 112 */
113struct iwlagn_scd_bc_tbl { 113struct iwlagn_scd_bc_tbl {
114 __le16 tfd_offset[TFD_QUEUE_BC_SIZE]; 114 __le16 tfd_offset[TFD_QUEUE_BC_SIZE];
115} __attribute__ ((packed)); 115} __packed;
116 116
117 117
118#endif /* __iwl_agn_hw_h__ */ 118#endif /* __iwl_agn_hw_h__ */
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 9c44ab504dfe..60725a5c1b69 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -228,7 +228,7 @@ struct iwl_cmd_header {
228 228
229 /* command or response/notification data follows immediately */ 229 /* command or response/notification data follows immediately */
230 u8 data[0]; 230 u8 data[0];
231} __attribute__ ((packed)); 231} __packed;
232 232
233 233
234/** 234/**
@@ -248,7 +248,7 @@ struct iwl_cmd_header {
248struct iwl3945_tx_power { 248struct iwl3945_tx_power {
249 u8 tx_gain; /* gain for analog radio */ 249 u8 tx_gain; /* gain for analog radio */
250 u8 dsp_atten; /* gain for DSP */ 250 u8 dsp_atten; /* gain for DSP */
251} __attribute__ ((packed)); 251} __packed;
252 252
253/** 253/**
254 * struct iwl3945_power_per_rate 254 * struct iwl3945_power_per_rate
@@ -259,7 +259,7 @@ struct iwl3945_power_per_rate {
259 u8 rate; /* plcp */ 259 u8 rate; /* plcp */
260 struct iwl3945_tx_power tpc; 260 struct iwl3945_tx_power tpc;
261 u8 reserved; 261 u8 reserved;
262} __attribute__ ((packed)); 262} __packed;
263 263
264/** 264/**
265 * iwlagn rate_n_flags bit fields 265 * iwlagn rate_n_flags bit fields
@@ -390,7 +390,7 @@ union iwl4965_tx_power_dual_stream {
390 */ 390 */
391struct tx_power_dual_stream { 391struct tx_power_dual_stream {
392 __le32 dw; 392 __le32 dw;
393} __attribute__ ((packed)); 393} __packed;
394 394
395/** 395/**
396 * struct iwl4965_tx_power_db 396 * struct iwl4965_tx_power_db
@@ -399,7 +399,7 @@ struct tx_power_dual_stream {
399 */ 399 */
400struct iwl4965_tx_power_db { 400struct iwl4965_tx_power_db {
401 struct tx_power_dual_stream power_tbl[POWER_TABLE_NUM_ENTRIES]; 401 struct tx_power_dual_stream power_tbl[POWER_TABLE_NUM_ENTRIES];
402} __attribute__ ((packed)); 402} __packed;
403 403
404/** 404/**
405 * Command REPLY_TX_POWER_DBM_CMD = 0x98 405 * Command REPLY_TX_POWER_DBM_CMD = 0x98
@@ -413,7 +413,7 @@ struct iwl5000_tx_power_dbm_cmd {
413 u8 flags; 413 u8 flags;
414 s8 srv_chan_lmt; /*in half-dBm (e.g. 30 = 15 dBm) */ 414 s8 srv_chan_lmt; /*in half-dBm (e.g. 30 = 15 dBm) */
415 u8 reserved; 415 u8 reserved;
416} __attribute__ ((packed)); 416} __packed;
417 417
418/** 418/**
419 * Command TX_ANT_CONFIGURATION_CMD = 0x98 419 * Command TX_ANT_CONFIGURATION_CMD = 0x98
@@ -423,7 +423,7 @@ struct iwl5000_tx_power_dbm_cmd {
423 */ 423 */
424struct iwl_tx_ant_config_cmd { 424struct iwl_tx_ant_config_cmd {
425 __le32 valid; 425 __le32 valid;
426} __attribute__ ((packed)); 426} __packed;
427 427
428/****************************************************************************** 428/******************************************************************************
429 * (0a) 429 * (0a)
@@ -479,7 +479,7 @@ struct iwl_init_alive_resp {
479 __le32 therm_r4[2]; /* signed */ 479 __le32 therm_r4[2]; /* signed */
480 __le32 tx_atten[5][2]; /* signed MIMO gain comp, 5 freq groups, 480 __le32 tx_atten[5][2]; /* signed MIMO gain comp, 5 freq groups,
481 * 2 Tx chains */ 481 * 2 Tx chains */
482} __attribute__ ((packed)); 482} __packed;
483 483
484 484
485/** 485/**
@@ -571,7 +571,7 @@ struct iwl_alive_resp {
571 __le32 error_event_table_ptr; /* SRAM address for error log */ 571 __le32 error_event_table_ptr; /* SRAM address for error log */
572 __le32 timestamp; 572 __le32 timestamp;
573 __le32 is_valid; 573 __le32 is_valid;
574} __attribute__ ((packed)); 574} __packed;
575 575
576/* 576/*
577 * REPLY_ERROR = 0x2 (response only, not a command) 577 * REPLY_ERROR = 0x2 (response only, not a command)
@@ -583,7 +583,7 @@ struct iwl_error_resp {
583 __le16 bad_cmd_seq_num; 583 __le16 bad_cmd_seq_num;
584 __le32 error_info; 584 __le32 error_info;
585 __le64 timestamp; 585 __le64 timestamp;
586} __attribute__ ((packed)); 586} __packed;
587 587
588/****************************************************************************** 588/******************************************************************************
589 * (1) 589 * (1)
@@ -719,7 +719,7 @@ struct iwl3945_rxon_cmd {
719 __le32 filter_flags; 719 __le32 filter_flags;
720 __le16 channel; 720 __le16 channel;
721 __le16 reserved5; 721 __le16 reserved5;
722} __attribute__ ((packed)); 722} __packed;
723 723
724struct iwl4965_rxon_cmd { 724struct iwl4965_rxon_cmd {
725 u8 node_addr[6]; 725 u8 node_addr[6];
@@ -739,7 +739,7 @@ struct iwl4965_rxon_cmd {
739 __le16 channel; 739 __le16 channel;
740 u8 ofdm_ht_single_stream_basic_rates; 740 u8 ofdm_ht_single_stream_basic_rates;
741 u8 ofdm_ht_dual_stream_basic_rates; 741 u8 ofdm_ht_dual_stream_basic_rates;
742} __attribute__ ((packed)); 742} __packed;
743 743
744/* 5000 HW just extend this command */ 744/* 5000 HW just extend this command */
745struct iwl_rxon_cmd { 745struct iwl_rxon_cmd {
@@ -764,7 +764,7 @@ struct iwl_rxon_cmd {
764 u8 reserved5; 764 u8 reserved5;
765 __le16 acquisition_data; 765 __le16 acquisition_data;
766 __le16 reserved6; 766 __le16 reserved6;
767} __attribute__ ((packed)); 767} __packed;
768 768
769/* 769/*
770 * REPLY_RXON_ASSOC = 0x11 (command, has simple generic response) 770 * REPLY_RXON_ASSOC = 0x11 (command, has simple generic response)
@@ -775,7 +775,7 @@ struct iwl3945_rxon_assoc_cmd {
775 u8 ofdm_basic_rates; 775 u8 ofdm_basic_rates;
776 u8 cck_basic_rates; 776 u8 cck_basic_rates;
777 __le16 reserved; 777 __le16 reserved;
778} __attribute__ ((packed)); 778} __packed;
779 779
780struct iwl4965_rxon_assoc_cmd { 780struct iwl4965_rxon_assoc_cmd {
781 __le32 flags; 781 __le32 flags;
@@ -786,7 +786,7 @@ struct iwl4965_rxon_assoc_cmd {
786 u8 ofdm_ht_dual_stream_basic_rates; 786 u8 ofdm_ht_dual_stream_basic_rates;
787 __le16 rx_chain_select_flags; 787 __le16 rx_chain_select_flags;
788 __le16 reserved; 788 __le16 reserved;
789} __attribute__ ((packed)); 789} __packed;
790 790
791struct iwl5000_rxon_assoc_cmd { 791struct iwl5000_rxon_assoc_cmd {
792 __le32 flags; 792 __le32 flags;
@@ -801,7 +801,7 @@ struct iwl5000_rxon_assoc_cmd {
801 __le16 rx_chain_select_flags; 801 __le16 rx_chain_select_flags;
802 __le16 acquisition_data; 802 __le16 acquisition_data;
803 __le32 reserved3; 803 __le32 reserved3;
804} __attribute__ ((packed)); 804} __packed;
805 805
806#define IWL_CONN_MAX_LISTEN_INTERVAL 10 806#define IWL_CONN_MAX_LISTEN_INTERVAL 10
807#define IWL_MAX_UCODE_BEACON_INTERVAL 4 /* 4096 */ 807#define IWL_MAX_UCODE_BEACON_INTERVAL 4 /* 4096 */
@@ -817,7 +817,7 @@ struct iwl_rxon_time_cmd {
817 __le32 beacon_init_val; 817 __le32 beacon_init_val;
818 __le16 listen_interval; 818 __le16 listen_interval;
819 __le16 reserved; 819 __le16 reserved;
820} __attribute__ ((packed)); 820} __packed;
821 821
822/* 822/*
823 * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response) 823 * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response)
@@ -830,7 +830,7 @@ struct iwl3945_channel_switch_cmd {
830 __le32 rxon_filter_flags; 830 __le32 rxon_filter_flags;
831 __le32 switch_time; 831 __le32 switch_time;
832 struct iwl3945_power_per_rate power[IWL_MAX_RATES]; 832 struct iwl3945_power_per_rate power[IWL_MAX_RATES];
833} __attribute__ ((packed)); 833} __packed;
834 834
835struct iwl4965_channel_switch_cmd { 835struct iwl4965_channel_switch_cmd {
836 u8 band; 836 u8 band;
@@ -840,7 +840,7 @@ struct iwl4965_channel_switch_cmd {
840 __le32 rxon_filter_flags; 840 __le32 rxon_filter_flags;
841 __le32 switch_time; 841 __le32 switch_time;
842 struct iwl4965_tx_power_db tx_power; 842 struct iwl4965_tx_power_db tx_power;
843} __attribute__ ((packed)); 843} __packed;
844 844
845/** 845/**
846 * struct iwl5000_channel_switch_cmd 846 * struct iwl5000_channel_switch_cmd
@@ -861,7 +861,7 @@ struct iwl5000_channel_switch_cmd {
861 __le32 rxon_filter_flags; 861 __le32 rxon_filter_flags;
862 __le32 switch_time; 862 __le32 switch_time;
863 __le32 reserved[2][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES]; 863 __le32 reserved[2][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
864} __attribute__ ((packed)); 864} __packed;
865 865
866/** 866/**
867 * struct iwl6000_channel_switch_cmd 867 * struct iwl6000_channel_switch_cmd
@@ -882,7 +882,7 @@ struct iwl6000_channel_switch_cmd {
882 __le32 rxon_filter_flags; 882 __le32 rxon_filter_flags;
883 __le32 switch_time; 883 __le32 switch_time;
884 __le32 reserved[3][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES]; 884 __le32 reserved[3][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
885} __attribute__ ((packed)); 885} __packed;
886 886
887/* 887/*
888 * CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command) 888 * CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command)
@@ -891,7 +891,7 @@ struct iwl_csa_notification {
891 __le16 band; 891 __le16 band;
892 __le16 channel; 892 __le16 channel;
893 __le32 status; /* 0 - OK, 1 - fail */ 893 __le32 status; /* 0 - OK, 1 - fail */
894} __attribute__ ((packed)); 894} __packed;
895 895
896/****************************************************************************** 896/******************************************************************************
897 * (2) 897 * (2)
@@ -921,7 +921,7 @@ struct iwl_ac_qos {
921 u8 aifsn; 921 u8 aifsn;
922 u8 reserved1; 922 u8 reserved1;
923 __le16 edca_txop; 923 __le16 edca_txop;
924} __attribute__ ((packed)); 924} __packed;
925 925
926/* QoS flags defines */ 926/* QoS flags defines */
927#define QOS_PARAM_FLG_UPDATE_EDCA_MSK cpu_to_le32(0x01) 927#define QOS_PARAM_FLG_UPDATE_EDCA_MSK cpu_to_le32(0x01)
@@ -940,7 +940,7 @@ struct iwl_ac_qos {
940struct iwl_qosparam_cmd { 940struct iwl_qosparam_cmd {
941 __le32 qos_flags; 941 __le32 qos_flags;
942 struct iwl_ac_qos ac[AC_NUM]; 942 struct iwl_ac_qos ac[AC_NUM];
943} __attribute__ ((packed)); 943} __packed;
944 944
945/****************************************************************************** 945/******************************************************************************
946 * (3) 946 * (3)
@@ -1015,7 +1015,7 @@ struct iwl4965_keyinfo {
1015 u8 key_offset; 1015 u8 key_offset;
1016 u8 reserved2; 1016 u8 reserved2;
1017 u8 key[16]; /* 16-byte unicast decryption key */ 1017 u8 key[16]; /* 16-byte unicast decryption key */
1018} __attribute__ ((packed)); 1018} __packed;
1019 1019
1020/* 5000 */ 1020/* 5000 */
1021struct iwl_keyinfo { 1021struct iwl_keyinfo {
@@ -1029,7 +1029,7 @@ struct iwl_keyinfo {
1029 __le64 tx_secur_seq_cnt; 1029 __le64 tx_secur_seq_cnt;
1030 __le64 hw_tkip_mic_rx_key; 1030 __le64 hw_tkip_mic_rx_key;
1031 __le64 hw_tkip_mic_tx_key; 1031 __le64 hw_tkip_mic_tx_key;
1032} __attribute__ ((packed)); 1032} __packed;
1033 1033
1034/** 1034/**
1035 * struct sta_id_modify 1035 * struct sta_id_modify
@@ -1049,7 +1049,7 @@ struct sta_id_modify {
1049 u8 sta_id; 1049 u8 sta_id;
1050 u8 modify_mask; 1050 u8 modify_mask;
1051 __le16 reserved2; 1051 __le16 reserved2;
1052} __attribute__ ((packed)); 1052} __packed;
1053 1053
1054/* 1054/*
1055 * REPLY_ADD_STA = 0x18 (command) 1055 * REPLY_ADD_STA = 0x18 (command)
@@ -1103,7 +1103,7 @@ struct iwl3945_addsta_cmd {
1103 /* Starting Sequence Number for added block-ack support. 1103 /* Starting Sequence Number for added block-ack support.
1104 * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */ 1104 * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */
1105 __le16 add_immediate_ba_ssn; 1105 __le16 add_immediate_ba_ssn;
1106} __attribute__ ((packed)); 1106} __packed;
1107 1107
1108struct iwl4965_addsta_cmd { 1108struct iwl4965_addsta_cmd {
1109 u8 mode; /* 1: modify existing, 0: add new station */ 1109 u8 mode; /* 1: modify existing, 0: add new station */
@@ -1140,7 +1140,7 @@ struct iwl4965_addsta_cmd {
1140 __le16 sleep_tx_count; 1140 __le16 sleep_tx_count;
1141 1141
1142 __le16 reserved2; 1142 __le16 reserved2;
1143} __attribute__ ((packed)); 1143} __packed;
1144 1144
1145/* 5000 */ 1145/* 5000 */
1146struct iwl_addsta_cmd { 1146struct iwl_addsta_cmd {
@@ -1178,7 +1178,7 @@ struct iwl_addsta_cmd {
1178 __le16 sleep_tx_count; 1178 __le16 sleep_tx_count;
1179 1179
1180 __le16 reserved2; 1180 __le16 reserved2;
1181} __attribute__ ((packed)); 1181} __packed;
1182 1182
1183 1183
1184#define ADD_STA_SUCCESS_MSK 0x1 1184#define ADD_STA_SUCCESS_MSK 0x1
@@ -1190,7 +1190,7 @@ struct iwl_addsta_cmd {
1190 */ 1190 */
1191struct iwl_add_sta_resp { 1191struct iwl_add_sta_resp {
1192 u8 status; /* ADD_STA_* */ 1192 u8 status; /* ADD_STA_* */
1193} __attribute__ ((packed)); 1193} __packed;
1194 1194
1195#define REM_STA_SUCCESS_MSK 0x1 1195#define REM_STA_SUCCESS_MSK 0x1
1196/* 1196/*
@@ -1198,7 +1198,7 @@ struct iwl_add_sta_resp {
1198 */ 1198 */
1199struct iwl_rem_sta_resp { 1199struct iwl_rem_sta_resp {
1200 u8 status; 1200 u8 status;
1201} __attribute__ ((packed)); 1201} __packed;
1202 1202
1203/* 1203/*
1204 * REPLY_REM_STA = 0x19 (command) 1204 * REPLY_REM_STA = 0x19 (command)
@@ -1208,7 +1208,7 @@ struct iwl_rem_sta_cmd {
1208 u8 reserved[3]; 1208 u8 reserved[3];
1209 u8 addr[ETH_ALEN]; /* MAC addr of the first station */ 1209 u8 addr[ETH_ALEN]; /* MAC addr of the first station */
1210 u8 reserved2[2]; 1210 u8 reserved2[2];
1211} __attribute__ ((packed)); 1211} __packed;
1212 1212
1213#define IWL_TX_FIFO_BK_MSK cpu_to_le32(BIT(0)) 1213#define IWL_TX_FIFO_BK_MSK cpu_to_le32(BIT(0))
1214#define IWL_TX_FIFO_BE_MSK cpu_to_le32(BIT(1)) 1214#define IWL_TX_FIFO_BE_MSK cpu_to_le32(BIT(1))
@@ -1257,7 +1257,7 @@ struct iwl_wep_key {
1257 u8 key_size; 1257 u8 key_size;
1258 u8 reserved2[3]; 1258 u8 reserved2[3];
1259 u8 key[16]; 1259 u8 key[16];
1260} __attribute__ ((packed)); 1260} __packed;
1261 1261
1262struct iwl_wep_cmd { 1262struct iwl_wep_cmd {
1263 u8 num_keys; 1263 u8 num_keys;
@@ -1265,7 +1265,7 @@ struct iwl_wep_cmd {
1265 u8 flags; 1265 u8 flags;
1266 u8 reserved; 1266 u8 reserved;
1267 struct iwl_wep_key key[0]; 1267 struct iwl_wep_key key[0];
1268} __attribute__ ((packed)); 1268} __packed;
1269 1269
1270#define WEP_KEY_WEP_TYPE 1 1270#define WEP_KEY_WEP_TYPE 1
1271#define WEP_KEYS_MAX 4 1271#define WEP_KEYS_MAX 4
@@ -1319,7 +1319,7 @@ struct iwl3945_rx_frame_stats {
1319 __le16 sig_avg; 1319 __le16 sig_avg;
1320 __le16 noise_diff; 1320 __le16 noise_diff;
1321 u8 payload[0]; 1321 u8 payload[0];
1322} __attribute__ ((packed)); 1322} __packed;
1323 1323
1324struct iwl3945_rx_frame_hdr { 1324struct iwl3945_rx_frame_hdr {
1325 __le16 channel; 1325 __le16 channel;
@@ -1328,13 +1328,13 @@ struct iwl3945_rx_frame_hdr {
1328 u8 rate; 1328 u8 rate;
1329 __le16 len; 1329 __le16 len;
1330 u8 payload[0]; 1330 u8 payload[0];
1331} __attribute__ ((packed)); 1331} __packed;
1332 1332
1333struct iwl3945_rx_frame_end { 1333struct iwl3945_rx_frame_end {
1334 __le32 status; 1334 __le32 status;
1335 __le64 timestamp; 1335 __le64 timestamp;
1336 __le32 beacon_timestamp; 1336 __le32 beacon_timestamp;
1337} __attribute__ ((packed)); 1337} __packed;
1338 1338
1339/* 1339/*
1340 * REPLY_3945_RX = 0x1b (response only, not a command) 1340 * REPLY_3945_RX = 0x1b (response only, not a command)
@@ -1348,7 +1348,7 @@ struct iwl3945_rx_frame {
1348 struct iwl3945_rx_frame_stats stats; 1348 struct iwl3945_rx_frame_stats stats;
1349 struct iwl3945_rx_frame_hdr hdr; 1349 struct iwl3945_rx_frame_hdr hdr;
1350 struct iwl3945_rx_frame_end end; 1350 struct iwl3945_rx_frame_end end;
1351} __attribute__ ((packed)); 1351} __packed;
1352 1352
1353#define IWL39_RX_FRAME_SIZE (4 + sizeof(struct iwl3945_rx_frame)) 1353#define IWL39_RX_FRAME_SIZE (4 + sizeof(struct iwl3945_rx_frame))
1354 1354
@@ -1364,7 +1364,7 @@ struct iwl4965_rx_non_cfg_phy {
1364 __le16 agc_info; /* agc code 0:6, agc dB 7:13, reserved 14:15 */ 1364 __le16 agc_info; /* agc code 0:6, agc dB 7:13, reserved 14:15 */
1365 u8 rssi_info[6]; /* we use even entries, 0/2/4 for A/B/C rssi */ 1365 u8 rssi_info[6]; /* we use even entries, 0/2/4 for A/B/C rssi */
1366 u8 pad[0]; 1366 u8 pad[0];
1367} __attribute__ ((packed)); 1367} __packed;
1368 1368
1369 1369
1370#define IWL50_RX_RES_PHY_CNT 8 1370#define IWL50_RX_RES_PHY_CNT 8
@@ -1382,7 +1382,7 @@ struct iwl4965_rx_non_cfg_phy {
1382 1382
1383struct iwl5000_non_cfg_phy { 1383struct iwl5000_non_cfg_phy {
1384 __le32 non_cfg_phy[IWL50_RX_RES_PHY_CNT]; /* up to 8 phy entries */ 1384 __le32 non_cfg_phy[IWL50_RX_RES_PHY_CNT]; /* up to 8 phy entries */
1385} __attribute__ ((packed)); 1385} __packed;
1386 1386
1387 1387
1388/* 1388/*
@@ -1402,12 +1402,12 @@ struct iwl_rx_phy_res {
1402 __le32 rate_n_flags; /* RATE_MCS_* */ 1402 __le32 rate_n_flags; /* RATE_MCS_* */
1403 __le16 byte_count; /* frame's byte-count */ 1403 __le16 byte_count; /* frame's byte-count */
1404 __le16 reserved3; 1404 __le16 reserved3;
1405} __attribute__ ((packed)); 1405} __packed;
1406 1406
1407struct iwl_rx_mpdu_res_start { 1407struct iwl_rx_mpdu_res_start {
1408 __le16 byte_count; 1408 __le16 byte_count;
1409 __le16 reserved; 1409 __le16 reserved;
1410} __attribute__ ((packed)); 1410} __packed;
1411 1411
1412 1412
1413/****************************************************************************** 1413/******************************************************************************
@@ -1606,7 +1606,7 @@ struct iwl3945_tx_cmd {
1606 */ 1606 */
1607 u8 payload[0]; 1607 u8 payload[0];
1608 struct ieee80211_hdr hdr[0]; 1608 struct ieee80211_hdr hdr[0];
1609} __attribute__ ((packed)); 1609} __packed;
1610 1610
1611/* 1611/*
1612 * REPLY_TX = 0x1c (response) 1612 * REPLY_TX = 0x1c (response)
@@ -1618,7 +1618,7 @@ struct iwl3945_tx_resp {
1618 u8 rate; 1618 u8 rate;
1619 __le32 wireless_media_time; 1619 __le32 wireless_media_time;
1620 __le32 status; /* TX status */ 1620 __le32 status; /* TX status */
1621} __attribute__ ((packed)); 1621} __packed;
1622 1622
1623 1623
1624/* 1624/*
@@ -1630,7 +1630,7 @@ struct iwl_dram_scratch {
1630 u8 try_cnt; /* Tx attempts */ 1630 u8 try_cnt; /* Tx attempts */
1631 u8 bt_kill_cnt; /* Tx attempts blocked by Bluetooth device */ 1631 u8 bt_kill_cnt; /* Tx attempts blocked by Bluetooth device */
1632 __le16 reserved; 1632 __le16 reserved;
1633} __attribute__ ((packed)); 1633} __packed;
1634 1634
1635struct iwl_tx_cmd { 1635struct iwl_tx_cmd {
1636 /* 1636 /*
@@ -1709,7 +1709,7 @@ struct iwl_tx_cmd {
1709 */ 1709 */
1710 u8 payload[0]; 1710 u8 payload[0];
1711 struct ieee80211_hdr hdr[0]; 1711 struct ieee80211_hdr hdr[0];
1712} __attribute__ ((packed)); 1712} __packed;
1713 1713
1714/* TX command response is sent after *3945* transmission attempts. 1714/* TX command response is sent after *3945* transmission attempts.
1715 * 1715 *
@@ -1875,7 +1875,7 @@ enum {
1875struct agg_tx_status { 1875struct agg_tx_status {
1876 __le16 status; 1876 __le16 status;
1877 __le16 sequence; 1877 __le16 sequence;
1878} __attribute__ ((packed)); 1878} __packed;
1879 1879
1880struct iwl4965_tx_resp { 1880struct iwl4965_tx_resp {
1881 u8 frame_count; /* 1 no aggregation, >1 aggregation */ 1881 u8 frame_count; /* 1 no aggregation, >1 aggregation */
@@ -1912,7 +1912,7 @@ struct iwl4965_tx_resp {
1912 __le32 status; 1912 __le32 status;
1913 struct agg_tx_status agg_status[0]; /* for each agg frame */ 1913 struct agg_tx_status agg_status[0]; /* for each agg frame */
1914 } u; 1914 } u;
1915} __attribute__ ((packed)); 1915} __packed;
1916 1916
1917/* 1917/*
1918 * definitions for initial rate index field 1918 * definitions for initial rate index field
@@ -1976,7 +1976,7 @@ struct iwl5000_tx_resp {
1976 */ 1976 */
1977 struct agg_tx_status status; /* TX status (in aggregation - 1977 struct agg_tx_status status; /* TX status (in aggregation -
1978 * status of 1st frame) */ 1978 * status of 1st frame) */
1979} __attribute__ ((packed)); 1979} __packed;
1980/* 1980/*
1981 * REPLY_COMPRESSED_BA = 0xc5 (response only, not a command) 1981 * REPLY_COMPRESSED_BA = 0xc5 (response only, not a command)
1982 * 1982 *
@@ -1994,7 +1994,7 @@ struct iwl_compressed_ba_resp {
1994 __le64 bitmap; 1994 __le64 bitmap;
1995 __le16 scd_flow; 1995 __le16 scd_flow;
1996 __le16 scd_ssn; 1996 __le16 scd_ssn;
1997} __attribute__ ((packed)); 1997} __packed;
1998 1998
1999/* 1999/*
2000 * REPLY_TX_PWR_TABLE_CMD = 0x97 (command, has simple generic response) 2000 * REPLY_TX_PWR_TABLE_CMD = 0x97 (command, has simple generic response)
@@ -2007,14 +2007,14 @@ struct iwl3945_txpowertable_cmd {
2007 u8 reserved; 2007 u8 reserved;
2008 __le16 channel; 2008 __le16 channel;
2009 struct iwl3945_power_per_rate power[IWL_MAX_RATES]; 2009 struct iwl3945_power_per_rate power[IWL_MAX_RATES];
2010} __attribute__ ((packed)); 2010} __packed;
2011 2011
2012struct iwl4965_txpowertable_cmd { 2012struct iwl4965_txpowertable_cmd {
2013 u8 band; /* 0: 5 GHz, 1: 2.4 GHz */ 2013 u8 band; /* 0: 5 GHz, 1: 2.4 GHz */
2014 u8 reserved; 2014 u8 reserved;
2015 __le16 channel; 2015 __le16 channel;
2016 struct iwl4965_tx_power_db tx_power; 2016 struct iwl4965_tx_power_db tx_power;
2017} __attribute__ ((packed)); 2017} __packed;
2018 2018
2019 2019
2020/** 2020/**
@@ -2036,13 +2036,13 @@ struct iwl3945_rate_scaling_info {
2036 __le16 rate_n_flags; 2036 __le16 rate_n_flags;
2037 u8 try_cnt; 2037 u8 try_cnt;
2038 u8 next_rate_index; 2038 u8 next_rate_index;
2039} __attribute__ ((packed)); 2039} __packed;
2040 2040
2041struct iwl3945_rate_scaling_cmd { 2041struct iwl3945_rate_scaling_cmd {
2042 u8 table_id; 2042 u8 table_id;
2043 u8 reserved[3]; 2043 u8 reserved[3];
2044 struct iwl3945_rate_scaling_info table[IWL_MAX_RATES]; 2044 struct iwl3945_rate_scaling_info table[IWL_MAX_RATES];
2045} __attribute__ ((packed)); 2045} __packed;
2046 2046
2047 2047
2048/*RS_NEW_API: only TLC_RTS remains and moved to bit 0 */ 2048/*RS_NEW_API: only TLC_RTS remains and moved to bit 0 */
@@ -2089,7 +2089,7 @@ struct iwl_link_qual_general_params {
2089 * TX FIFOs above 3 use same value (typically 0) as TX FIFO 3. 2089 * TX FIFOs above 3 use same value (typically 0) as TX FIFO 3.
2090 */ 2090 */
2091 u8 start_rate_index[LINK_QUAL_AC_NUM]; 2091 u8 start_rate_index[LINK_QUAL_AC_NUM];
2092} __attribute__ ((packed)); 2092} __packed;
2093 2093
2094#define LINK_QUAL_AGG_TIME_LIMIT_DEF (4000) /* 4 milliseconds */ 2094#define LINK_QUAL_AGG_TIME_LIMIT_DEF (4000) /* 4 milliseconds */
2095#define LINK_QUAL_AGG_TIME_LIMIT_MAX (65535) 2095#define LINK_QUAL_AGG_TIME_LIMIT_MAX (65535)
@@ -2130,7 +2130,7 @@ struct iwl_link_qual_agg_params {
2130 u8 agg_frame_cnt_limit; 2130 u8 agg_frame_cnt_limit;
2131 2131
2132 __le32 reserved; 2132 __le32 reserved;
2133} __attribute__ ((packed)); 2133} __packed;
2134 2134
2135/* 2135/*
2136 * REPLY_TX_LINK_QUALITY_CMD = 0x4e (command, has simple generic response) 2136 * REPLY_TX_LINK_QUALITY_CMD = 0x4e (command, has simple generic response)
@@ -2336,7 +2336,7 @@ struct iwl_link_quality_cmd {
2336 __le32 rate_n_flags; /* RATE_MCS_*, IWL_RATE_* */ 2336 __le32 rate_n_flags; /* RATE_MCS_*, IWL_RATE_* */
2337 } rs_table[LINK_QUAL_MAX_RETRY_NUM]; 2337 } rs_table[LINK_QUAL_MAX_RETRY_NUM];
2338 __le32 reserved2; 2338 __le32 reserved2;
2339} __attribute__ ((packed)); 2339} __packed;
2340 2340
2341/* 2341/*
2342 * BT configuration enable flags: 2342 * BT configuration enable flags:
@@ -2377,7 +2377,7 @@ struct iwl_bt_cmd {
2377 u8 reserved; 2377 u8 reserved;
2378 __le32 kill_ack_mask; 2378 __le32 kill_ack_mask;
2379 __le32 kill_cts_mask; 2379 __le32 kill_cts_mask;
2380} __attribute__ ((packed)); 2380} __packed;
2381 2381
2382/****************************************************************************** 2382/******************************************************************************
2383 * (6) 2383 * (6)
@@ -2402,7 +2402,7 @@ struct iwl_measure_channel {
2402 u8 channel; /* channel to measure */ 2402 u8 channel; /* channel to measure */
2403 u8 type; /* see enum iwl_measure_type */ 2403 u8 type; /* see enum iwl_measure_type */
2404 __le16 reserved; 2404 __le16 reserved;
2405} __attribute__ ((packed)); 2405} __packed;
2406 2406
2407/* 2407/*
2408 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (command) 2408 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (command)
@@ -2421,7 +2421,7 @@ struct iwl_spectrum_cmd {
2421 __le16 channel_count; /* minimum 1, maximum 10 */ 2421 __le16 channel_count; /* minimum 1, maximum 10 */
2422 __le16 reserved3; 2422 __le16 reserved3;
2423 struct iwl_measure_channel channels[10]; 2423 struct iwl_measure_channel channels[10];
2424} __attribute__ ((packed)); 2424} __packed;
2425 2425
2426/* 2426/*
2427 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (response) 2427 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (response)
@@ -2432,7 +2432,7 @@ struct iwl_spectrum_resp {
2432 __le16 status; /* 0 - command will be handled 2432 __le16 status; /* 0 - command will be handled
2433 * 1 - cannot handle (conflicts with another 2433 * 1 - cannot handle (conflicts with another
2434 * measurement) */ 2434 * measurement) */
2435} __attribute__ ((packed)); 2435} __packed;
2436 2436
2437enum iwl_measurement_state { 2437enum iwl_measurement_state {
2438 IWL_MEASUREMENT_START = 0, 2438 IWL_MEASUREMENT_START = 0,
@@ -2455,13 +2455,13 @@ enum iwl_measurement_status {
2455struct iwl_measurement_histogram { 2455struct iwl_measurement_histogram {
2456 __le32 ofdm[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 0.8usec counts */ 2456 __le32 ofdm[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 0.8usec counts */
2457 __le32 cck[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 1usec counts */ 2457 __le32 cck[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 1usec counts */
2458} __attribute__ ((packed)); 2458} __packed;
2459 2459
2460/* clear channel availability counters */ 2460/* clear channel availability counters */
2461struct iwl_measurement_cca_counters { 2461struct iwl_measurement_cca_counters {
2462 __le32 ofdm; 2462 __le32 ofdm;
2463 __le32 cck; 2463 __le32 cck;
2464} __attribute__ ((packed)); 2464} __packed;
2465 2465
2466enum iwl_measure_type { 2466enum iwl_measure_type {
2467 IWL_MEASURE_BASIC = (1 << 0), 2467 IWL_MEASURE_BASIC = (1 << 0),
@@ -2497,7 +2497,7 @@ struct iwl_spectrum_notification {
2497 struct iwl_measurement_histogram histogram; 2497 struct iwl_measurement_histogram histogram;
2498 __le32 stop_time; /* lower 32-bits of TSF */ 2498 __le32 stop_time; /* lower 32-bits of TSF */
2499 __le32 status; /* see iwl_measurement_status */ 2499 __le32 status; /* see iwl_measurement_status */
2500} __attribute__ ((packed)); 2500} __packed;
2501 2501
2502/****************************************************************************** 2502/******************************************************************************
2503 * (7) 2503 * (7)
@@ -2553,7 +2553,7 @@ struct iwl3945_powertable_cmd {
2553 __le32 rx_data_timeout; 2553 __le32 rx_data_timeout;
2554 __le32 tx_data_timeout; 2554 __le32 tx_data_timeout;
2555 __le32 sleep_interval[IWL_POWER_VEC_SIZE]; 2555 __le32 sleep_interval[IWL_POWER_VEC_SIZE];
2556} __attribute__ ((packed)); 2556} __packed;
2557 2557
2558struct iwl_powertable_cmd { 2558struct iwl_powertable_cmd {
2559 __le16 flags; 2559 __le16 flags;
@@ -2563,7 +2563,7 @@ struct iwl_powertable_cmd {
2563 __le32 tx_data_timeout; 2563 __le32 tx_data_timeout;
2564 __le32 sleep_interval[IWL_POWER_VEC_SIZE]; 2564 __le32 sleep_interval[IWL_POWER_VEC_SIZE];
2565 __le32 keep_alive_beacons; 2565 __le32 keep_alive_beacons;
2566} __attribute__ ((packed)); 2566} __packed;
2567 2567
2568/* 2568/*
2569 * PM_SLEEP_NOTIFICATION = 0x7A (notification only, not a command) 2569 * PM_SLEEP_NOTIFICATION = 0x7A (notification only, not a command)
@@ -2576,7 +2576,7 @@ struct iwl_sleep_notification {
2576 __le32 sleep_time; 2576 __le32 sleep_time;
2577 __le32 tsf_low; 2577 __le32 tsf_low;
2578 __le32 bcon_timer; 2578 __le32 bcon_timer;
2579} __attribute__ ((packed)); 2579} __packed;
2580 2580
2581/* Sleep states. 3945 and 4965 identical. */ 2581/* Sleep states. 3945 and 4965 identical. */
2582enum { 2582enum {
@@ -2601,14 +2601,14 @@ enum {
2601#define CARD_STATE_CMD_HALT 0x02 /* Power down permanently */ 2601#define CARD_STATE_CMD_HALT 0x02 /* Power down permanently */
2602struct iwl_card_state_cmd { 2602struct iwl_card_state_cmd {
2603 __le32 status; /* CARD_STATE_CMD_* request new power state */ 2603 __le32 status; /* CARD_STATE_CMD_* request new power state */
2604} __attribute__ ((packed)); 2604} __packed;
2605 2605
2606/* 2606/*
2607 * CARD_STATE_NOTIFICATION = 0xa1 (notification only, not a command) 2607 * CARD_STATE_NOTIFICATION = 0xa1 (notification only, not a command)
2608 */ 2608 */
2609struct iwl_card_state_notif { 2609struct iwl_card_state_notif {
2610 __le32 flags; 2610 __le32 flags;
2611} __attribute__ ((packed)); 2611} __packed;
2612 2612
2613#define HW_CARD_DISABLED 0x01 2613#define HW_CARD_DISABLED 0x01
2614#define SW_CARD_DISABLED 0x02 2614#define SW_CARD_DISABLED 0x02
@@ -2619,14 +2619,14 @@ struct iwl_ct_kill_config {
2619 __le32 reserved; 2619 __le32 reserved;
2620 __le32 critical_temperature_M; 2620 __le32 critical_temperature_M;
2621 __le32 critical_temperature_R; 2621 __le32 critical_temperature_R;
2622} __attribute__ ((packed)); 2622} __packed;
2623 2623
2624/* 1000, and 6x00 */ 2624/* 1000, and 6x00 */
2625struct iwl_ct_kill_throttling_config { 2625struct iwl_ct_kill_throttling_config {
2626 __le32 critical_temperature_exit; 2626 __le32 critical_temperature_exit;
2627 __le32 reserved; 2627 __le32 reserved;
2628 __le32 critical_temperature_enter; 2628 __le32 critical_temperature_enter;
2629} __attribute__ ((packed)); 2629} __packed;
2630 2630
2631/****************************************************************************** 2631/******************************************************************************
2632 * (8) 2632 * (8)
@@ -2671,7 +2671,7 @@ struct iwl3945_scan_channel {
2671 struct iwl3945_tx_power tpc; 2671 struct iwl3945_tx_power tpc;
2672 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */ 2672 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */
2673 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */ 2673 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */
2674} __attribute__ ((packed)); 2674} __packed;
2675 2675
2676/* set number of direct probes u8 type */ 2676/* set number of direct probes u8 type */
2677#define IWL39_SCAN_PROBE_MASK(n) ((BIT(n) | (BIT(n) - BIT(1)))) 2677#define IWL39_SCAN_PROBE_MASK(n) ((BIT(n) | (BIT(n) - BIT(1))))
@@ -2690,7 +2690,7 @@ struct iwl_scan_channel {
2690 u8 dsp_atten; /* gain for DSP */ 2690 u8 dsp_atten; /* gain for DSP */
2691 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */ 2691 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */
2692 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */ 2692 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */
2693} __attribute__ ((packed)); 2693} __packed;
2694 2694
2695/* set number of direct probes __le32 type */ 2695/* set number of direct probes __le32 type */
2696#define IWL_SCAN_PROBE_MASK(n) cpu_to_le32((BIT(n) | (BIT(n) - BIT(1)))) 2696#define IWL_SCAN_PROBE_MASK(n) cpu_to_le32((BIT(n) | (BIT(n) - BIT(1))))
@@ -2707,7 +2707,7 @@ struct iwl_ssid_ie {
2707 u8 id; 2707 u8 id;
2708 u8 len; 2708 u8 len;
2709 u8 ssid[32]; 2709 u8 ssid[32];
2710} __attribute__ ((packed)); 2710} __packed;
2711 2711
2712#define PROBE_OPTION_MAX_3945 4 2712#define PROBE_OPTION_MAX_3945 4
2713#define PROBE_OPTION_MAX 20 2713#define PROBE_OPTION_MAX 20
@@ -2813,7 +2813,7 @@ struct iwl3945_scan_cmd {
2813 * before requesting another scan. 2813 * before requesting another scan.
2814 */ 2814 */
2815 u8 data[0]; 2815 u8 data[0];
2816} __attribute__ ((packed)); 2816} __packed;
2817 2817
2818struct iwl_scan_cmd { 2818struct iwl_scan_cmd {
2819 __le16 len; 2819 __le16 len;
@@ -2857,7 +2857,7 @@ struct iwl_scan_cmd {
2857 * before requesting another scan. 2857 * before requesting another scan.
2858 */ 2858 */
2859 u8 data[0]; 2859 u8 data[0];
2860} __attribute__ ((packed)); 2860} __packed;
2861 2861
2862/* Can abort will notify by complete notification with abort status. */ 2862/* Can abort will notify by complete notification with abort status. */
2863#define CAN_ABORT_STATUS cpu_to_le32(0x1) 2863#define CAN_ABORT_STATUS cpu_to_le32(0x1)
@@ -2869,7 +2869,7 @@ struct iwl_scan_cmd {
2869 */ 2869 */
2870struct iwl_scanreq_notification { 2870struct iwl_scanreq_notification {
2871 __le32 status; /* 1: okay, 2: cannot fulfill request */ 2871 __le32 status; /* 1: okay, 2: cannot fulfill request */
2872} __attribute__ ((packed)); 2872} __packed;
2873 2873
2874/* 2874/*
2875 * SCAN_START_NOTIFICATION = 0x82 (notification only, not a command) 2875 * SCAN_START_NOTIFICATION = 0x82 (notification only, not a command)
@@ -2882,7 +2882,7 @@ struct iwl_scanstart_notification {
2882 u8 band; 2882 u8 band;
2883 u8 reserved[2]; 2883 u8 reserved[2];
2884 __le32 status; 2884 __le32 status;
2885} __attribute__ ((packed)); 2885} __packed;
2886 2886
2887#define SCAN_OWNER_STATUS 0x1; 2887#define SCAN_OWNER_STATUS 0x1;
2888#define MEASURE_OWNER_STATUS 0x2; 2888#define MEASURE_OWNER_STATUS 0x2;
@@ -2898,7 +2898,7 @@ struct iwl_scanresults_notification {
2898 __le32 tsf_low; 2898 __le32 tsf_low;
2899 __le32 tsf_high; 2899 __le32 tsf_high;
2900 __le32 statistics[NUMBER_OF_STATISTICS]; 2900 __le32 statistics[NUMBER_OF_STATISTICS];
2901} __attribute__ ((packed)); 2901} __packed;
2902 2902
2903/* 2903/*
2904 * SCAN_COMPLETE_NOTIFICATION = 0x84 (notification only, not a command) 2904 * SCAN_COMPLETE_NOTIFICATION = 0x84 (notification only, not a command)
@@ -2910,7 +2910,7 @@ struct iwl_scancomplete_notification {
2910 u8 last_channel; 2910 u8 last_channel;
2911 __le32 tsf_low; 2911 __le32 tsf_low;
2912 __le32 tsf_high; 2912 __le32 tsf_high;
2913} __attribute__ ((packed)); 2913} __packed;
2914 2914
2915 2915
2916/****************************************************************************** 2916/******************************************************************************
@@ -2928,14 +2928,14 @@ struct iwl3945_beacon_notif {
2928 __le32 low_tsf; 2928 __le32 low_tsf;
2929 __le32 high_tsf; 2929 __le32 high_tsf;
2930 __le32 ibss_mgr_status; 2930 __le32 ibss_mgr_status;
2931} __attribute__ ((packed)); 2931} __packed;
2932 2932
2933struct iwl4965_beacon_notif { 2933struct iwl4965_beacon_notif {
2934 struct iwl4965_tx_resp beacon_notify_hdr; 2934 struct iwl4965_tx_resp beacon_notify_hdr;
2935 __le32 low_tsf; 2935 __le32 low_tsf;
2936 __le32 high_tsf; 2936 __le32 high_tsf;
2937 __le32 ibss_mgr_status; 2937 __le32 ibss_mgr_status;
2938} __attribute__ ((packed)); 2938} __packed;
2939 2939
2940/* 2940/*
2941 * REPLY_TX_BEACON = 0x91 (command, has simple generic response) 2941 * REPLY_TX_BEACON = 0x91 (command, has simple generic response)
@@ -2947,7 +2947,7 @@ struct iwl3945_tx_beacon_cmd {
2947 u8 tim_size; 2947 u8 tim_size;
2948 u8 reserved1; 2948 u8 reserved1;
2949 struct ieee80211_hdr frame[0]; /* beacon frame */ 2949 struct ieee80211_hdr frame[0]; /* beacon frame */
2950} __attribute__ ((packed)); 2950} __packed;
2951 2951
2952struct iwl_tx_beacon_cmd { 2952struct iwl_tx_beacon_cmd {
2953 struct iwl_tx_cmd tx; 2953 struct iwl_tx_cmd tx;
@@ -2955,7 +2955,7 @@ struct iwl_tx_beacon_cmd {
2955 u8 tim_size; 2955 u8 tim_size;
2956 u8 reserved1; 2956 u8 reserved1;
2957 struct ieee80211_hdr frame[0]; /* beacon frame */ 2957 struct ieee80211_hdr frame[0]; /* beacon frame */
2958} __attribute__ ((packed)); 2958} __packed;
2959 2959
2960/****************************************************************************** 2960/******************************************************************************
2961 * (10) 2961 * (10)
@@ -2981,7 +2981,7 @@ struct rate_histogram {
2981 __le32 b[SUP_RATE_11B_MAX_NUM_CHANNELS]; 2981 __le32 b[SUP_RATE_11B_MAX_NUM_CHANNELS];
2982 __le32 g[SUP_RATE_11G_MAX_NUM_CHANNELS]; 2982 __le32 g[SUP_RATE_11G_MAX_NUM_CHANNELS];
2983 } failed; 2983 } failed;
2984} __attribute__ ((packed)); 2984} __packed;
2985 2985
2986/* statistics command response */ 2986/* statistics command response */
2987 2987
@@ -3001,7 +3001,7 @@ struct iwl39_statistics_rx_phy {
3001 __le32 rxe_frame_limit_overrun; 3001 __le32 rxe_frame_limit_overrun;
3002 __le32 sent_ack_cnt; 3002 __le32 sent_ack_cnt;
3003 __le32 sent_cts_cnt; 3003 __le32 sent_cts_cnt;
3004} __attribute__ ((packed)); 3004} __packed;
3005 3005
3006struct iwl39_statistics_rx_non_phy { 3006struct iwl39_statistics_rx_non_phy {
3007 __le32 bogus_cts; /* CTS received when not expecting CTS */ 3007 __le32 bogus_cts; /* CTS received when not expecting CTS */
@@ -3012,13 +3012,13 @@ struct iwl39_statistics_rx_non_phy {
3012 * filtering process */ 3012 * filtering process */
3013 __le32 non_channel_beacons; /* beacons with our bss id but not on 3013 __le32 non_channel_beacons; /* beacons with our bss id but not on
3014 * our serving channel */ 3014 * our serving channel */
3015} __attribute__ ((packed)); 3015} __packed;
3016 3016
3017struct iwl39_statistics_rx { 3017struct iwl39_statistics_rx {
3018 struct iwl39_statistics_rx_phy ofdm; 3018 struct iwl39_statistics_rx_phy ofdm;
3019 struct iwl39_statistics_rx_phy cck; 3019 struct iwl39_statistics_rx_phy cck;
3020 struct iwl39_statistics_rx_non_phy general; 3020 struct iwl39_statistics_rx_non_phy general;
3021} __attribute__ ((packed)); 3021} __packed;
3022 3022
3023struct iwl39_statistics_tx { 3023struct iwl39_statistics_tx {
3024 __le32 preamble_cnt; 3024 __le32 preamble_cnt;
@@ -3030,21 +3030,21 @@ struct iwl39_statistics_tx {
3030 __le32 ack_timeout; 3030 __le32 ack_timeout;
3031 __le32 expected_ack_cnt; 3031 __le32 expected_ack_cnt;
3032 __le32 actual_ack_cnt; 3032 __le32 actual_ack_cnt;
3033} __attribute__ ((packed)); 3033} __packed;
3034 3034
3035struct statistics_dbg { 3035struct statistics_dbg {
3036 __le32 burst_check; 3036 __le32 burst_check;
3037 __le32 burst_count; 3037 __le32 burst_count;
3038 __le32 wait_for_silence_timeout_cnt; 3038 __le32 wait_for_silence_timeout_cnt;
3039 __le32 reserved[3]; 3039 __le32 reserved[3];
3040} __attribute__ ((packed)); 3040} __packed;
3041 3041
3042struct iwl39_statistics_div { 3042struct iwl39_statistics_div {
3043 __le32 tx_on_a; 3043 __le32 tx_on_a;
3044 __le32 tx_on_b; 3044 __le32 tx_on_b;
3045 __le32 exec_time; 3045 __le32 exec_time;
3046 __le32 probe_time; 3046 __le32 probe_time;
3047} __attribute__ ((packed)); 3047} __packed;
3048 3048
3049struct iwl39_statistics_general { 3049struct iwl39_statistics_general {
3050 __le32 temperature; 3050 __le32 temperature;
@@ -3054,7 +3054,7 @@ struct iwl39_statistics_general {
3054 __le32 slots_idle; 3054 __le32 slots_idle;
3055 __le32 ttl_timestamp; 3055 __le32 ttl_timestamp;
3056 struct iwl39_statistics_div div; 3056 struct iwl39_statistics_div div;
3057} __attribute__ ((packed)); 3057} __packed;
3058 3058
3059struct statistics_rx_phy { 3059struct statistics_rx_phy {
3060 __le32 ina_cnt; 3060 __le32 ina_cnt;
@@ -3077,7 +3077,7 @@ struct statistics_rx_phy {
3077 __le32 mh_format_err; 3077 __le32 mh_format_err;
3078 __le32 re_acq_main_rssi_sum; 3078 __le32 re_acq_main_rssi_sum;
3079 __le32 reserved3; 3079 __le32 reserved3;
3080} __attribute__ ((packed)); 3080} __packed;
3081 3081
3082struct statistics_rx_ht_phy { 3082struct statistics_rx_ht_phy {
3083 __le32 plcp_err; 3083 __le32 plcp_err;
@@ -3090,7 +3090,7 @@ struct statistics_rx_ht_phy {
3090 __le32 agg_mpdu_cnt; 3090 __le32 agg_mpdu_cnt;
3091 __le32 agg_cnt; 3091 __le32 agg_cnt;
3092 __le32 unsupport_mcs; 3092 __le32 unsupport_mcs;
3093} __attribute__ ((packed)); 3093} __packed;
3094 3094
3095#define INTERFERENCE_DATA_AVAILABLE cpu_to_le32(1) 3095#define INTERFERENCE_DATA_AVAILABLE cpu_to_le32(1)
3096 3096
@@ -3125,7 +3125,7 @@ struct statistics_rx_non_phy {
3125 __le32 beacon_energy_a; 3125 __le32 beacon_energy_a;
3126 __le32 beacon_energy_b; 3126 __le32 beacon_energy_b;
3127 __le32 beacon_energy_c; 3127 __le32 beacon_energy_c;
3128} __attribute__ ((packed)); 3128} __packed;
3129 3129
3130struct statistics_rx_non_phy_bt { 3130struct statistics_rx_non_phy_bt {
3131 struct statistics_rx_non_phy common; 3131 struct statistics_rx_non_phy common;
@@ -3139,7 +3139,7 @@ struct statistics_rx {
3139 struct statistics_rx_phy cck; 3139 struct statistics_rx_phy cck;
3140 struct statistics_rx_non_phy general; 3140 struct statistics_rx_non_phy general;
3141 struct statistics_rx_ht_phy ofdm_ht; 3141 struct statistics_rx_ht_phy ofdm_ht;
3142} __attribute__ ((packed)); 3142} __packed;
3143 3143
3144struct statistics_rx_bt { 3144struct statistics_rx_bt {
3145 struct statistics_rx_phy ofdm; 3145 struct statistics_rx_phy ofdm;
@@ -3160,7 +3160,7 @@ struct statistics_tx_power {
3160 u8 ant_b; 3160 u8 ant_b;
3161 u8 ant_c; 3161 u8 ant_c;
3162 u8 reserved; 3162 u8 reserved;
3163} __attribute__ ((packed)); 3163} __packed;
3164 3164
3165struct statistics_tx_non_phy_agg { 3165struct statistics_tx_non_phy_agg {
3166 __le32 ba_timeout; 3166 __le32 ba_timeout;
@@ -3173,7 +3173,7 @@ struct statistics_tx_non_phy_agg {
3173 __le32 underrun; 3173 __le32 underrun;
3174 __le32 bt_prio_kill; 3174 __le32 bt_prio_kill;
3175 __le32 rx_ba_rsp_cnt; 3175 __le32 rx_ba_rsp_cnt;
3176} __attribute__ ((packed)); 3176} __packed;
3177 3177
3178struct statistics_tx { 3178struct statistics_tx {
3179 __le32 preamble_cnt; 3179 __le32 preamble_cnt;
@@ -3198,7 +3198,7 @@ struct statistics_tx {
3198 */ 3198 */
3199 struct statistics_tx_power tx_power; 3199 struct statistics_tx_power tx_power;
3200 __le32 reserved1; 3200 __le32 reserved1;
3201} __attribute__ ((packed)); 3201} __packed;
3202 3202
3203 3203
3204struct statistics_div { 3204struct statistics_div {
@@ -3208,7 +3208,7 @@ struct statistics_div {
3208 __le32 probe_time; 3208 __le32 probe_time;
3209 __le32 reserved1; 3209 __le32 reserved1;
3210 __le32 reserved2; 3210 __le32 reserved2;
3211} __attribute__ ((packed)); 3211} __packed;
3212 3212
3213struct statistics_general_common { 3213struct statistics_general_common {
3214 __le32 temperature; /* radio temperature */ 3214 __le32 temperature; /* radio temperature */
@@ -3252,7 +3252,7 @@ struct statistics_general_bt {
3252 struct statistics_bt_activity activity; 3252 struct statistics_bt_activity activity;
3253 __le32 reserved2; 3253 __le32 reserved2;
3254 __le32 reserved3; 3254 __le32 reserved3;
3255} __attribute__ ((packed)); 3255} __packed;
3256 3256
3257#define UCODE_STATISTICS_CLEAR_MSK (0x1 << 0) 3257#define UCODE_STATISTICS_CLEAR_MSK (0x1 << 0)
3258#define UCODE_STATISTICS_FREQUENCY_MSK (0x1 << 1) 3258#define UCODE_STATISTICS_FREQUENCY_MSK (0x1 << 1)
@@ -3277,7 +3277,7 @@ struct statistics_general_bt {
3277#define IWL_STATS_CONF_DISABLE_NOTIF cpu_to_le32(0x2)/* see above */ 3277#define IWL_STATS_CONF_DISABLE_NOTIF cpu_to_le32(0x2)/* see above */
3278struct iwl_statistics_cmd { 3278struct iwl_statistics_cmd {
3279 __le32 configuration_flags; /* IWL_STATS_CONF_* */ 3279 __le32 configuration_flags; /* IWL_STATS_CONF_* */
3280} __attribute__ ((packed)); 3280} __packed;
3281 3281
3282/* 3282/*
3283 * STATISTICS_NOTIFICATION = 0x9d (notification only, not a command) 3283 * STATISTICS_NOTIFICATION = 0x9d (notification only, not a command)
@@ -3302,14 +3302,14 @@ struct iwl3945_notif_statistics {
3302 struct iwl39_statistics_rx rx; 3302 struct iwl39_statistics_rx rx;
3303 struct iwl39_statistics_tx tx; 3303 struct iwl39_statistics_tx tx;
3304 struct iwl39_statistics_general general; 3304 struct iwl39_statistics_general general;
3305} __attribute__ ((packed)); 3305} __packed;
3306 3306
3307struct iwl_notif_statistics { 3307struct iwl_notif_statistics {
3308 __le32 flag; 3308 __le32 flag;
3309 struct statistics_rx rx; 3309 struct statistics_rx rx;
3310 struct statistics_tx tx; 3310 struct statistics_tx tx;
3311 struct statistics_general general; 3311 struct statistics_general general;
3312} __attribute__ ((packed)); 3312} __packed;
3313 3313
3314struct iwl_bt_notif_statistics { 3314struct iwl_bt_notif_statistics {
3315 __le32 flag; 3315 __le32 flag;
@@ -3347,7 +3347,7 @@ struct iwl_missed_beacon_notif {
3347 __le32 total_missed_becons; 3347 __le32 total_missed_becons;
3348 __le32 num_expected_beacons; 3348 __le32 num_expected_beacons;
3349 __le32 num_recvd_beacons; 3349 __le32 num_recvd_beacons;
3350} __attribute__ ((packed)); 3350} __packed;
3351 3351
3352 3352
3353/****************************************************************************** 3353/******************************************************************************
@@ -3584,7 +3584,7 @@ struct iwl_missed_beacon_notif {
3584struct iwl_sensitivity_cmd { 3584struct iwl_sensitivity_cmd {
3585 __le16 control; /* always use "1" */ 3585 __le16 control; /* always use "1" */
3586 __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */ 3586 __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */
3587} __attribute__ ((packed)); 3587} __packed;
3588 3588
3589/* 3589/*
3590 * 3590 *
@@ -3673,31 +3673,31 @@ struct iwl_calib_cfg_elmnt_s {
3673 __le32 send_res; 3673 __le32 send_res;
3674 __le32 apply_res; 3674 __le32 apply_res;
3675 __le32 reserved; 3675 __le32 reserved;
3676} __attribute__ ((packed)); 3676} __packed;
3677 3677
3678struct iwl_calib_cfg_status_s { 3678struct iwl_calib_cfg_status_s {
3679 struct iwl_calib_cfg_elmnt_s once; 3679 struct iwl_calib_cfg_elmnt_s once;
3680 struct iwl_calib_cfg_elmnt_s perd; 3680 struct iwl_calib_cfg_elmnt_s perd;
3681 __le32 flags; 3681 __le32 flags;
3682} __attribute__ ((packed)); 3682} __packed;
3683 3683
3684struct iwl_calib_cfg_cmd { 3684struct iwl_calib_cfg_cmd {
3685 struct iwl_calib_cfg_status_s ucd_calib_cfg; 3685 struct iwl_calib_cfg_status_s ucd_calib_cfg;
3686 struct iwl_calib_cfg_status_s drv_calib_cfg; 3686 struct iwl_calib_cfg_status_s drv_calib_cfg;
3687 __le32 reserved1; 3687 __le32 reserved1;
3688} __attribute__ ((packed)); 3688} __packed;
3689 3689
3690struct iwl_calib_hdr { 3690struct iwl_calib_hdr {
3691 u8 op_code; 3691 u8 op_code;
3692 u8 first_group; 3692 u8 first_group;
3693 u8 groups_num; 3693 u8 groups_num;
3694 u8 data_valid; 3694 u8 data_valid;
3695} __attribute__ ((packed)); 3695} __packed;
3696 3696
3697struct iwl_calib_cmd { 3697struct iwl_calib_cmd {
3698 struct iwl_calib_hdr hdr; 3698 struct iwl_calib_hdr hdr;
3699 u8 data[0]; 3699 u8 data[0];
3700} __attribute__ ((packed)); 3700} __packed;
3701 3701
3702/* IWL_PHY_CALIBRATE_DIFF_GAIN_CMD (7) */ 3702/* IWL_PHY_CALIBRATE_DIFF_GAIN_CMD (7) */
3703struct iwl_calib_diff_gain_cmd { 3703struct iwl_calib_diff_gain_cmd {
@@ -3706,14 +3706,14 @@ struct iwl_calib_diff_gain_cmd {
3706 s8 diff_gain_b; 3706 s8 diff_gain_b;
3707 s8 diff_gain_c; 3707 s8 diff_gain_c;
3708 u8 reserved1; 3708 u8 reserved1;
3709} __attribute__ ((packed)); 3709} __packed;
3710 3710
3711struct iwl_calib_xtal_freq_cmd { 3711struct iwl_calib_xtal_freq_cmd {
3712 struct iwl_calib_hdr hdr; 3712 struct iwl_calib_hdr hdr;
3713 u8 cap_pin1; 3713 u8 cap_pin1;
3714 u8 cap_pin2; 3714 u8 cap_pin2;
3715 u8 pad[2]; 3715 u8 pad[2];
3716} __attribute__ ((packed)); 3716} __packed;
3717 3717
3718/* IWL_PHY_CALIBRATE_CHAIN_NOISE_RESET_CMD */ 3718/* IWL_PHY_CALIBRATE_CHAIN_NOISE_RESET_CMD */
3719struct iwl_calib_chain_noise_reset_cmd { 3719struct iwl_calib_chain_noise_reset_cmd {
@@ -3727,7 +3727,7 @@ struct iwl_calib_chain_noise_gain_cmd {
3727 u8 delta_gain_1; 3727 u8 delta_gain_1;
3728 u8 delta_gain_2; 3728 u8 delta_gain_2;
3729 u8 pad[2]; 3729 u8 pad[2];
3730} __attribute__ ((packed)); 3730} __packed;
3731 3731
3732/****************************************************************************** 3732/******************************************************************************
3733 * (12) 3733 * (12)
@@ -3750,7 +3750,7 @@ struct iwl_led_cmd {
3750 u8 on; /* # intervals on while blinking; 3750 u8 on; /* # intervals on while blinking;
3751 * "0", regardless of "off", turns LED off */ 3751 * "0", regardless of "off", turns LED off */
3752 u8 reserved; 3752 u8 reserved;
3753} __attribute__ ((packed)); 3753} __packed;
3754 3754
3755/* 3755/*
3756 * station priority table entries 3756 * station priority table entries
@@ -3886,7 +3886,7 @@ struct iwl_wimax_coex_event_entry {
3886 u8 win_medium_prio; 3886 u8 win_medium_prio;
3887 u8 reserved; 3887 u8 reserved;
3888 u8 flags; 3888 u8 flags;
3889} __attribute__ ((packed)); 3889} __packed;
3890 3890
3891/* COEX flag masks */ 3891/* COEX flag masks */
3892 3892
@@ -3903,7 +3903,7 @@ struct iwl_wimax_coex_cmd {
3903 u8 flags; 3903 u8 flags;
3904 u8 reserved[3]; 3904 u8 reserved[3];
3905 struct iwl_wimax_coex_event_entry sta_prio[COEX_NUM_OF_EVENTS]; 3905 struct iwl_wimax_coex_event_entry sta_prio[COEX_NUM_OF_EVENTS];
3906} __attribute__ ((packed)); 3906} __packed;
3907 3907
3908/* 3908/*
3909 * Coexistence MEDIUM NOTIFICATION 3909 * Coexistence MEDIUM NOTIFICATION
@@ -3932,7 +3932,7 @@ struct iwl_wimax_coex_cmd {
3932struct iwl_coex_medium_notification { 3932struct iwl_coex_medium_notification {
3933 __le32 status; 3933 __le32 status;
3934 __le32 events; 3934 __le32 events;
3935} __attribute__ ((packed)); 3935} __packed;
3936 3936
3937/* 3937/*
3938 * Coexistence EVENT Command 3938 * Coexistence EVENT Command
@@ -3947,11 +3947,11 @@ struct iwl_coex_event_cmd {
3947 u8 flags; 3947 u8 flags;
3948 u8 event; 3948 u8 event;
3949 __le16 reserved; 3949 __le16 reserved;
3950} __attribute__ ((packed)); 3950} __packed;
3951 3951
3952struct iwl_coex_event_resp { 3952struct iwl_coex_event_resp {
3953 __le32 status; 3953 __le32 status;
3954} __attribute__ ((packed)); 3954} __packed;
3955 3955
3956 3956
3957/****************************************************************************** 3957/******************************************************************************
@@ -3996,7 +3996,7 @@ struct iwl_rx_packet {
3996 __le32 status; 3996 __le32 status;
3997 u8 raw[0]; 3997 u8 raw[0];
3998 } u; 3998 } u;
3999} __attribute__ ((packed)); 3999} __packed;
4000 4000
4001int iwl_agn_check_rxon_cmd(struct iwl_priv *priv); 4001int iwl_agn_check_rxon_cmd(struct iwl_priv *priv);
4002 4002
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 5e4745db5dc6..f35bcad56e36 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -138,7 +138,7 @@ struct iwl_queue {
138 * space more than this */ 138 * space more than this */
139 int high_mark; /* high watermark, stop queue if free 139 int high_mark; /* high watermark, stop queue if free
140 * space less than this */ 140 * space less than this */
141} __attribute__ ((packed)); 141} __packed;
142 142
143/* One for each TFD */ 143/* One for each TFD */
144struct iwl_tx_info { 144struct iwl_tx_info {
@@ -324,8 +324,8 @@ struct iwl_device_cmd {
324 struct iwl_tx_cmd tx; 324 struct iwl_tx_cmd tx;
325 struct iwl6000_channel_switch_cmd chswitch; 325 struct iwl6000_channel_switch_cmd chswitch;
326 u8 payload[DEF_CMD_PAYLOAD_SIZE]; 326 u8 payload[DEF_CMD_PAYLOAD_SIZE];
327 } __attribute__ ((packed)) cmd; 327 } __packed cmd;
328} __attribute__ ((packed)); 328} __packed;
329 329
330#define TFD_MAX_PAYLOAD_SIZE (sizeof(struct iwl_device_cmd)) 330#define TFD_MAX_PAYLOAD_SIZE (sizeof(struct iwl_device_cmd))
331 331
@@ -579,7 +579,7 @@ struct iwl_ucode_tlv {
579 __le16 alternative; /* see comment */ 579 __le16 alternative; /* see comment */
580 __le32 length; /* not including type/length fields */ 580 __le32 length; /* not including type/length fields */
581 u8 data[0]; 581 u8 data[0];
582} __attribute__ ((packed)); 582} __packed;
583 583
584#define IWL_TLV_UCODE_MAGIC 0x0a4c5749 584#define IWL_TLV_UCODE_MAGIC 0x0a4c5749
585 585
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index 3209b37997b6..a4772aff51fe 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -118,7 +118,7 @@ enum {
118struct iwl_eeprom_channel { 118struct iwl_eeprom_channel {
119 u8 flags; /* EEPROM_CHANNEL_* flags copied from EEPROM */ 119 u8 flags; /* EEPROM_CHANNEL_* flags copied from EEPROM */
120 s8 max_power_avg; /* max power (dBm) on this chnl, limit 31 */ 120 s8 max_power_avg; /* max power (dBm) on this chnl, limit 31 */
121} __attribute__ ((packed)); 121} __packed;
122 122
123/** 123/**
124 * iwl_eeprom_enhanced_txpwr structure 124 * iwl_eeprom_enhanced_txpwr structure
@@ -144,7 +144,7 @@ struct iwl_eeprom_enhanced_txpwr {
144 s8 reserved; 144 s8 reserved;
145 s8 mimo2_max; 145 s8 mimo2_max;
146 s8 mimo3_max; 146 s8 mimo3_max;
147} __attribute__ ((packed)); 147} __packed;
148 148
149/* 3945 Specific */ 149/* 3945 Specific */
150#define EEPROM_3945_EEPROM_VERSION (0x2f) 150#define EEPROM_3945_EEPROM_VERSION (0x2f)
@@ -316,7 +316,7 @@ struct iwl_eeprom_calib_measure {
316 u8 gain_idx; /* Index into gain table */ 316 u8 gain_idx; /* Index into gain table */
317 u8 actual_pow; /* Measured RF output power, half-dBm */ 317 u8 actual_pow; /* Measured RF output power, half-dBm */
318 s8 pa_det; /* Power amp detector level (not used) */ 318 s8 pa_det; /* Power amp detector level (not used) */
319} __attribute__ ((packed)); 319} __packed;
320 320
321 321
322/* 322/*
@@ -332,7 +332,7 @@ struct iwl_eeprom_calib_ch_info {
332 struct iwl_eeprom_calib_measure 332 struct iwl_eeprom_calib_measure
333 measurements[EEPROM_TX_POWER_TX_CHAINS] 333 measurements[EEPROM_TX_POWER_TX_CHAINS]
334 [EEPROM_TX_POWER_MEASUREMENTS]; 334 [EEPROM_TX_POWER_MEASUREMENTS];
335} __attribute__ ((packed)); 335} __packed;
336 336
337/* 337/*
338 * txpower subband info. 338 * txpower subband info.
@@ -349,7 +349,7 @@ struct iwl_eeprom_calib_subband_info {
349 u8 ch_to; /* channel number of highest channel in subband */ 349 u8 ch_to; /* channel number of highest channel in subband */
350 struct iwl_eeprom_calib_ch_info ch1; 350 struct iwl_eeprom_calib_ch_info ch1;
351 struct iwl_eeprom_calib_ch_info ch2; 351 struct iwl_eeprom_calib_ch_info ch2;
352} __attribute__ ((packed)); 352} __packed;
353 353
354 354
355/* 355/*
@@ -378,7 +378,7 @@ struct iwl_eeprom_calib_info {
378 __le16 voltage; /* signed */ 378 __le16 voltage; /* signed */
379 struct iwl_eeprom_calib_subband_info 379 struct iwl_eeprom_calib_subband_info
380 band_info[EEPROM_TX_POWER_BANDS]; 380 band_info[EEPROM_TX_POWER_BANDS];
381} __attribute__ ((packed)); 381} __packed;
382 382
383 383
384#define ADDRESS_MSK 0x0000FFFF 384#define ADDRESS_MSK 0x0000FFFF
diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
index dd896f28c931..55b8370bc6d4 100644
--- a/drivers/net/wireless/iwlwifi/iwl-fh.h
+++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
@@ -444,7 +444,7 @@ struct iwl_rb_status {
444 __le16 finished_rb_num; 444 __le16 finished_rb_num;
445 __le16 finished_fr_nam; 445 __le16 finished_fr_nam;
446 __le32 __unused; /* 3945 only */ 446 __le32 __unused; /* 3945 only */
447} __attribute__ ((packed)); 447} __packed;
448 448
449 449
450#define TFD_QUEUE_SIZE_MAX (256) 450#define TFD_QUEUE_SIZE_MAX (256)
@@ -470,7 +470,7 @@ static inline u8 iwl_get_dma_hi_addr(dma_addr_t addr)
470struct iwl_tfd_tb { 470struct iwl_tfd_tb {
471 __le32 lo; 471 __le32 lo;
472 __le16 hi_n_len; 472 __le16 hi_n_len;
473} __attribute__((packed)); 473} __packed;
474 474
475/** 475/**
476 * struct iwl_tfd 476 * struct iwl_tfd
@@ -505,7 +505,7 @@ struct iwl_tfd {
505 u8 num_tbs; 505 u8 num_tbs;
506 struct iwl_tfd_tb tbs[IWL_NUM_OF_TBS]; 506 struct iwl_tfd_tb tbs[IWL_NUM_OF_TBS];
507 __le32 __pad; 507 __le32 __pad;
508} __attribute__ ((packed)); 508} __packed;
509 509
510/* Keep Warm Size */ 510/* Keep Warm Size */
511#define IWL_KW_SIZE 0x1000 /* 4k */ 511#define IWL_KW_SIZE 0x1000 /* 4k */
diff --git a/drivers/net/wireless/iwlwifi/iwl-spectrum.h b/drivers/net/wireless/iwlwifi/iwl-spectrum.h
index af6babee2891..c4ca0b5d77da 100644
--- a/drivers/net/wireless/iwlwifi/iwl-spectrum.h
+++ b/drivers/net/wireless/iwlwifi/iwl-spectrum.h
@@ -42,7 +42,7 @@ struct ieee80211_basic_report {
42 __le64 start_time; 42 __le64 start_time;
43 __le16 duration; 43 __le16 duration;
44 u8 map; 44 u8 map;
45} __attribute__ ((packed)); 45} __packed;
46 46
47enum { /* ieee80211_measurement_request.mode */ 47enum { /* ieee80211_measurement_request.mode */
48 /* Bit 0 is reserved */ 48 /* Bit 0 is reserved */
@@ -63,13 +63,13 @@ struct ieee80211_measurement_params {
63 u8 channel; 63 u8 channel;
64 __le64 start_time; 64 __le64 start_time;
65 __le16 duration; 65 __le16 duration;
66} __attribute__ ((packed)); 66} __packed;
67 67
68struct ieee80211_info_element { 68struct ieee80211_info_element {
69 u8 id; 69 u8 id;
70 u8 len; 70 u8 len;
71 u8 data[0]; 71 u8 data[0];
72} __attribute__ ((packed)); 72} __packed;
73 73
74struct ieee80211_measurement_request { 74struct ieee80211_measurement_request {
75 struct ieee80211_info_element ie; 75 struct ieee80211_info_element ie;
@@ -77,7 +77,7 @@ struct ieee80211_measurement_request {
77 u8 mode; 77 u8 mode;
78 u8 type; 78 u8 type;
79 struct ieee80211_measurement_params params[0]; 79 struct ieee80211_measurement_params params[0];
80} __attribute__ ((packed)); 80} __packed;
81 81
82struct ieee80211_measurement_report { 82struct ieee80211_measurement_report {
83 struct ieee80211_info_element ie; 83 struct ieee80211_info_element ie;
@@ -87,6 +87,6 @@ struct ieee80211_measurement_report {
87 union { 87 union {
88 struct ieee80211_basic_report basic[0]; 88 struct ieee80211_basic_report basic[0];
89 } u; 89 } u;
90} __attribute__ ((packed)); 90} __packed;
91 91
92#endif 92#endif