aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_acx.h102
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_cmd.h22
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_event.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_rx.h2
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_tx.h6
-rw-r--r--drivers/net/wireless/wl12xx/wl1271.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_acx.h102
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_cmd.h40
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_event.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_rx.h2
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_tx.h6
-rw-r--r--drivers/net/wireless/wl12xx/wl12xx_80211.h26
12 files changed, 160 insertions, 160 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251_acx.h b/drivers/net/wireless/wl12xx/wl1251_acx.h
index 26160c45784c..842df310d92a 100644
--- a/drivers/net/wireless/wl12xx/wl1251_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1251_acx.h
@@ -60,7 +60,7 @@ struct acx_error_counter {
60 /* the number of missed sequence numbers in the squentially */ 60 /* the number of missed sequence numbers in the squentially */
61 /* values of frames seq numbers */ 61 /* values of frames seq numbers */
62 u32 seq_num_miss; 62 u32 seq_num_miss;
63} __attribute__ ((packed)); 63} __packed;
64 64
65struct acx_revision { 65struct acx_revision {
66 struct acx_header header; 66 struct acx_header header;
@@ -89,7 +89,7 @@ struct acx_revision {
89 * bits 24 - 31: Chip ID - The WiLink chip ID. 89 * bits 24 - 31: Chip ID - The WiLink chip ID.
90 */ 90 */
91 u32 hw_version; 91 u32 hw_version;
92} __attribute__ ((packed)); 92} __packed;
93 93
94enum wl1251_psm_mode { 94enum wl1251_psm_mode {
95 /* Active mode */ 95 /* Active mode */
@@ -111,7 +111,7 @@ struct acx_sleep_auth {
111 /* 2 - ELP mode: Deep / Max sleep*/ 111 /* 2 - ELP mode: Deep / Max sleep*/
112 u8 sleep_auth; 112 u8 sleep_auth;
113 u8 padding[3]; 113 u8 padding[3];
114} __attribute__ ((packed)); 114} __packed;
115 115
116enum { 116enum {
117 HOSTIF_PCI_MASTER_HOST_INDIRECT, 117 HOSTIF_PCI_MASTER_HOST_INDIRECT,
@@ -159,7 +159,7 @@ struct acx_data_path_params {
159 * complete ring until an interrupt is generated. 159 * complete ring until an interrupt is generated.
160 */ 160 */
161 u32 tx_complete_timeout; 161 u32 tx_complete_timeout;
162} __attribute__ ((packed)); 162} __packed;
163 163
164 164
165struct acx_data_path_params_resp { 165struct acx_data_path_params_resp {
@@ -180,7 +180,7 @@ struct acx_data_path_params_resp {
180 u32 tx_control_addr; 180 u32 tx_control_addr;
181 181
182 u32 tx_complete_addr; 182 u32 tx_complete_addr;
183} __attribute__ ((packed)); 183} __packed;
184 184
185#define TX_MSDU_LIFETIME_MIN 0 185#define TX_MSDU_LIFETIME_MIN 0
186#define TX_MSDU_LIFETIME_MAX 3000 186#define TX_MSDU_LIFETIME_MAX 3000
@@ -197,7 +197,7 @@ struct acx_rx_msdu_lifetime {
197 * firmware discards the MSDU. 197 * firmware discards the MSDU.
198 */ 198 */
199 u32 lifetime; 199 u32 lifetime;
200} __attribute__ ((packed)); 200} __packed;
201 201
202/* 202/*
203 * RX Config Options Table 203 * RX Config Options Table
@@ -285,7 +285,7 @@ struct acx_rx_config {
285 285
286 u32 config_options; 286 u32 config_options;
287 u32 filter_options; 287 u32 filter_options;
288} __attribute__ ((packed)); 288} __packed;
289 289
290enum { 290enum {
291 QOS_AC_BE = 0, 291 QOS_AC_BE = 0,
@@ -325,13 +325,13 @@ struct acx_tx_queue_qos_config {
325 325
326 /* Lowest memory blocks guaranteed for this queue */ 326 /* Lowest memory blocks guaranteed for this queue */
327 u16 low_threshold; 327 u16 low_threshold;
328} __attribute__ ((packed)); 328} __packed;
329 329
330struct acx_packet_detection { 330struct acx_packet_detection {
331 struct acx_header header; 331 struct acx_header header;
332 332
333 u32 threshold; 333 u32 threshold;
334} __attribute__ ((packed)); 334} __packed;
335 335
336 336
337enum acx_slot_type { 337enum acx_slot_type {
@@ -349,7 +349,7 @@ struct acx_slot {
349 u8 wone_index; /* Reserved */ 349 u8 wone_index; /* Reserved */
350 u8 slot_time; 350 u8 slot_time;
351 u8 reserved[6]; 351 u8 reserved[6];
352} __attribute__ ((packed)); 352} __packed;
353 353
354 354
355#define ADDRESS_GROUP_MAX (8) 355#define ADDRESS_GROUP_MAX (8)
@@ -362,7 +362,7 @@ struct acx_dot11_grp_addr_tbl {
362 u8 num_groups; 362 u8 num_groups;
363 u8 pad[2]; 363 u8 pad[2];
364 u8 mac_table[ADDRESS_GROUP_MAX_LEN]; 364 u8 mac_table[ADDRESS_GROUP_MAX_LEN];
365} __attribute__ ((packed)); 365} __packed;
366 366
367 367
368#define RX_TIMEOUT_PS_POLL_MIN 0 368#define RX_TIMEOUT_PS_POLL_MIN 0
@@ -388,7 +388,7 @@ struct acx_rx_timeout {
388 * from an UPSD enabled queue. 388 * from an UPSD enabled queue.
389 */ 389 */
390 u16 upsd_timeout; 390 u16 upsd_timeout;
391} __attribute__ ((packed)); 391} __packed;
392 392
393#define RTS_THRESHOLD_MIN 0 393#define RTS_THRESHOLD_MIN 0
394#define RTS_THRESHOLD_MAX 4096 394#define RTS_THRESHOLD_MAX 4096
@@ -399,7 +399,7 @@ struct acx_rts_threshold {
399 399
400 u16 threshold; 400 u16 threshold;
401 u8 pad[2]; 401 u8 pad[2];
402} __attribute__ ((packed)); 402} __packed;
403 403
404struct acx_beacon_filter_option { 404struct acx_beacon_filter_option {
405 struct acx_header header; 405 struct acx_header header;
@@ -415,7 +415,7 @@ struct acx_beacon_filter_option {
415 */ 415 */
416 u8 max_num_beacons; 416 u8 max_num_beacons;
417 u8 pad[2]; 417 u8 pad[2];
418} __attribute__ ((packed)); 418} __packed;
419 419
420/* 420/*
421 * ACXBeaconFilterEntry (not 221) 421 * ACXBeaconFilterEntry (not 221)
@@ -461,7 +461,7 @@ struct acx_beacon_filter_ie_table {
461 u8 num_ie; 461 u8 num_ie;
462 u8 table[BEACON_FILTER_TABLE_MAX_SIZE]; 462 u8 table[BEACON_FILTER_TABLE_MAX_SIZE];
463 u8 pad[3]; 463 u8 pad[3];
464} __attribute__ ((packed)); 464} __packed;
465 465
466#define SYNCH_FAIL_DEFAULT_THRESHOLD 10 /* number of beacons */ 466#define SYNCH_FAIL_DEFAULT_THRESHOLD 10 /* number of beacons */
467#define NO_BEACON_DEFAULT_TIMEOUT (500) /* in microseconds */ 467#define NO_BEACON_DEFAULT_TIMEOUT (500) /* in microseconds */
@@ -494,7 +494,7 @@ struct acx_bt_wlan_coex {
494 */ 494 */
495 u8 enable; 495 u8 enable;
496 u8 pad[3]; 496 u8 pad[3];
497} __attribute__ ((packed)); 497} __packed;
498 498
499#define PTA_ANTENNA_TYPE_DEF (0) 499#define PTA_ANTENNA_TYPE_DEF (0)
500#define PTA_BT_HP_MAXTIME_DEF (2000) 500#define PTA_BT_HP_MAXTIME_DEF (2000)
@@ -648,7 +648,7 @@ struct acx_bt_wlan_coex_param {
648 648
649 /* range: 0 - 20 default: 1 */ 649 /* range: 0 - 20 default: 1 */
650 u8 bt_hp_respected_num; 650 u8 bt_hp_respected_num;
651} __attribute__ ((packed)); 651} __packed;
652 652
653#define CCA_THRSH_ENABLE_ENERGY_D 0x140A 653#define CCA_THRSH_ENABLE_ENERGY_D 0x140A
654#define CCA_THRSH_DISABLE_ENERGY_D 0xFFEF 654#define CCA_THRSH_DISABLE_ENERGY_D 0xFFEF
@@ -660,7 +660,7 @@ struct acx_energy_detection {
660 u16 rx_cca_threshold; 660 u16 rx_cca_threshold;
661 u8 tx_energy_detection; 661 u8 tx_energy_detection;
662 u8 pad; 662 u8 pad;
663} __attribute__ ((packed)); 663} __packed;
664 664
665#define BCN_RX_TIMEOUT_DEF_VALUE 10000 665#define BCN_RX_TIMEOUT_DEF_VALUE 10000
666#define BROADCAST_RX_TIMEOUT_DEF_VALUE 20000 666#define BROADCAST_RX_TIMEOUT_DEF_VALUE 20000
@@ -679,14 +679,14 @@ struct acx_beacon_broadcast {
679 /* Consecutive PS Poll failures before updating the host */ 679 /* Consecutive PS Poll failures before updating the host */
680 u8 ps_poll_threshold; 680 u8 ps_poll_threshold;
681 u8 pad[2]; 681 u8 pad[2];
682} __attribute__ ((packed)); 682} __packed;
683 683
684struct acx_event_mask { 684struct acx_event_mask {
685 struct acx_header header; 685 struct acx_header header;
686 686
687 u32 event_mask; 687 u32 event_mask;
688 u32 high_event_mask; /* Unused */ 688 u32 high_event_mask; /* Unused */
689} __attribute__ ((packed)); 689} __packed;
690 690
691#define CFG_RX_FCS BIT(2) 691#define CFG_RX_FCS BIT(2)
692#define CFG_RX_ALL_GOOD BIT(3) 692#define CFG_RX_ALL_GOOD BIT(3)
@@ -729,7 +729,7 @@ struct acx_fw_gen_frame_rates {
729 u8 tx_ctrl_frame_mod; /* CCK_* or PBCC_* */ 729 u8 tx_ctrl_frame_mod; /* CCK_* or PBCC_* */
730 u8 tx_mgt_frame_rate; 730 u8 tx_mgt_frame_rate;
731 u8 tx_mgt_frame_mod; 731 u8 tx_mgt_frame_mod;
732} __attribute__ ((packed)); 732} __packed;
733 733
734/* STA MAC */ 734/* STA MAC */
735struct acx_dot11_station_id { 735struct acx_dot11_station_id {
@@ -737,28 +737,28 @@ struct acx_dot11_station_id {
737 737
738 u8 mac[ETH_ALEN]; 738 u8 mac[ETH_ALEN];
739 u8 pad[2]; 739 u8 pad[2];
740} __attribute__ ((packed)); 740} __packed;
741 741
742struct acx_feature_config { 742struct acx_feature_config {
743 struct acx_header header; 743 struct acx_header header;
744 744
745 u32 options; 745 u32 options;
746 u32 data_flow_options; 746 u32 data_flow_options;
747} __attribute__ ((packed)); 747} __packed;
748 748
749struct acx_current_tx_power { 749struct acx_current_tx_power {
750 struct acx_header header; 750 struct acx_header header;
751 751
752 u8 current_tx_power; 752 u8 current_tx_power;
753 u8 padding[3]; 753 u8 padding[3];
754} __attribute__ ((packed)); 754} __packed;
755 755
756struct acx_dot11_default_key { 756struct acx_dot11_default_key {
757 struct acx_header header; 757 struct acx_header header;
758 758
759 u8 id; 759 u8 id;
760 u8 pad[3]; 760 u8 pad[3];
761} __attribute__ ((packed)); 761} __packed;
762 762
763struct acx_tsf_info { 763struct acx_tsf_info {
764 struct acx_header header; 764 struct acx_header header;
@@ -769,7 +769,7 @@ struct acx_tsf_info {
769 u32 last_TBTT_lsb; 769 u32 last_TBTT_lsb;
770 u8 last_dtim_count; 770 u8 last_dtim_count;
771 u8 pad[3]; 771 u8 pad[3];
772} __attribute__ ((packed)); 772} __packed;
773 773
774enum acx_wake_up_event { 774enum acx_wake_up_event {
775 WAKE_UP_EVENT_BEACON_BITMAP = 0x01, /* Wake on every Beacon*/ 775 WAKE_UP_EVENT_BEACON_BITMAP = 0x01, /* Wake on every Beacon*/
@@ -785,7 +785,7 @@ struct acx_wake_up_condition {
785 u8 wake_up_event; /* Only one bit can be set */ 785 u8 wake_up_event; /* Only one bit can be set */
786 u8 listen_interval; 786 u8 listen_interval;
787 u8 pad[2]; 787 u8 pad[2];
788} __attribute__ ((packed)); 788} __packed;
789 789
790struct acx_aid { 790struct acx_aid {
791 struct acx_header header; 791 struct acx_header header;
@@ -795,7 +795,7 @@ struct acx_aid {
795 */ 795 */
796 u16 aid; 796 u16 aid;
797 u8 pad[2]; 797 u8 pad[2];
798} __attribute__ ((packed)); 798} __packed;
799 799
800enum acx_preamble_type { 800enum acx_preamble_type {
801 ACX_PREAMBLE_LONG = 0, 801 ACX_PREAMBLE_LONG = 0,
@@ -811,7 +811,7 @@ struct acx_preamble {
811 */ 811 */
812 u8 preamble; 812 u8 preamble;
813 u8 padding[3]; 813 u8 padding[3];
814} __attribute__ ((packed)); 814} __packed;
815 815
816enum acx_ctsprotect_type { 816enum acx_ctsprotect_type {
817 CTSPROTECT_DISABLE = 0, 817 CTSPROTECT_DISABLE = 0,
@@ -822,11 +822,11 @@ struct acx_ctsprotect {
822 struct acx_header header; 822 struct acx_header header;
823 u8 ctsprotect; 823 u8 ctsprotect;
824 u8 padding[3]; 824 u8 padding[3];
825} __attribute__ ((packed)); 825} __packed;
826 826
827struct acx_tx_statistics { 827struct acx_tx_statistics {
828 u32 internal_desc_overflow; 828 u32 internal_desc_overflow;
829} __attribute__ ((packed)); 829} __packed;
830 830
831struct acx_rx_statistics { 831struct acx_rx_statistics {
832 u32 out_of_mem; 832 u32 out_of_mem;
@@ -837,14 +837,14 @@ struct acx_rx_statistics {
837 u32 xfr_hint_trig; 837 u32 xfr_hint_trig;
838 u32 path_reset; 838 u32 path_reset;
839 u32 reset_counter; 839 u32 reset_counter;
840} __attribute__ ((packed)); 840} __packed;
841 841
842struct acx_dma_statistics { 842struct acx_dma_statistics {
843 u32 rx_requested; 843 u32 rx_requested;
844 u32 rx_errors; 844 u32 rx_errors;
845 u32 tx_requested; 845 u32 tx_requested;
846 u32 tx_errors; 846 u32 tx_errors;
847} __attribute__ ((packed)); 847} __packed;
848 848
849struct acx_isr_statistics { 849struct acx_isr_statistics {
850 /* host command complete */ 850 /* host command complete */
@@ -903,7 +903,7 @@ struct acx_isr_statistics {
903 903
904 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */ 904 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */
905 u32 low_rssi; 905 u32 low_rssi;
906} __attribute__ ((packed)); 906} __packed;
907 907
908struct acx_wep_statistics { 908struct acx_wep_statistics {
909 /* WEP address keys configured */ 909 /* WEP address keys configured */
@@ -925,7 +925,7 @@ struct acx_wep_statistics {
925 925
926 /* WEP decrypt interrupts */ 926 /* WEP decrypt interrupts */
927 u32 interrupt; 927 u32 interrupt;
928} __attribute__ ((packed)); 928} __packed;
929 929
930#define ACX_MISSED_BEACONS_SPREAD 10 930#define ACX_MISSED_BEACONS_SPREAD 10
931 931
@@ -985,12 +985,12 @@ struct acx_pwr_statistics {
985 985
986 /* the number of beacons in awake mode */ 986 /* the number of beacons in awake mode */
987 u32 rcvd_awake_beacons; 987 u32 rcvd_awake_beacons;
988} __attribute__ ((packed)); 988} __packed;
989 989
990struct acx_mic_statistics { 990struct acx_mic_statistics {
991 u32 rx_pkts; 991 u32 rx_pkts;
992 u32 calc_failure; 992 u32 calc_failure;
993} __attribute__ ((packed)); 993} __packed;
994 994
995struct acx_aes_statistics { 995struct acx_aes_statistics {
996 u32 encrypt_fail; 996 u32 encrypt_fail;
@@ -999,7 +999,7 @@ struct acx_aes_statistics {
999 u32 decrypt_packets; 999 u32 decrypt_packets;
1000 u32 encrypt_interrupt; 1000 u32 encrypt_interrupt;
1001 u32 decrypt_interrupt; 1001 u32 decrypt_interrupt;
1002} __attribute__ ((packed)); 1002} __packed;
1003 1003
1004struct acx_event_statistics { 1004struct acx_event_statistics {
1005 u32 heart_beat; 1005 u32 heart_beat;
@@ -1010,7 +1010,7 @@ struct acx_event_statistics {
1010 u32 oom_late; 1010 u32 oom_late;
1011 u32 phy_transmit_error; 1011 u32 phy_transmit_error;
1012 u32 tx_stuck; 1012 u32 tx_stuck;
1013} __attribute__ ((packed)); 1013} __packed;
1014 1014
1015struct acx_ps_statistics { 1015struct acx_ps_statistics {
1016 u32 pspoll_timeouts; 1016 u32 pspoll_timeouts;
@@ -1020,7 +1020,7 @@ struct acx_ps_statistics {
1020 u32 pspoll_max_apturn; 1020 u32 pspoll_max_apturn;
1021 u32 pspoll_utilization; 1021 u32 pspoll_utilization;
1022 u32 upsd_utilization; 1022 u32 upsd_utilization;
1023} __attribute__ ((packed)); 1023} __packed;
1024 1024
1025struct acx_rxpipe_statistics { 1025struct acx_rxpipe_statistics {
1026 u32 rx_prep_beacon_drop; 1026 u32 rx_prep_beacon_drop;
@@ -1028,7 +1028,7 @@ struct acx_rxpipe_statistics {
1028 u32 beacon_buffer_thres_host_int_trig_rx_data; 1028 u32 beacon_buffer_thres_host_int_trig_rx_data;
1029 u32 missed_beacon_host_int_trig_rx_data; 1029 u32 missed_beacon_host_int_trig_rx_data;
1030 u32 tx_xfr_host_int_trig_rx_data; 1030 u32 tx_xfr_host_int_trig_rx_data;
1031} __attribute__ ((packed)); 1031} __packed;
1032 1032
1033struct acx_statistics { 1033struct acx_statistics {
1034 struct acx_header header; 1034 struct acx_header header;
@@ -1044,7 +1044,7 @@ struct acx_statistics {
1044 struct acx_event_statistics event; 1044 struct acx_event_statistics event;
1045 struct acx_ps_statistics ps; 1045 struct acx_ps_statistics ps;
1046 struct acx_rxpipe_statistics rxpipe; 1046 struct acx_rxpipe_statistics rxpipe;
1047} __attribute__ ((packed)); 1047} __packed;
1048 1048
1049#define ACX_MAX_RATE_CLASSES 8 1049#define ACX_MAX_RATE_CLASSES 8
1050#define ACX_RATE_MASK_UNSPECIFIED 0 1050#define ACX_RATE_MASK_UNSPECIFIED 0
@@ -1063,7 +1063,7 @@ struct acx_rate_policy {
1063 1063
1064 u32 rate_class_cnt; 1064 u32 rate_class_cnt;
1065 struct acx_rate_class rate_class[ACX_MAX_RATE_CLASSES]; 1065 struct acx_rate_class rate_class[ACX_MAX_RATE_CLASSES];
1066} __attribute__ ((packed)); 1066} __packed;
1067 1067
1068struct wl1251_acx_memory { 1068struct wl1251_acx_memory {
1069 __le16 num_stations; /* number of STAs to be supported. */ 1069 __le16 num_stations; /* number of STAs to be supported. */
@@ -1082,7 +1082,7 @@ struct wl1251_acx_memory {
1082 u8 tx_min_mem_block_num; 1082 u8 tx_min_mem_block_num;
1083 u8 num_ssid_profiles; 1083 u8 num_ssid_profiles;
1084 __le16 debug_buffer_size; 1084 __le16 debug_buffer_size;
1085} __attribute__ ((packed)); 1085} __packed;
1086 1086
1087 1087
1088#define ACX_RX_DESC_MIN 1 1088#define ACX_RX_DESC_MIN 1
@@ -1094,7 +1094,7 @@ struct wl1251_acx_rx_queue_config {
1094 u8 type; 1094 u8 type;
1095 u8 priority; 1095 u8 priority;
1096 __le32 dma_address; 1096 __le32 dma_address;
1097} __attribute__ ((packed)); 1097} __packed;
1098 1098
1099#define ACX_TX_DESC_MIN 1 1099#define ACX_TX_DESC_MIN 1
1100#define ACX_TX_DESC_MAX 127 1100#define ACX_TX_DESC_MAX 127
@@ -1103,7 +1103,7 @@ struct wl1251_acx_tx_queue_config {
1103 u8 num_descs; 1103 u8 num_descs;
1104 u8 pad[2]; 1104 u8 pad[2];
1105 u8 attributes; 1105 u8 attributes;
1106} __attribute__ ((packed)); 1106} __packed;
1107 1107
1108#define MAX_TX_QUEUE_CONFIGS 5 1108#define MAX_TX_QUEUE_CONFIGS 5
1109#define MAX_TX_QUEUES 4 1109#define MAX_TX_QUEUES 4
@@ -1113,7 +1113,7 @@ struct wl1251_acx_config_memory {
1113 struct wl1251_acx_memory mem_config; 1113 struct wl1251_acx_memory mem_config;
1114 struct wl1251_acx_rx_queue_config rx_queue_config; 1114 struct wl1251_acx_rx_queue_config rx_queue_config;
1115 struct wl1251_acx_tx_queue_config tx_queue_config[MAX_TX_QUEUE_CONFIGS]; 1115 struct wl1251_acx_tx_queue_config tx_queue_config[MAX_TX_QUEUE_CONFIGS];
1116} __attribute__ ((packed)); 1116} __packed;
1117 1117
1118struct wl1251_acx_mem_map { 1118struct wl1251_acx_mem_map {
1119 struct acx_header header; 1119 struct acx_header header;
@@ -1147,7 +1147,7 @@ struct wl1251_acx_mem_map {
1147 1147
1148 /* Number of blocks FW allocated for RX packets */ 1148 /* Number of blocks FW allocated for RX packets */
1149 u32 num_rx_mem_blocks; 1149 u32 num_rx_mem_blocks;
1150} __attribute__ ((packed)); 1150} __packed;
1151 1151
1152 1152
1153struct wl1251_acx_wr_tbtt_and_dtim { 1153struct wl1251_acx_wr_tbtt_and_dtim {
@@ -1164,7 +1164,7 @@ struct wl1251_acx_wr_tbtt_and_dtim {
1164 */ 1164 */
1165 u8 dtim; 1165 u8 dtim;
1166 u8 padding; 1166 u8 padding;
1167} __attribute__ ((packed)); 1167} __packed;
1168 1168
1169struct wl1251_acx_ac_cfg { 1169struct wl1251_acx_ac_cfg {
1170 struct acx_header header; 1170 struct acx_header header;
@@ -1194,7 +1194,7 @@ struct wl1251_acx_ac_cfg {
1194 1194
1195 /* The TX Op Limit (in microseconds) for the access class. */ 1195 /* The TX Op Limit (in microseconds) for the access class. */
1196 u16 txop_limit; 1196 u16 txop_limit;
1197} __attribute__ ((packed)); 1197} __packed;
1198 1198
1199 1199
1200enum wl1251_acx_channel_type { 1200enum wl1251_acx_channel_type {
@@ -1245,7 +1245,7 @@ struct wl1251_acx_tid_cfg {
1245 1245
1246 /* not supported */ 1246 /* not supported */
1247 u32 apsdconf[2]; 1247 u32 apsdconf[2];
1248} __attribute__ ((packed)); 1248} __packed;
1249 1249
1250/************************************************************************* 1250/*************************************************************************
1251 1251
diff --git a/drivers/net/wireless/wl12xx/wl1251_cmd.h b/drivers/net/wireless/wl12xx/wl1251_cmd.h
index 4ad67cae94d2..7e70dd5a21b8 100644
--- a/drivers/net/wireless/wl12xx/wl1251_cmd.h
+++ b/drivers/net/wireless/wl12xx/wl1251_cmd.h
@@ -106,7 +106,7 @@ struct wl1251_cmd_header {
106 u16 status; 106 u16 status;
107 /* payload */ 107 /* payload */
108 u8 data[0]; 108 u8 data[0];
109} __attribute__ ((packed)); 109} __packed;
110 110
111struct wl1251_command { 111struct wl1251_command {
112 struct wl1251_cmd_header header; 112 struct wl1251_cmd_header header;
@@ -201,7 +201,7 @@ struct wl1251_scan_parameters {
201 u8 ssid_len; 201 u8 ssid_len;
202 u8 ssid[32]; 202 u8 ssid[32];
203 203
204} __attribute__ ((packed)); 204} __packed;
205 205
206struct wl1251_scan_ch_parameters { 206struct wl1251_scan_ch_parameters {
207 u32 min_duration; /* in TU */ 207 u32 min_duration; /* in TU */
@@ -218,7 +218,7 @@ struct wl1251_scan_ch_parameters {
218 u8 tx_power_att; 218 u8 tx_power_att;
219 u8 channel; 219 u8 channel;
220 u8 pad[3]; 220 u8 pad[3];
221} __attribute__ ((packed)); 221} __packed;
222 222
223/* SCAN parameters */ 223/* SCAN parameters */
224#define SCAN_MAX_NUM_OF_CHANNELS 16 224#define SCAN_MAX_NUM_OF_CHANNELS 16
@@ -228,7 +228,7 @@ struct wl1251_cmd_scan {
228 228
229 struct wl1251_scan_parameters params; 229 struct wl1251_scan_parameters params;
230 struct wl1251_scan_ch_parameters channels[SCAN_MAX_NUM_OF_CHANNELS]; 230 struct wl1251_scan_ch_parameters channels[SCAN_MAX_NUM_OF_CHANNELS];
231} __attribute__ ((packed)); 231} __packed;
232 232
233enum { 233enum {
234 BSS_TYPE_IBSS = 0, 234 BSS_TYPE_IBSS = 0,
@@ -276,14 +276,14 @@ struct cmd_join {
276 u8 tx_mgt_frame_rate; /* OBSOLETE */ 276 u8 tx_mgt_frame_rate; /* OBSOLETE */
277 u8 tx_mgt_frame_mod; /* OBSOLETE */ 277 u8 tx_mgt_frame_mod; /* OBSOLETE */
278 u8 reserved; 278 u8 reserved;
279} __attribute__ ((packed)); 279} __packed;
280 280
281struct cmd_enabledisable_path { 281struct cmd_enabledisable_path {
282 struct wl1251_cmd_header header; 282 struct wl1251_cmd_header header;
283 283
284 u8 channel; 284 u8 channel;
285 u8 padding[3]; 285 u8 padding[3];
286} __attribute__ ((packed)); 286} __packed;
287 287
288#define WL1251_MAX_TEMPLATE_SIZE 300 288#define WL1251_MAX_TEMPLATE_SIZE 300
289 289
@@ -292,7 +292,7 @@ struct wl1251_cmd_packet_template {
292 292
293 __le16 size; 293 __le16 size;
294 u8 data[0]; 294 u8 data[0];
295} __attribute__ ((packed)); 295} __packed;
296 296
297#define TIM_ELE_ID 5 297#define TIM_ELE_ID 5
298#define PARTIAL_VBM_MAX 251 298#define PARTIAL_VBM_MAX 251
@@ -304,7 +304,7 @@ struct wl1251_tim {
304 u8 dtim_period; 304 u8 dtim_period;
305 u8 bitmap_ctrl; 305 u8 bitmap_ctrl;
306 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */ 306 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */
307} __attribute__ ((packed)); 307} __packed;
308 308
309/* Virtual Bit Map update */ 309/* Virtual Bit Map update */
310struct wl1251_cmd_vbm_update { 310struct wl1251_cmd_vbm_update {
@@ -312,7 +312,7 @@ struct wl1251_cmd_vbm_update {
312 __le16 len; 312 __le16 len;
313 u8 padding[2]; 313 u8 padding[2];
314 struct wl1251_tim tim; 314 struct wl1251_tim tim;
315} __attribute__ ((packed)); 315} __packed;
316 316
317enum wl1251_cmd_ps_mode { 317enum wl1251_cmd_ps_mode {
318 STATION_ACTIVE_MODE, 318 STATION_ACTIVE_MODE,
@@ -333,7 +333,7 @@ struct wl1251_cmd_ps_params {
333 u8 hang_over_period; 333 u8 hang_over_period;
334 u16 null_data_rate; 334 u16 null_data_rate;
335 u8 pad[2]; 335 u8 pad[2];
336} __attribute__ ((packed)); 336} __packed;
337 337
338struct wl1251_cmd_trigger_scan_to { 338struct wl1251_cmd_trigger_scan_to {
339 struct wl1251_cmd_header header; 339 struct wl1251_cmd_header header;
@@ -411,7 +411,7 @@ struct wl1251_cmd_set_keys {
411 u8 key[MAX_KEY_SIZE]; 411 u8 key[MAX_KEY_SIZE];
412 u16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY]; 412 u16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY];
413 u32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY]; 413 u32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY];
414} __attribute__ ((packed)); 414} __packed;
415 415
416 416
417#endif /* __WL1251_CMD_H__ */ 417#endif /* __WL1251_CMD_H__ */
diff --git a/drivers/net/wireless/wl12xx/wl1251_event.h b/drivers/net/wireless/wl12xx/wl1251_event.h
index be0ac54d6246..f48a2b66bc5a 100644
--- a/drivers/net/wireless/wl12xx/wl1251_event.h
+++ b/drivers/net/wireless/wl12xx/wl1251_event.h
@@ -82,7 +82,7 @@ struct event_debug_report {
82 u32 report_1; 82 u32 report_1;
83 u32 report_2; 83 u32 report_2;
84 u32 report_3; 84 u32 report_3;
85} __attribute__ ((packed)); 85} __packed;
86 86
87struct event_mailbox { 87struct event_mailbox {
88 u32 events_vector; 88 u32 events_vector;
@@ -112,7 +112,7 @@ struct event_mailbox {
112 struct event_debug_report report; 112 struct event_debug_report report;
113 u8 average_snr_level; 113 u8 average_snr_level;
114 u8 padding[19]; 114 u8 padding[19];
115} __attribute__ ((packed)); 115} __packed;
116 116
117int wl1251_event_unmask(struct wl1251 *wl); 117int wl1251_event_unmask(struct wl1251 *wl);
118void wl1251_event_mbox_config(struct wl1251 *wl); 118void wl1251_event_mbox_config(struct wl1251 *wl);
diff --git a/drivers/net/wireless/wl12xx/wl1251_rx.h b/drivers/net/wireless/wl12xx/wl1251_rx.h
index 563a3fde40fb..da4e53406a0e 100644
--- a/drivers/net/wireless/wl12xx/wl1251_rx.h
+++ b/drivers/net/wireless/wl12xx/wl1251_rx.h
@@ -117,7 +117,7 @@ struct wl1251_rx_descriptor {
117 s8 rssi; /* in dB */ 117 s8 rssi; /* in dB */
118 u8 rcpi; /* in dB */ 118 u8 rcpi; /* in dB */
119 u8 snr; /* in dB */ 119 u8 snr; /* in dB */
120} __attribute__ ((packed)); 120} __packed;
121 121
122void wl1251_rx(struct wl1251 *wl); 122void wl1251_rx(struct wl1251 *wl);
123 123
diff --git a/drivers/net/wireless/wl12xx/wl1251_tx.h b/drivers/net/wireless/wl12xx/wl1251_tx.h
index 55856c6bb97a..65c4be8c2e80 100644
--- a/drivers/net/wireless/wl12xx/wl1251_tx.h
+++ b/drivers/net/wireless/wl12xx/wl1251_tx.h
@@ -109,7 +109,7 @@ struct tx_control {
109 unsigned xfer_pad:1; 109 unsigned xfer_pad:1;
110 110
111 unsigned reserved:7; 111 unsigned reserved:7;
112} __attribute__ ((packed)); 112} __packed;
113 113
114 114
115struct tx_double_buffer_desc { 115struct tx_double_buffer_desc {
@@ -156,7 +156,7 @@ struct tx_double_buffer_desc {
156 u8 num_mem_blocks; 156 u8 num_mem_blocks;
157 157
158 u8 reserved; 158 u8 reserved;
159} __attribute__ ((packed)); 159} __packed;
160 160
161enum { 161enum {
162 TX_SUCCESS = 0, 162 TX_SUCCESS = 0,
@@ -208,7 +208,7 @@ struct tx_result {
208 208
209 /* See done_1 */ 209 /* See done_1 */
210 u8 done_2; 210 u8 done_2;
211} __attribute__ ((packed)); 211} __packed;
212 212
213static inline int wl1251_tx_get_queue(int queue) 213static inline int wl1251_tx_get_queue(int queue)
214{ 214{
diff --git a/drivers/net/wireless/wl12xx/wl1271.h b/drivers/net/wireless/wl12xx/wl1271.h
index 6f1b6b5640c0..9af14646c278 100644
--- a/drivers/net/wireless/wl12xx/wl1271.h
+++ b/drivers/net/wireless/wl12xx/wl1271.h
@@ -141,7 +141,7 @@ struct wl1271_nvs_file {
141 u8 dyn_radio_params[WL1271_NVS_FEM_COUNT] 141 u8 dyn_radio_params[WL1271_NVS_FEM_COUNT]
142 [WL1271_NVS_DYN_RADIO_PARAMS_SIZE_PADDED]; 142 [WL1271_NVS_DYN_RADIO_PARAMS_SIZE_PADDED];
143 u8 ini_spare[WL1271_NVS_INI_SPARE_SIZE]; 143 u8 ini_spare[WL1271_NVS_INI_SPARE_SIZE];
144} __attribute__ ((packed)); 144} __packed;
145 145
146/* 146/*
147 * Enable/disable 802.11a support for WL1273 147 * Enable/disable 802.11a support for WL1273
@@ -317,7 +317,7 @@ struct wl1271_fw_status {
317 __le32 tx_released_blks[NUM_TX_QUEUES]; 317 __le32 tx_released_blks[NUM_TX_QUEUES];
318 __le32 fw_localtime; 318 __le32 fw_localtime;
319 __le32 padding[2]; 319 __le32 padding[2];
320} __attribute__ ((packed)); 320} __packed;
321 321
322struct wl1271_rx_mem_pool_addr { 322struct wl1271_rx_mem_pool_addr {
323 u32 addr; 323 u32 addr;
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.h b/drivers/net/wireless/wl12xx/wl1271_acx.h
index 420e7e2fc021..4c87e601df2f 100644
--- a/drivers/net/wireless/wl12xx/wl1271_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_acx.h
@@ -75,7 +75,7 @@ struct acx_header {
75 75
76 /* payload length (not including headers */ 76 /* payload length (not including headers */
77 __le16 len; 77 __le16 len;
78} __attribute__ ((packed)); 78} __packed;
79 79
80struct acx_error_counter { 80struct acx_error_counter {
81 struct acx_header header; 81 struct acx_header header;
@@ -98,7 +98,7 @@ struct acx_error_counter {
98 /* the number of missed sequence numbers in the squentially */ 98 /* the number of missed sequence numbers in the squentially */
99 /* values of frames seq numbers */ 99 /* values of frames seq numbers */
100 __le32 seq_num_miss; 100 __le32 seq_num_miss;
101} __attribute__ ((packed)); 101} __packed;
102 102
103struct acx_revision { 103struct acx_revision {
104 struct acx_header header; 104 struct acx_header header;
@@ -127,7 +127,7 @@ struct acx_revision {
127 * bits 24 - 31: Chip ID - The WiLink chip ID. 127 * bits 24 - 31: Chip ID - The WiLink chip ID.
128 */ 128 */
129 __le32 hw_version; 129 __le32 hw_version;
130} __attribute__ ((packed)); 130} __packed;
131 131
132enum wl1271_psm_mode { 132enum wl1271_psm_mode {
133 /* Active mode */ 133 /* Active mode */
@@ -149,7 +149,7 @@ struct acx_sleep_auth {
149 /* 2 - ELP mode: Deep / Max sleep*/ 149 /* 2 - ELP mode: Deep / Max sleep*/
150 u8 sleep_auth; 150 u8 sleep_auth;
151 u8 padding[3]; 151 u8 padding[3];
152} __attribute__ ((packed)); 152} __packed;
153 153
154enum { 154enum {
155 HOSTIF_PCI_MASTER_HOST_INDIRECT, 155 HOSTIF_PCI_MASTER_HOST_INDIRECT,
@@ -187,7 +187,7 @@ struct acx_rx_msdu_lifetime {
187 * firmware discards the MSDU. 187 * firmware discards the MSDU.
188 */ 188 */
189 __le32 lifetime; 189 __le32 lifetime;
190} __attribute__ ((packed)); 190} __packed;
191 191
192/* 192/*
193 * RX Config Options Table 193 * RX Config Options Table
@@ -275,13 +275,13 @@ struct acx_rx_config {
275 275
276 __le32 config_options; 276 __le32 config_options;
277 __le32 filter_options; 277 __le32 filter_options;
278} __attribute__ ((packed)); 278} __packed;
279 279
280struct acx_packet_detection { 280struct acx_packet_detection {
281 struct acx_header header; 281 struct acx_header header;
282 282
283 __le32 threshold; 283 __le32 threshold;
284} __attribute__ ((packed)); 284} __packed;
285 285
286 286
287enum acx_slot_type { 287enum acx_slot_type {
@@ -299,7 +299,7 @@ struct acx_slot {
299 u8 wone_index; /* Reserved */ 299 u8 wone_index; /* Reserved */
300 u8 slot_time; 300 u8 slot_time;
301 u8 reserved[6]; 301 u8 reserved[6];
302} __attribute__ ((packed)); 302} __packed;
303 303
304 304
305#define ACX_MC_ADDRESS_GROUP_MAX (8) 305#define ACX_MC_ADDRESS_GROUP_MAX (8)
@@ -312,21 +312,21 @@ struct acx_dot11_grp_addr_tbl {
312 u8 num_groups; 312 u8 num_groups;
313 u8 pad[2]; 313 u8 pad[2];
314 u8 mac_table[ADDRESS_GROUP_MAX_LEN]; 314 u8 mac_table[ADDRESS_GROUP_MAX_LEN];
315} __attribute__ ((packed)); 315} __packed;
316 316
317struct acx_rx_timeout { 317struct acx_rx_timeout {
318 struct acx_header header; 318 struct acx_header header;
319 319
320 __le16 ps_poll_timeout; 320 __le16 ps_poll_timeout;
321 __le16 upsd_timeout; 321 __le16 upsd_timeout;
322} __attribute__ ((packed)); 322} __packed;
323 323
324struct acx_rts_threshold { 324struct acx_rts_threshold {
325 struct acx_header header; 325 struct acx_header header;
326 326
327 __le16 threshold; 327 __le16 threshold;
328 u8 pad[2]; 328 u8 pad[2];
329} __attribute__ ((packed)); 329} __packed;
330 330
331struct acx_beacon_filter_option { 331struct acx_beacon_filter_option {
332 struct acx_header header; 332 struct acx_header header;
@@ -342,7 +342,7 @@ struct acx_beacon_filter_option {
342 */ 342 */
343 u8 max_num_beacons; 343 u8 max_num_beacons;
344 u8 pad[2]; 344 u8 pad[2];
345} __attribute__ ((packed)); 345} __packed;
346 346
347/* 347/*
348 * ACXBeaconFilterEntry (not 221) 348 * ACXBeaconFilterEntry (not 221)
@@ -383,21 +383,21 @@ struct acx_beacon_filter_ie_table {
383 u8 num_ie; 383 u8 num_ie;
384 u8 pad[3]; 384 u8 pad[3];
385 u8 table[BEACON_FILTER_TABLE_MAX_SIZE]; 385 u8 table[BEACON_FILTER_TABLE_MAX_SIZE];
386} __attribute__ ((packed)); 386} __packed;
387 387
388struct acx_conn_monit_params { 388struct acx_conn_monit_params {
389 struct acx_header header; 389 struct acx_header header;
390 390
391 __le32 synch_fail_thold; /* number of beacons missed */ 391 __le32 synch_fail_thold; /* number of beacons missed */
392 __le32 bss_lose_timeout; /* number of TU's from synch fail */ 392 __le32 bss_lose_timeout; /* number of TU's from synch fail */
393} __attribute__ ((packed)); 393} __packed;
394 394
395struct acx_bt_wlan_coex { 395struct acx_bt_wlan_coex {
396 struct acx_header header; 396 struct acx_header header;
397 397
398 u8 enable; 398 u8 enable;
399 u8 pad[3]; 399 u8 pad[3];
400} __attribute__ ((packed)); 400} __packed;
401 401
402struct acx_bt_wlan_coex_param { 402struct acx_bt_wlan_coex_param {
403 struct acx_header header; 403 struct acx_header header;
@@ -405,7 +405,7 @@ struct acx_bt_wlan_coex_param {
405 __le32 params[CONF_SG_PARAMS_MAX]; 405 __le32 params[CONF_SG_PARAMS_MAX];
406 u8 param_idx; 406 u8 param_idx;
407 u8 padding[3]; 407 u8 padding[3];
408} __attribute__ ((packed)); 408} __packed;
409 409
410struct acx_dco_itrim_params { 410struct acx_dco_itrim_params {
411 struct acx_header header; 411 struct acx_header header;
@@ -413,7 +413,7 @@ struct acx_dco_itrim_params {
413 u8 enable; 413 u8 enable;
414 u8 padding[3]; 414 u8 padding[3];
415 __le32 timeout; 415 __le32 timeout;
416} __attribute__ ((packed)); 416} __packed;
417 417
418struct acx_energy_detection { 418struct acx_energy_detection {
419 struct acx_header header; 419 struct acx_header header;
@@ -422,7 +422,7 @@ struct acx_energy_detection {
422 __le16 rx_cca_threshold; 422 __le16 rx_cca_threshold;
423 u8 tx_energy_detection; 423 u8 tx_energy_detection;
424 u8 pad; 424 u8 pad;
425} __attribute__ ((packed)); 425} __packed;
426 426
427struct acx_beacon_broadcast { 427struct acx_beacon_broadcast {
428 struct acx_header header; 428 struct acx_header header;
@@ -436,14 +436,14 @@ struct acx_beacon_broadcast {
436 /* Consecutive PS Poll failures before updating the host */ 436 /* Consecutive PS Poll failures before updating the host */
437 u8 ps_poll_threshold; 437 u8 ps_poll_threshold;
438 u8 pad[2]; 438 u8 pad[2];
439} __attribute__ ((packed)); 439} __packed;
440 440
441struct acx_event_mask { 441struct acx_event_mask {
442 struct acx_header header; 442 struct acx_header header;
443 443
444 __le32 event_mask; 444 __le32 event_mask;
445 __le32 high_event_mask; /* Unused */ 445 __le32 high_event_mask; /* Unused */
446} __attribute__ ((packed)); 446} __packed;
447 447
448#define CFG_RX_FCS BIT(2) 448#define CFG_RX_FCS BIT(2)
449#define CFG_RX_ALL_GOOD BIT(3) 449#define CFG_RX_ALL_GOOD BIT(3)
@@ -488,14 +488,14 @@ struct acx_feature_config {
488 488
489 __le32 options; 489 __le32 options;
490 __le32 data_flow_options; 490 __le32 data_flow_options;
491} __attribute__ ((packed)); 491} __packed;
492 492
493struct acx_current_tx_power { 493struct acx_current_tx_power {
494 struct acx_header header; 494 struct acx_header header;
495 495
496 u8 current_tx_power; 496 u8 current_tx_power;
497 u8 padding[3]; 497 u8 padding[3];
498} __attribute__ ((packed)); 498} __packed;
499 499
500struct acx_wake_up_condition { 500struct acx_wake_up_condition {
501 struct acx_header header; 501 struct acx_header header;
@@ -503,7 +503,7 @@ struct acx_wake_up_condition {
503 u8 wake_up_event; /* Only one bit can be set */ 503 u8 wake_up_event; /* Only one bit can be set */
504 u8 listen_interval; 504 u8 listen_interval;
505 u8 pad[2]; 505 u8 pad[2];
506} __attribute__ ((packed)); 506} __packed;
507 507
508struct acx_aid { 508struct acx_aid {
509 struct acx_header header; 509 struct acx_header header;
@@ -513,7 +513,7 @@ struct acx_aid {
513 */ 513 */
514 __le16 aid; 514 __le16 aid;
515 u8 pad[2]; 515 u8 pad[2];
516} __attribute__ ((packed)); 516} __packed;
517 517
518enum acx_preamble_type { 518enum acx_preamble_type {
519 ACX_PREAMBLE_LONG = 0, 519 ACX_PREAMBLE_LONG = 0,
@@ -529,7 +529,7 @@ struct acx_preamble {
529 */ 529 */
530 u8 preamble; 530 u8 preamble;
531 u8 padding[3]; 531 u8 padding[3];
532} __attribute__ ((packed)); 532} __packed;
533 533
534enum acx_ctsprotect_type { 534enum acx_ctsprotect_type {
535 CTSPROTECT_DISABLE = 0, 535 CTSPROTECT_DISABLE = 0,
@@ -540,11 +540,11 @@ struct acx_ctsprotect {
540 struct acx_header header; 540 struct acx_header header;
541 u8 ctsprotect; 541 u8 ctsprotect;
542 u8 padding[3]; 542 u8 padding[3];
543} __attribute__ ((packed)); 543} __packed;
544 544
545struct acx_tx_statistics { 545struct acx_tx_statistics {
546 __le32 internal_desc_overflow; 546 __le32 internal_desc_overflow;
547} __attribute__ ((packed)); 547} __packed;
548 548
549struct acx_rx_statistics { 549struct acx_rx_statistics {
550 __le32 out_of_mem; 550 __le32 out_of_mem;
@@ -555,14 +555,14 @@ struct acx_rx_statistics {
555 __le32 xfr_hint_trig; 555 __le32 xfr_hint_trig;
556 __le32 path_reset; 556 __le32 path_reset;
557 __le32 reset_counter; 557 __le32 reset_counter;
558} __attribute__ ((packed)); 558} __packed;
559 559
560struct acx_dma_statistics { 560struct acx_dma_statistics {
561 __le32 rx_requested; 561 __le32 rx_requested;
562 __le32 rx_errors; 562 __le32 rx_errors;
563 __le32 tx_requested; 563 __le32 tx_requested;
564 __le32 tx_errors; 564 __le32 tx_errors;
565} __attribute__ ((packed)); 565} __packed;
566 566
567struct acx_isr_statistics { 567struct acx_isr_statistics {
568 /* host command complete */ 568 /* host command complete */
@@ -621,7 +621,7 @@ struct acx_isr_statistics {
621 621
622 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */ 622 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */
623 __le32 low_rssi; 623 __le32 low_rssi;
624} __attribute__ ((packed)); 624} __packed;
625 625
626struct acx_wep_statistics { 626struct acx_wep_statistics {
627 /* WEP address keys configured */ 627 /* WEP address keys configured */
@@ -643,7 +643,7 @@ struct acx_wep_statistics {
643 643
644 /* WEP decrypt interrupts */ 644 /* WEP decrypt interrupts */
645 __le32 interrupt; 645 __le32 interrupt;
646} __attribute__ ((packed)); 646} __packed;
647 647
648#define ACX_MISSED_BEACONS_SPREAD 10 648#define ACX_MISSED_BEACONS_SPREAD 10
649 649
@@ -703,12 +703,12 @@ struct acx_pwr_statistics {
703 703
704 /* the number of beacons in awake mode */ 704 /* the number of beacons in awake mode */
705 __le32 rcvd_awake_beacons; 705 __le32 rcvd_awake_beacons;
706} __attribute__ ((packed)); 706} __packed;
707 707
708struct acx_mic_statistics { 708struct acx_mic_statistics {
709 __le32 rx_pkts; 709 __le32 rx_pkts;
710 __le32 calc_failure; 710 __le32 calc_failure;
711} __attribute__ ((packed)); 711} __packed;
712 712
713struct acx_aes_statistics { 713struct acx_aes_statistics {
714 __le32 encrypt_fail; 714 __le32 encrypt_fail;
@@ -717,7 +717,7 @@ struct acx_aes_statistics {
717 __le32 decrypt_packets; 717 __le32 decrypt_packets;
718 __le32 encrypt_interrupt; 718 __le32 encrypt_interrupt;
719 __le32 decrypt_interrupt; 719 __le32 decrypt_interrupt;
720} __attribute__ ((packed)); 720} __packed;
721 721
722struct acx_event_statistics { 722struct acx_event_statistics {
723 __le32 heart_beat; 723 __le32 heart_beat;
@@ -728,7 +728,7 @@ struct acx_event_statistics {
728 __le32 oom_late; 728 __le32 oom_late;
729 __le32 phy_transmit_error; 729 __le32 phy_transmit_error;
730 __le32 tx_stuck; 730 __le32 tx_stuck;
731} __attribute__ ((packed)); 731} __packed;
732 732
733struct acx_ps_statistics { 733struct acx_ps_statistics {
734 __le32 pspoll_timeouts; 734 __le32 pspoll_timeouts;
@@ -738,7 +738,7 @@ struct acx_ps_statistics {
738 __le32 pspoll_max_apturn; 738 __le32 pspoll_max_apturn;
739 __le32 pspoll_utilization; 739 __le32 pspoll_utilization;
740 __le32 upsd_utilization; 740 __le32 upsd_utilization;
741} __attribute__ ((packed)); 741} __packed;
742 742
743struct acx_rxpipe_statistics { 743struct acx_rxpipe_statistics {
744 __le32 rx_prep_beacon_drop; 744 __le32 rx_prep_beacon_drop;
@@ -746,7 +746,7 @@ struct acx_rxpipe_statistics {
746 __le32 beacon_buffer_thres_host_int_trig_rx_data; 746 __le32 beacon_buffer_thres_host_int_trig_rx_data;
747 __le32 missed_beacon_host_int_trig_rx_data; 747 __le32 missed_beacon_host_int_trig_rx_data;
748 __le32 tx_xfr_host_int_trig_rx_data; 748 __le32 tx_xfr_host_int_trig_rx_data;
749} __attribute__ ((packed)); 749} __packed;
750 750
751struct acx_statistics { 751struct acx_statistics {
752 struct acx_header header; 752 struct acx_header header;
@@ -762,7 +762,7 @@ struct acx_statistics {
762 struct acx_event_statistics event; 762 struct acx_event_statistics event;
763 struct acx_ps_statistics ps; 763 struct acx_ps_statistics ps;
764 struct acx_rxpipe_statistics rxpipe; 764 struct acx_rxpipe_statistics rxpipe;
765} __attribute__ ((packed)); 765} __packed;
766 766
767struct acx_rate_class { 767struct acx_rate_class {
768 __le32 enabled_rates; 768 __le32 enabled_rates;
@@ -780,7 +780,7 @@ struct acx_rate_policy {
780 780
781 __le32 rate_class_cnt; 781 __le32 rate_class_cnt;
782 struct acx_rate_class rate_class[CONF_TX_MAX_RATE_CLASSES]; 782 struct acx_rate_class rate_class[CONF_TX_MAX_RATE_CLASSES];
783} __attribute__ ((packed)); 783} __packed;
784 784
785struct acx_ac_cfg { 785struct acx_ac_cfg {
786 struct acx_header header; 786 struct acx_header header;
@@ -790,7 +790,7 @@ struct acx_ac_cfg {
790 u8 aifsn; 790 u8 aifsn;
791 u8 reserved; 791 u8 reserved;
792 __le16 tx_op_limit; 792 __le16 tx_op_limit;
793} __attribute__ ((packed)); 793} __packed;
794 794
795struct acx_tid_config { 795struct acx_tid_config {
796 struct acx_header header; 796 struct acx_header header;
@@ -801,19 +801,19 @@ struct acx_tid_config {
801 u8 ack_policy; 801 u8 ack_policy;
802 u8 padding[3]; 802 u8 padding[3];
803 __le32 apsd_conf[2]; 803 __le32 apsd_conf[2];
804} __attribute__ ((packed)); 804} __packed;
805 805
806struct acx_frag_threshold { 806struct acx_frag_threshold {
807 struct acx_header header; 807 struct acx_header header;
808 __le16 frag_threshold; 808 __le16 frag_threshold;
809 u8 padding[2]; 809 u8 padding[2];
810} __attribute__ ((packed)); 810} __packed;
811 811
812struct acx_tx_config_options { 812struct acx_tx_config_options {
813 struct acx_header header; 813 struct acx_header header;
814 __le16 tx_compl_timeout; /* msec */ 814 __le16 tx_compl_timeout; /* msec */
815 __le16 tx_compl_threshold; /* number of packets */ 815 __le16 tx_compl_threshold; /* number of packets */
816} __attribute__ ((packed)); 816} __packed;
817 817
818#define ACX_RX_MEM_BLOCKS 70 818#define ACX_RX_MEM_BLOCKS 70
819#define ACX_TX_MIN_MEM_BLOCKS 40 819#define ACX_TX_MIN_MEM_BLOCKS 40
@@ -828,7 +828,7 @@ struct wl1271_acx_config_memory {
828 u8 num_stations; 828 u8 num_stations;
829 u8 num_ssid_profiles; 829 u8 num_ssid_profiles;
830 __le32 total_tx_descriptors; 830 __le32 total_tx_descriptors;
831} __attribute__ ((packed)); 831} __packed;
832 832
833struct wl1271_acx_mem_map { 833struct wl1271_acx_mem_map {
834 struct acx_header header; 834 struct acx_header header;
@@ -872,7 +872,7 @@ struct wl1271_acx_mem_map {
872 u8 *rx_cbuf; 872 u8 *rx_cbuf;
873 __le32 rx_ctrl; 873 __le32 rx_ctrl;
874 __le32 tx_ctrl; 874 __le32 tx_ctrl;
875} __attribute__ ((packed)); 875} __packed;
876 876
877struct wl1271_acx_rx_config_opt { 877struct wl1271_acx_rx_config_opt {
878 struct acx_header header; 878 struct acx_header header;
@@ -882,7 +882,7 @@ struct wl1271_acx_rx_config_opt {
882 __le16 timeout; 882 __le16 timeout;
883 u8 queue_type; 883 u8 queue_type;
884 u8 reserved; 884 u8 reserved;
885} __attribute__ ((packed)); 885} __packed;
886 886
887 887
888struct wl1271_acx_bet_enable { 888struct wl1271_acx_bet_enable {
@@ -891,7 +891,7 @@ struct wl1271_acx_bet_enable {
891 u8 enable; 891 u8 enable;
892 u8 max_consecutive; 892 u8 max_consecutive;
893 u8 padding[2]; 893 u8 padding[2];
894} __attribute__ ((packed)); 894} __packed;
895 895
896#define ACX_IPV4_VERSION 4 896#define ACX_IPV4_VERSION 4
897#define ACX_IPV6_VERSION 6 897#define ACX_IPV6_VERSION 6
@@ -905,7 +905,7 @@ struct wl1271_acx_arp_filter {
905 requests directed to this IP address will pass 905 requests directed to this IP address will pass
906 through. For IPv4, the first four bytes are 906 through. For IPv4, the first four bytes are
907 used. */ 907 used. */
908} __attribute__((packed)); 908} __packed;
909 909
910struct wl1271_acx_pm_config { 910struct wl1271_acx_pm_config {
911 struct acx_header header; 911 struct acx_header header;
@@ -913,14 +913,14 @@ struct wl1271_acx_pm_config {
913 __le32 host_clk_settling_time; 913 __le32 host_clk_settling_time;
914 u8 host_fast_wakeup_support; 914 u8 host_fast_wakeup_support;
915 u8 padding[3]; 915 u8 padding[3];
916} __attribute__ ((packed)); 916} __packed;
917 917
918struct wl1271_acx_keep_alive_mode { 918struct wl1271_acx_keep_alive_mode {
919 struct acx_header header; 919 struct acx_header header;
920 920
921 u8 enabled; 921 u8 enabled;
922 u8 padding[3]; 922 u8 padding[3];
923} __attribute__ ((packed)); 923} __packed;
924 924
925enum { 925enum {
926 ACX_KEEP_ALIVE_NO_TX = 0, 926 ACX_KEEP_ALIVE_NO_TX = 0,
@@ -940,7 +940,7 @@ struct wl1271_acx_keep_alive_config {
940 u8 tpl_validation; 940 u8 tpl_validation;
941 u8 trigger; 941 u8 trigger;
942 u8 padding; 942 u8 padding;
943} __attribute__ ((packed)); 943} __packed;
944 944
945enum { 945enum {
946 WL1271_ACX_TRIG_TYPE_LEVEL = 0, 946 WL1271_ACX_TRIG_TYPE_LEVEL = 0,
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.h b/drivers/net/wireless/wl12xx/wl1271_cmd.h
index f2820b42a943..d88faf9d2642 100644
--- a/drivers/net/wireless/wl12xx/wl1271_cmd.h
+++ b/drivers/net/wireless/wl12xx/wl1271_cmd.h
@@ -136,14 +136,14 @@ struct wl1271_cmd_header {
136 __le16 status; 136 __le16 status;
137 /* payload */ 137 /* payload */
138 u8 data[0]; 138 u8 data[0];
139} __attribute__ ((packed)); 139} __packed;
140 140
141#define WL1271_CMD_MAX_PARAMS 572 141#define WL1271_CMD_MAX_PARAMS 572
142 142
143struct wl1271_command { 143struct wl1271_command {
144 struct wl1271_cmd_header header; 144 struct wl1271_cmd_header header;
145 u8 parameters[WL1271_CMD_MAX_PARAMS]; 145 u8 parameters[WL1271_CMD_MAX_PARAMS];
146} __attribute__ ((packed)); 146} __packed;
147 147
148enum { 148enum {
149 CMD_MAILBOX_IDLE = 0, 149 CMD_MAILBOX_IDLE = 0,
@@ -196,7 +196,7 @@ struct cmd_read_write_memory {
196 of this field is the Host in WRITE command or the Wilink in READ 196 of this field is the Host in WRITE command or the Wilink in READ
197 command. */ 197 command. */
198 u8 value[MAX_READ_SIZE]; 198 u8 value[MAX_READ_SIZE];
199} __attribute__ ((packed)); 199} __packed;
200 200
201#define CMDMBOX_HEADER_LEN 4 201#define CMDMBOX_HEADER_LEN 4
202#define CMDMBOX_INFO_ELEM_HEADER_LEN 4 202#define CMDMBOX_INFO_ELEM_HEADER_LEN 4
@@ -243,14 +243,14 @@ struct wl1271_cmd_join {
243 u8 ssid[IW_ESSID_MAX_SIZE]; 243 u8 ssid[IW_ESSID_MAX_SIZE];
244 u8 ctrl; /* JOIN_CMD_CTRL_* */ 244 u8 ctrl; /* JOIN_CMD_CTRL_* */
245 u8 reserved[3]; 245 u8 reserved[3];
246} __attribute__ ((packed)); 246} __packed;
247 247
248struct cmd_enabledisable_path { 248struct cmd_enabledisable_path {
249 struct wl1271_cmd_header header; 249 struct wl1271_cmd_header header;
250 250
251 u8 channel; 251 u8 channel;
252 u8 padding[3]; 252 u8 padding[3];
253} __attribute__ ((packed)); 253} __packed;
254 254
255#define WL1271_RATE_AUTOMATIC 0 255#define WL1271_RATE_AUTOMATIC 0
256 256
@@ -266,7 +266,7 @@ struct wl1271_cmd_template_set {
266 u8 aflags; 266 u8 aflags;
267 u8 reserved; 267 u8 reserved;
268 u8 template_data[WL1271_CMD_TEMPL_MAX_SIZE]; 268 u8 template_data[WL1271_CMD_TEMPL_MAX_SIZE];
269} __attribute__ ((packed)); 269} __packed;
270 270
271#define TIM_ELE_ID 5 271#define TIM_ELE_ID 5
272#define PARTIAL_VBM_MAX 251 272#define PARTIAL_VBM_MAX 251
@@ -278,7 +278,7 @@ struct wl1271_tim {
278 u8 dtim_period; 278 u8 dtim_period;
279 u8 bitmap_ctrl; 279 u8 bitmap_ctrl;
280 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */ 280 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */
281} __attribute__ ((packed)); 281} __packed;
282 282
283enum wl1271_cmd_ps_mode { 283enum wl1271_cmd_ps_mode {
284 STATION_ACTIVE_MODE, 284 STATION_ACTIVE_MODE,
@@ -298,7 +298,7 @@ struct wl1271_cmd_ps_params {
298 */ 298 */
299 u8 hang_over_period; 299 u8 hang_over_period;
300 __le32 null_data_rate; 300 __le32 null_data_rate;
301} __attribute__ ((packed)); 301} __packed;
302 302
303/* HW encryption keys */ 303/* HW encryption keys */
304#define NUM_ACCESS_CATEGORIES_COPY 4 304#define NUM_ACCESS_CATEGORIES_COPY 4
@@ -348,7 +348,7 @@ struct wl1271_cmd_set_keys {
348 u8 key[MAX_KEY_SIZE]; 348 u8 key[MAX_KEY_SIZE];
349 __le16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY]; 349 __le16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY];
350 __le32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY]; 350 __le32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY];
351} __attribute__ ((packed)); 351} __packed;
352 352
353 353
354#define WL1271_SCAN_MAX_CHANNELS 24 354#define WL1271_SCAN_MAX_CHANNELS 24
@@ -385,7 +385,7 @@ struct basic_scan_params {
385 u8 use_ssid_list; 385 u8 use_ssid_list;
386 u8 scan_tag; 386 u8 scan_tag;
387 u8 padding2; 387 u8 padding2;
388} __attribute__ ((packed)); 388} __packed;
389 389
390struct basic_scan_channel_params { 390struct basic_scan_channel_params {
391 /* Duration in TU to wait for frames on a channel for active scan */ 391 /* Duration in TU to wait for frames on a channel for active scan */
@@ -400,25 +400,25 @@ struct basic_scan_channel_params {
400 u8 dfs_candidate; 400 u8 dfs_candidate;
401 u8 activity_detected; 401 u8 activity_detected;
402 u8 pad; 402 u8 pad;
403} __attribute__ ((packed)); 403} __packed;
404 404
405struct wl1271_cmd_scan { 405struct wl1271_cmd_scan {
406 struct wl1271_cmd_header header; 406 struct wl1271_cmd_header header;
407 407
408 struct basic_scan_params params; 408 struct basic_scan_params params;
409 struct basic_scan_channel_params channels[WL1271_SCAN_MAX_CHANNELS]; 409 struct basic_scan_channel_params channels[WL1271_SCAN_MAX_CHANNELS];
410} __attribute__ ((packed)); 410} __packed;
411 411
412struct wl1271_cmd_trigger_scan_to { 412struct wl1271_cmd_trigger_scan_to {
413 struct wl1271_cmd_header header; 413 struct wl1271_cmd_header header;
414 414
415 __le32 timeout; 415 __le32 timeout;
416} __attribute__ ((packed)); 416} __packed;
417 417
418struct wl1271_cmd_test_header { 418struct wl1271_cmd_test_header {
419 u8 id; 419 u8 id;
420 u8 padding[3]; 420 u8 padding[3];
421} __attribute__ ((packed)); 421} __packed;
422 422
423enum wl1271_channel_tune_bands { 423enum wl1271_channel_tune_bands {
424 WL1271_CHANNEL_TUNE_BAND_2_4, 424 WL1271_CHANNEL_TUNE_BAND_2_4,
@@ -441,7 +441,7 @@ struct wl1271_general_parms_cmd {
441 441
442 u8 params[WL1271_NVS_GENERAL_PARAMS_SIZE]; 442 u8 params[WL1271_NVS_GENERAL_PARAMS_SIZE];
443 s8 reserved[23]; 443 s8 reserved[23];
444} __attribute__ ((packed)); 444} __packed;
445 445
446#define WL1271_STAT_RADIO_PARAMS_5_SIZE 29 446#define WL1271_STAT_RADIO_PARAMS_5_SIZE 29
447#define WL1271_DYN_RADIO_PARAMS_5_SIZE 104 447#define WL1271_DYN_RADIO_PARAMS_5_SIZE 104
@@ -457,7 +457,7 @@ struct wl1271_radio_parms_cmd {
457 u8 dyn_radio_params[WL1271_NVS_DYN_RADIO_PARAMS_SIZE]; 457 u8 dyn_radio_params[WL1271_NVS_DYN_RADIO_PARAMS_SIZE];
458 u8 reserved; 458 u8 reserved;
459 u8 dyn_radio_params_5[WL1271_DYN_RADIO_PARAMS_5_SIZE]; 459 u8 dyn_radio_params_5[WL1271_DYN_RADIO_PARAMS_5_SIZE];
460} __attribute__ ((packed)); 460} __packed;
461 461
462struct wl1271_cmd_cal_channel_tune { 462struct wl1271_cmd_cal_channel_tune {
463 struct wl1271_cmd_header header; 463 struct wl1271_cmd_header header;
@@ -468,7 +468,7 @@ struct wl1271_cmd_cal_channel_tune {
468 u8 channel; 468 u8 channel;
469 469
470 __le16 radio_status; 470 __le16 radio_status;
471} __attribute__ ((packed)); 471} __packed;
472 472
473struct wl1271_cmd_cal_update_ref_point { 473struct wl1271_cmd_cal_update_ref_point {
474 struct wl1271_cmd_header header; 474 struct wl1271_cmd_header header;
@@ -479,7 +479,7 @@ struct wl1271_cmd_cal_update_ref_point {
479 __le32 ref_detector; 479 __le32 ref_detector;
480 u8 sub_band; 480 u8 sub_band;
481 u8 padding[3]; 481 u8 padding[3];
482} __attribute__ ((packed)); 482} __packed;
483 483
484#define MAX_TLV_LENGTH 400 484#define MAX_TLV_LENGTH 400
485#define MAX_NVS_VERSION_LENGTH 12 485#define MAX_NVS_VERSION_LENGTH 12
@@ -501,7 +501,7 @@ struct wl1271_cmd_cal_p2g {
501 501
502 u8 sub_band_mask; 502 u8 sub_band_mask;
503 u8 padding2; 503 u8 padding2;
504} __attribute__ ((packed)); 504} __packed;
505 505
506 506
507/* 507/*
@@ -529,6 +529,6 @@ struct wl1271_cmd_disconnect {
529 u8 type; 529 u8 type;
530 530
531 u8 padding; 531 u8 padding;
532} __attribute__ ((packed)); 532} __packed;
533 533
534#endif /* __WL1271_CMD_H__ */ 534#endif /* __WL1271_CMD_H__ */
diff --git a/drivers/net/wireless/wl12xx/wl1271_event.h b/drivers/net/wireless/wl12xx/wl1271_event.h
index 58371008f270..43d5aeae1783 100644
--- a/drivers/net/wireless/wl12xx/wl1271_event.h
+++ b/drivers/net/wireless/wl12xx/wl1271_event.h
@@ -85,7 +85,7 @@ struct event_debug_report {
85 __le32 report_1; 85 __le32 report_1;
86 __le32 report_2; 86 __le32 report_2;
87 __le32 report_3; 87 __le32 report_3;
88} __attribute__ ((packed)); 88} __packed;
89 89
90#define NUM_OF_RSSI_SNR_TRIGGERS 8 90#define NUM_OF_RSSI_SNR_TRIGGERS 8
91 91
@@ -116,7 +116,7 @@ struct event_mailbox {
116 u8 ps_status; 116 u8 ps_status;
117 117
118 u8 reserved_5[29]; 118 u8 reserved_5[29];
119} __attribute__ ((packed)); 119} __packed;
120 120
121int wl1271_event_unmask(struct wl1271 *wl); 121int wl1271_event_unmask(struct wl1271 *wl);
122void wl1271_event_mbox_config(struct wl1271 *wl); 122void wl1271_event_mbox_config(struct wl1271 *wl);
diff --git a/drivers/net/wireless/wl12xx/wl1271_rx.h b/drivers/net/wireless/wl12xx/wl1271_rx.h
index b89be4758e78..13a232333b13 100644
--- a/drivers/net/wireless/wl12xx/wl1271_rx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_rx.h
@@ -113,7 +113,7 @@ struct wl1271_rx_descriptor {
113 u8 process_id; 113 u8 process_id;
114 u8 pad_len; 114 u8 pad_len;
115 u8 reserved; 115 u8 reserved;
116} __attribute__ ((packed)); 116} __packed;
117 117
118void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_status *status); 118void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_status *status);
119u8 wl1271_rate_to_idx(struct wl1271 *wl, int rate); 119u8 wl1271_rate_to_idx(struct wl1271 *wl, int rate);
diff --git a/drivers/net/wireless/wl12xx/wl1271_tx.h b/drivers/net/wireless/wl12xx/wl1271_tx.h
index 3b8b7ac253fd..91d0adb0ea40 100644
--- a/drivers/net/wireless/wl12xx/wl1271_tx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_tx.h
@@ -80,7 +80,7 @@ struct wl1271_tx_hw_descr {
80 /* Identifier of the remote STA in IBSS, 1 in infra-BSS */ 80 /* Identifier of the remote STA in IBSS, 1 in infra-BSS */
81 u8 aid; 81 u8 aid;
82 u8 reserved; 82 u8 reserved;
83} __attribute__ ((packed)); 83} __packed;
84 84
85enum wl1271_tx_hw_res_status { 85enum wl1271_tx_hw_res_status {
86 TX_SUCCESS = 0, 86 TX_SUCCESS = 0,
@@ -115,13 +115,13 @@ struct wl1271_tx_hw_res_descr {
115 u8 rate_class_index; 115 u8 rate_class_index;
116 /* for 4-byte alignment. */ 116 /* for 4-byte alignment. */
117 u8 spare; 117 u8 spare;
118} __attribute__ ((packed)); 118} __packed;
119 119
120struct wl1271_tx_hw_res_if { 120struct wl1271_tx_hw_res_if {
121 __le32 tx_result_fw_counter; 121 __le32 tx_result_fw_counter;
122 __le32 tx_result_host_counter; 122 __le32 tx_result_host_counter;
123 struct wl1271_tx_hw_res_descr tx_results_queue[TX_HW_RESULT_QUEUE_LEN]; 123 struct wl1271_tx_hw_res_descr tx_results_queue[TX_HW_RESULT_QUEUE_LEN];
124} __attribute__ ((packed)); 124} __packed;
125 125
126static inline int wl1271_tx_get_queue(int queue) 126static inline int wl1271_tx_get_queue(int queue)
127{ 127{
diff --git a/drivers/net/wireless/wl12xx/wl12xx_80211.h b/drivers/net/wireless/wl12xx/wl12xx_80211.h
index 055d7bc6f592..184628027213 100644
--- a/drivers/net/wireless/wl12xx/wl12xx_80211.h
+++ b/drivers/net/wireless/wl12xx/wl12xx_80211.h
@@ -66,41 +66,41 @@ struct ieee80211_header {
66 u8 bssid[ETH_ALEN]; 66 u8 bssid[ETH_ALEN];
67 __le16 seq_ctl; 67 __le16 seq_ctl;
68 u8 payload[0]; 68 u8 payload[0];
69} __attribute__ ((packed)); 69} __packed;
70 70
71struct wl12xx_ie_header { 71struct wl12xx_ie_header {
72 u8 id; 72 u8 id;
73 u8 len; 73 u8 len;
74} __attribute__ ((packed)); 74} __packed;
75 75
76/* IEs */ 76/* IEs */
77 77
78struct wl12xx_ie_ssid { 78struct wl12xx_ie_ssid {
79 struct wl12xx_ie_header header; 79 struct wl12xx_ie_header header;
80 char ssid[IW_ESSID_MAX_SIZE]; 80 char ssid[IW_ESSID_MAX_SIZE];
81} __attribute__ ((packed)); 81} __packed;
82 82
83struct wl12xx_ie_rates { 83struct wl12xx_ie_rates {
84 struct wl12xx_ie_header header; 84 struct wl12xx_ie_header header;
85 u8 rates[MAX_SUPPORTED_RATES]; 85 u8 rates[MAX_SUPPORTED_RATES];
86} __attribute__ ((packed)); 86} __packed;
87 87
88struct wl12xx_ie_ds_params { 88struct wl12xx_ie_ds_params {
89 struct wl12xx_ie_header header; 89 struct wl12xx_ie_header header;
90 u8 channel; 90 u8 channel;
91} __attribute__ ((packed)); 91} __packed;
92 92
93struct country_triplet { 93struct country_triplet {
94 u8 channel; 94 u8 channel;
95 u8 num_channels; 95 u8 num_channels;
96 u8 max_tx_power; 96 u8 max_tx_power;
97} __attribute__ ((packed)); 97} __packed;
98 98
99struct wl12xx_ie_country { 99struct wl12xx_ie_country {
100 struct wl12xx_ie_header header; 100 struct wl12xx_ie_header header;
101 u8 country_string[COUNTRY_STRING_LEN]; 101 u8 country_string[COUNTRY_STRING_LEN];
102 struct country_triplet triplets[MAX_COUNTRY_TRIPLETS]; 102 struct country_triplet triplets[MAX_COUNTRY_TRIPLETS];
103} __attribute__ ((packed)); 103} __packed;
104 104
105 105
106/* Templates */ 106/* Templates */
@@ -115,30 +115,30 @@ struct wl12xx_beacon_template {
115 struct wl12xx_ie_rates ext_rates; 115 struct wl12xx_ie_rates ext_rates;
116 struct wl12xx_ie_ds_params ds_params; 116 struct wl12xx_ie_ds_params ds_params;
117 struct wl12xx_ie_country country; 117 struct wl12xx_ie_country country;
118} __attribute__ ((packed)); 118} __packed;
119 119
120struct wl12xx_null_data_template { 120struct wl12xx_null_data_template {
121 struct ieee80211_header header; 121 struct ieee80211_header header;
122} __attribute__ ((packed)); 122} __packed;
123 123
124struct wl12xx_ps_poll_template { 124struct wl12xx_ps_poll_template {
125 __le16 fc; 125 __le16 fc;
126 __le16 aid; 126 __le16 aid;
127 u8 bssid[ETH_ALEN]; 127 u8 bssid[ETH_ALEN];
128 u8 ta[ETH_ALEN]; 128 u8 ta[ETH_ALEN];
129} __attribute__ ((packed)); 129} __packed;
130 130
131struct wl12xx_qos_null_data_template { 131struct wl12xx_qos_null_data_template {
132 struct ieee80211_header header; 132 struct ieee80211_header header;
133 __le16 qos_ctl; 133 __le16 qos_ctl;
134} __attribute__ ((packed)); 134} __packed;
135 135
136struct wl12xx_probe_req_template { 136struct wl12xx_probe_req_template {
137 struct ieee80211_header header; 137 struct ieee80211_header header;
138 struct wl12xx_ie_ssid ssid; 138 struct wl12xx_ie_ssid ssid;
139 struct wl12xx_ie_rates rates; 139 struct wl12xx_ie_rates rates;
140 struct wl12xx_ie_rates ext_rates; 140 struct wl12xx_ie_rates ext_rates;
141} __attribute__ ((packed)); 141} __packed;
142 142
143 143
144struct wl12xx_probe_resp_template { 144struct wl12xx_probe_resp_template {
@@ -151,6 +151,6 @@ struct wl12xx_probe_resp_template {
151 struct wl12xx_ie_rates ext_rates; 151 struct wl12xx_ie_rates ext_rates;
152 struct wl12xx_ie_ds_params ds_params; 152 struct wl12xx_ie_ds_params ds_params;
153 struct wl12xx_ie_country country; 153 struct wl12xx_ie_country country;
154} __attribute__ ((packed)); 154} __packed;
155 155
156#endif 156#endif