aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl1251_acx.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1251_acx.h')
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_acx.h102
1 files changed, 51 insertions, 51 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