20#define WPI_TX_RING_COUNT 256
21#define WPI_TX_RING_LOMARK 192
22#define WPI_TX_RING_HIMARK 224
25#define WPI_RX_RING_COUNT_LOG 8
27#define WPI_RX_RING_COUNT_LOG 6
30#define WPI_RX_RING_COUNT (1 << WPI_RX_RING_COUNT_LOG)
32#define WPI_NTXQUEUES 8
33#define WPI_DRV_NTXQUEUES 5
34#define WPI_CMD_QUEUE_NUM 4
36#define WPI_NDMACHNLS 6
39#define WPI_MAX_SCATTER 4
44#define WPI_RING_DMA_ALIGN 0x4000
47#define WPI_RBUF_SIZE ( 3 * 1024 )
52#define WPI_HW_IF_CONFIG 0x000
54#define WPI_INT_MASK 0x00c
55#define WPI_FH_INT 0x010
56#define WPI_GPIO_IN 0x018
57#define WPI_RESET 0x020
58#define WPI_GP_CNTRL 0x024
59#define WPI_EEPROM 0x02c
60#define WPI_EEPROM_GP 0x030
62#define WPI_UCODE_GP1 0x054
63#define WPI_UCODE_GP1_SET 0x058
64#define WPI_UCODE_GP1_CLR 0x05c
65#define WPI_UCODE_GP2 0x060
66#define WPI_GIO_CHICKEN 0x100
67#define WPI_ANA_PLL 0x20c
68#define WPI_DBG_HPET_MEM 0x240
69#define WPI_MEM_RADDR 0x40c
70#define WPI_MEM_WADDR 0x410
71#define WPI_MEM_WDATA 0x418
72#define WPI_MEM_RDATA 0x41c
73#define WPI_PRPH_WADDR 0x444
74#define WPI_PRPH_RADDR 0x448
75#define WPI_PRPH_WDATA 0x44c
76#define WPI_PRPH_RDATA 0x450
77#define WPI_HBUS_TARG_WRPTR 0x460
82#define WPI_FH_CBBC_CTRL(qid) (0x940 + (qid) * 8)
83#define WPI_FH_CBBC_BASE(qid) (0x944 + (qid) * 8)
84#define WPI_FH_RX_CONFIG 0xc00
85#define WPI_FH_RX_BASE 0xc04
86#define WPI_FH_RX_WPTR 0xc20
87#define WPI_FH_RX_RPTR_ADDR 0xc24
88#define WPI_FH_RSSR_TBL 0xcc0
89#define WPI_FH_RX_STATUS 0xcc4
90#define WPI_FH_TX_CONFIG(qid) (0xd00 + (qid) * 32)
91#define WPI_FH_TX_BASE 0xe80
92#define WPI_FH_MSG_CONFIG 0xe88
93#define WPI_FH_TX_STATUS 0xe90
98#define WPI_ALM_SCHED_MODE 0x2e00
99#define WPI_ALM_SCHED_ARASTAT 0x2e04
100#define WPI_ALM_SCHED_TXFACT 0x2e10
101#define WPI_ALM_SCHED_TXF4MF 0x2e14
102#define WPI_ALM_SCHED_TXF5MF 0x2e20
103#define WPI_ALM_SCHED_SBYPASS_MODE1 0x2e2c
104#define WPI_ALM_SCHED_SBYPASS_MODE2 0x2e30
105#define WPI_APMG_CLK_CTRL 0x3000
106#define WPI_APMG_CLK_EN 0x3004
107#define WPI_APMG_CLK_DIS 0x3008
108#define WPI_APMG_PS 0x300c
109#define WPI_APMG_PCI_STT 0x3010
110#define WPI_APMG_RFKILL 0x3014
111#define WPI_BSM_WR_CTRL 0x3400
112#define WPI_BSM_WR_MEM_SRC 0x3404
113#define WPI_BSM_WR_MEM_DST 0x3408
114#define WPI_BSM_WR_DWCOUNT 0x340c
115#define WPI_BSM_DRAM_TEXT_ADDR 0x3490
116#define WPI_BSM_DRAM_TEXT_SIZE 0x3494
117#define WPI_BSM_DRAM_DATA_ADDR 0x3498
118#define WPI_BSM_DRAM_DATA_SIZE 0x349c
119#define WPI_BSM_SRAM_BASE 0x3800
122#define WPI_HW_IF_CONFIG_ALM_MB (1 << 8)
123#define WPI_HW_IF_CONFIG_ALM_MM (1 << 9)
124#define WPI_HW_IF_CONFIG_SKU_MRC (1 << 10)
125#define WPI_HW_IF_CONFIG_REV_D (1 << 11)
126#define WPI_HW_IF_CONFIG_TYPE_B (1 << 12)
129#define WPI_PRPH_DWORD ((sizeof (uint32_t) - 1) << 24)
132#define WPI_FW_TEXT_BASE 0x00000000
133#define WPI_FW_DATA_BASE 0x00800000
136#define WPI_GPIO_IN_VMAIN (1 << 9)
139#define WPI_RESET_NEVO (1 << 0)
140#define WPI_RESET_SW (1 << 7)
141#define WPI_RESET_MASTER_DISABLED (1 << 8)
142#define WPI_RESET_STOP_MASTER (1 << 9)
145#define WPI_GP_CNTRL_MAC_ACCESS_ENA (1 << 0)
146#define WPI_GP_CNTRL_MAC_CLOCK_READY (1 << 0)
147#define WPI_GP_CNTRL_INIT_DONE (1 << 2)
148#define WPI_GP_CNTRL_MAC_ACCESS_REQ (1 << 3)
149#define WPI_GP_CNTRL_SLEEP (1 << 4)
150#define WPI_GP_CNTRL_PS_MASK (7 << 24)
151#define WPI_GP_CNTRL_MAC_PS (4 << 24)
152#define WPI_GP_CNTRL_RFKILL (1 << 27)
155#define WPI_GIO_CHICKEN_L1A_NO_L0S_RX (1 << 23)
156#define WPI_GIO_CHICKEN_DIS_L0S_TIMER (1 << 29)
159#define WPI_GIO_L0S_ENA (1 << 1)
162#define WPI_FH_RX_CONFIG_DMA_ENA (1U << 31)
163#define WPI_FH_RX_CONFIG_RDRBD_ENA (1 << 29)
164#define WPI_FH_RX_CONFIG_WRSTATUS_ENA (1 << 27)
165#define WPI_FH_RX_CONFIG_MAXFRAG (1 << 24)
166#define WPI_FH_RX_CONFIG_NRBD(x) ((x) << 20)
167#define WPI_FH_RX_CONFIG_IRQ_DST_HOST (1 << 12)
168#define WPI_FH_RX_CONFIG_IRQ_TIMEOUT(x) ((x) << 4)
171#define WPI_ANA_PLL_INIT (1 << 24)
174#define WPI_UCODE_GP1_MAC_SLEEP (1 << 0)
175#define WPI_UCODE_GP1_RFKILL (1 << 1)
176#define WPI_UCODE_GP1_CMD_BLOCKED (1 << 2)
179#define WPI_FH_RX_STATUS_IDLE (1 << 24)
182#define WPI_BSM_WR_CTRL_START_EN (1 << 30)
183#define WPI_BSM_WR_CTRL_START (1U << 31)
186#define WPI_INT_ALIVE (1 << 0)
187#define WPI_INT_WAKEUP (1 << 1)
188#define WPI_INT_SW_RX (1 << 3)
189#define WPI_INT_SW_ERR (1 << 25)
190#define WPI_INT_FH_TX (1 << 27)
191#define WPI_INT_HW_ERR (1 << 29)
192#define WPI_INT_FH_RX (1U << 31)
195#define WPI_INT_MASK_DEF \
196 (WPI_INT_SW_ERR | WPI_INT_HW_ERR | WPI_INT_FH_TX | \
197 WPI_INT_FH_RX | WPI_INT_ALIVE | WPI_INT_WAKEUP | \
201#define WPI_FH_INT_RX_CHNL(x) (1 << ((x) + 16))
202#define WPI_FH_INT_HI_PRIOR (1 << 30)
204#define WPI_FH_INT_RX \
205 (WPI_FH_INT_RX_CHNL(0) | \
206 WPI_FH_INT_RX_CHNL(1) | \
207 WPI_FH_INT_RX_CHNL(2) | \
211#define WPI_FH_TX_STATUS_IDLE(qid) \
212 (1 << ((qid) + 24) | 1 << ((qid) + 16))
215#define WPI_EEPROM_READ_VALID (1 << 0)
218#define WPI_EEPROM_VERSION 0x00000007
219#define WPI_EEPROM_GP_IF_OWNER 0x00000180
222#define WPI_APMG_PS_PWR_SRC_MASK (3 << 24)
225#define WPI_APMG_CLK_CTRL_DMA_CLK_RQT (1 << 9)
226#define WPI_APMG_CLK_CTRL_BSM_CLK_RQT (1 << 11)
229#define WPI_APMG_PCI_STT_L1A_DIS (1 << 11)
237#define WPI_MAX_SEG_LEN 65520
241#define WPI_PAD32(x) (roundup2(x, 4) - (x))
257#define WPI_TX_STATUS_SUCCESS 0x01
258#define WPI_TX_STATUS_DIRECT_DONE 0x02
259#define WPI_TX_STATUS_FAIL 0x80
260#define WPI_TX_STATUS_FAIL_SHORT_LIMIT 0x82
261#define WPI_TX_STATUS_FAIL_LONG_LIMIT 0x83
262#define WPI_TX_STATUS_FAIL_FIFO_UNDERRUN 0x84
263#define WPI_TX_STATUS_FAIL_MGMNT_ABORT 0x85
264#define WPI_TX_STATUS_FAIL_NEXT_FRAG 0x86
265#define WPI_TX_STATUS_FAIL_LIFE_EXPIRE 0x87
266#define WPI_TX_STATUS_FAIL_NODE_PS 0x88
267#define WPI_TX_STATUS_FAIL_ABORTED 0x89
268#define WPI_TX_STATUS_FAIL_BT_RETRY 0x8a
269#define WPI_TX_STATUS_FAIL_NODE_INVALID 0x8b
270#define WPI_TX_STATUS_FAIL_FRAG_DROPPED 0x8c
271#define WPI_TX_STATUS_FAIL_TID_DISABLE 0x8d
272#define WPI_TX_STATUS_FAIL_FRAME_FLUSHED 0x8e
273#define WPI_TX_STATUS_FAIL_INSUFFICIENT_CF_POLL 0x8f
274#define WPI_TX_STATUS_FAIL_TX_LOCKED 0x90
275#define WPI_TX_STATUS_FAIL_NO_BEACON_ON_RADAR 0x91
282#define WPI_UC_READY 1
283#define WPI_RX_DONE 27
284#define WPI_TX_DONE 28
285#define WPI_START_SCAN 130
286#define WPI_SCAN_RESULTS 131
287#define WPI_STOP_SCAN 132
288#define WPI_BEACON_SENT 144
289#define WPI_RX_STATISTICS 156
290#define WPI_BEACON_STATISTICS 157
291#define WPI_STATE_CHANGED 161
292#define WPI_BEACON_MISSED 162
299#define WPI_RX_DESC_QID_MSK 0x07
300#define WPI_UNSOLICITED_RX_NOTIF 0x80
304#define WPI_STAT_MAXLEN 20
308#define WPI_RSSI_OFFSET -95
318#define WPI_STAT_FLAG_SHPREAMBLE (1 << 2)
327#define WPI_RX_NO_CRC_ERR (1 << 0)
328#define WPI_RX_NO_OVFL_ERR (1 << 1)
330#define WPI_RX_NOERROR (WPI_RX_NO_CRC_ERR | WPI_RX_NO_OVFL_ERR)
331#define WPI_RX_CIPHER_MASK (7 << 8)
332#define WPI_RX_CIPHER_CCMP (2 << 8)
333#define WPI_RX_DECRYPT_MASK (3 << 11)
334#define WPI_RX_DECRYPT_OK (3 << 11)
342#define WPI_CMD_RXON 16
343#define WPI_CMD_RXON_ASSOC 17
344#define WPI_CMD_EDCA_PARAMS 19
345#define WPI_CMD_TIMING 20
346#define WPI_CMD_ADD_NODE 24
347#define WPI_CMD_DEL_NODE 25
348#define WPI_CMD_TX_DATA 28
349#define WPI_CMD_MRR_SETUP 71
350#define WPI_CMD_SET_LED 72
351#define WPI_CMD_SET_POWER_MODE 119
352#define WPI_CMD_SCAN 128
353#define WPI_CMD_SCAN_ABORT 129
354#define WPI_CMD_SET_BEACON 145
355#define WPI_CMD_TXPOWER 151
356#define WPI_CMD_BT_COEX 155
357#define WPI_CMD_GET_STATISTICS 156
371 uint8_t
wlap[IEEE80211_ADDR_LEN];
374#define WPI_MODE_HOSTAP 1
375#define WPI_MODE_STA 3
376#define WPI_MODE_IBSS 4
377#define WPI_MODE_MONITOR 6
385#define WPI_RXON_24GHZ (1 << 0)
386#define WPI_RXON_CCK (1 << 1)
387#define WPI_RXON_AUTO (1 << 2)
388#define WPI_RXON_SHSLOT (1 << 4)
389#define WPI_RXON_SHPREAMBLE (1 << 5)
390#define WPI_RXON_NODIVERSITY (1 << 7)
391#define WPI_RXON_ANTENNA_A (1 << 8)
392#define WPI_RXON_ANTENNA_B (1 << 9)
393#define WPI_RXON_TSF (1 << 15)
394#define WPI_RXON_CTS_TO_SELF (1 << 30)
397#define WPI_FILTER_PROMISC (1 << 0)
398#define WPI_FILTER_CTL (1 << 1)
399#define WPI_FILTER_MULTICAST (1 << 2)
400#define WPI_FILTER_NODECRYPT (1 << 3)
401#define WPI_FILTER_BSS (1 << 5)
402#define WPI_FILTER_BEACON (1 << 6)
403#define WPI_FILTER_ASSOC (1 << 7)
421#define WPI_EDCA_UPDATE (1 << 0)
445#define WPI_NODE_UPDATE (1 << 0)
452#define WPI_ID_IBSS_MIN 2
453#define WPI_ID_IBSS_MAX 23
454#define WPI_ID_BROADCAST 24
455#define WPI_ID_UNDEFINED (uint8_t)-1
458#define WPI_FLAG_KEY_SET (1 << 0)
462#define WPI_KFLAG_CCMP (1 << 1)
463#define WPI_KFLAG_KID(kid) ((kid) << 8)
464#define WPI_KFLAG_MULTICAST (1 << 14)
470 uint8_t
key[IEEE80211_KEYBUF_SIZE];
472#define WPI_ACTION_SET_RATE (1 << 2)
478#define WPI_ANTENNA_A (1 << 6)
479#define WPI_ANTENNA_B (1 << 7)
480#define WPI_ANTENNA_BOTH (WPI_ANTENNA_A | WPI_ANTENNA_B)
500#define WPI_TX_NEED_RTS (1 << 1)
501#define WPI_TX_NEED_CTS (1 << 2)
502#define WPI_TX_NEED_ACK (1 << 3)
503#define WPI_TX_FULL_TXOP (1 << 7)
504#define WPI_TX_BT_DISABLE (1 << 12)
505#define WPI_TX_AUTO_SEQ (1 << 13)
506#define WPI_TX_MORE_FRAG (1 << 14)
507#define WPI_TX_INSERT_TSTAMP (1 << 16)
513#define WPI_CIPHER_WEP 1
514#define WPI_CIPHER_CCMP 2
515#define WPI_CIPHER_TKIP 3
516#define WPI_CIPHER_WEP104 9
518 uint8_t
key[IEEE80211_KEYBUF_SIZE];
519 uint8_t
tkip[IEEE80211_WEP_MICLEN];
521#define WPI_NEXT_STA_ID(id) ((id) << 8)
524#define WPI_LIFETIME_INFINITE 0xffffffff
560#define WPI_RIDX_MAX 11
564#define WPI_MRR_DATA 1
570#define WPI_NTRIES_DEFAULT 2
580#define WPI_LED_ACTIVITY 1
581#define WPI_LED_LINK 2
591#define WPI_PS_ALLOW_SLEEP (1 << 0)
592#define WPI_PS_NOTIFY (1 << 1)
593#define WPI_PS_SLEEP_OVER_DTIM (1 << 2)
594#define WPI_PS_PCI_PMGT (1 << 3)
603#define WPI_SCAN_MAX_ESSIDS 4
607 uint8_t
data[IEEE80211_NWID_LEN];
615#define WPI_QUIET_TIME_DEFAULT 10
622#define WPI_PAUSE_MAX_TIME ((1 << 20) - 1)
623#define WPI_PAUSE_SCAN(nbeacons, time) ((nbeacons << 24) | time)
636#define WPI_CHAN_ACTIVE (1 << 0)
637#define WPI_CHAN_NPBREQS(x) (((1 << (x)) - 1) << 1)
646#define WPI_SCAN_CRC_TH_DEFAULT htole16(1)
647#define WPI_SCAN_CRC_TH_NEVER htole16(0xffff)
650#define WPI_SCAN_MAXSZ (MCLBYTES - 4)
652#define WPI_ACTIVE_DWELL_TIME_2GHZ (30)
653#define WPI_ACTIVE_DWELL_TIME_5GHZ (20)
654#define WPI_ACTIVE_DWELL_FACTOR_2GHZ ( 3)
655#define WPI_ACTIVE_DWELL_FACTOR_5GHZ ( 2)
657#define WPI_PASSIVE_DWELL_TIME_2GHZ ( 20)
658#define WPI_PASSIVE_DWELL_TIME_5GHZ ( 10)
659#define WPI_PASSIVE_DWELL_BASE (100)
660#define WPI_CHANNEL_TUNE_TIME ( 6)
665#define WPI_BAND_5GHZ 0
666#define WPI_BAND_2GHZ 1
683#define WPI_BT_COEX_DISABLE 0
684#define WPI_BT_COEX_MODE_2WIRE 1
685#define WPI_BT_COEX_MODE_3WIRE 2
686#define WPI_BT_COEX_MODE_4WIRE 3
689#define WPI_BT_LEAD_TIME_DEF 30
692#define WPI_BT_MAX_KILL_DEF 5
728#define WPI_SCAN_COMPLETED 1
729#define WPI_SCAN_ABORTED 2
804#define WPI_STATISTICS_BEACON_DISABLE (1 << 1)
817#define WPI_FW_MINVERSION 2144
818#define WPI_FW_NAME "wpifw"
830#define WPI_FW_TEXT_MAXSZ ( 80 * 1024 )
831#define WPI_FW_DATA_MAXSZ ( 32 * 1024 )
832#define WPI_FW_BOOT_TEXT_MAXSZ 1024
834#define WPI_FW_UPDATED (1U << 31 )
839#define WPI_EEPROM_MAC 0x015
840#define WPI_EEPROM_REVISION 0x035
841#define WPI_EEPROM_SKU_CAP 0x045
842#define WPI_EEPROM_TYPE 0x04a
843#define WPI_EEPROM_DOMAIN 0x060
844#define WPI_EEPROM_BAND1 0x063
845#define WPI_EEPROM_BAND2 0x072
846#define WPI_EEPROM_BAND3 0x080
847#define WPI_EEPROM_BAND4 0x08d
848#define WPI_EEPROM_BAND5 0x099
849#define WPI_EEPROM_POWER_GRP 0x100
853#define WPI_EEPROM_CHAN_VALID (1 << 0)
854#define WPI_EEPROM_CHAN_IBSS (1 << 1)
855#define WPI_EEPROM_CHAN_ACTIVE (1 << 3)
856#define WPI_EEPROM_CHAN_RADAR (1 << 4)
867#define WPI_POWER_GROUPS_COUNT 5
877#define WPI_CHAN_BANDS_COUNT 5
878#define WPI_MAX_CHAN_PER_BAND 14
886 { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 } },
889 { 183, 184, 185, 187, 188, 189, 192, 196, 7, 8, 11, 12, 16 } },
891 { 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 60, 64 } },
893 { 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 } },
895 { 145, 149, 153, 157, 161, 165 } }
899#define WPI_RIDX_OFDM6 0
900#define WPI_RIDX_OFDM36 5
901#define WPI_RIDX_OFDM48 6
902#define WPI_RIDX_OFDM54 7
903#define WPI_RIDX_CCK1 8
904#define WPI_RIDX_CCK2 9
905#define WPI_RIDX_CCK11 11
910 0xd, 0xf, 0x5, 0x7, 0x9, 0xb, 0x1, 0x3,
915#define WPI_MAX_PWR_INDEX 77
922 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xfb, 0xbb, 0xbb, 0xbb,
923 0xbb, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xd3, 0xd3, 0xb3, 0xb3, 0xb3,
924 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x73, 0xeb, 0xeb, 0xeb,
925 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xab, 0xab, 0xab, 0x8b,
926 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xc3, 0xc3, 0xc3, 0xc3, 0xa3,
927 0xa3, 0xa3, 0xa3, 0x83, 0x83, 0x83, 0x83, 0x63, 0x63, 0x63, 0x63,
928 0x43, 0x43, 0x43, 0x43, 0x23, 0x23, 0x23, 0x23, 0x03, 0x03, 0x03,
933 0xfb, 0xfb, 0xfb, 0xdb, 0xdb, 0xbb, 0xbb, 0x9b, 0x9b, 0x7b, 0x7b,
934 0x7b, 0x7b, 0x5b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x3b, 0x1b, 0x1b,
935 0x1b, 0x73, 0x73, 0x73, 0x53, 0x53, 0x53, 0x53, 0x53, 0x33, 0x33,
936 0x33, 0x33, 0x13, 0x13, 0x13, 0x13, 0x13, 0xab, 0xab, 0xab, 0x8b,
937 0x8b, 0x8b, 0x8b, 0x6b, 0x6b, 0x6b, 0x6b, 0x4b, 0x4b, 0x4b, 0x4b,
938 0x2b, 0x2b, 0x2b, 0x2b, 0x0b, 0x0b, 0x0b, 0x0b, 0x83, 0x83, 0x63,
939 0x63, 0x63, 0x63, 0x43, 0x43, 0x43, 0x43, 0x23, 0x23, 0x23, 0x23,
948 0x7f, 0x7f, 0x7f, 0x7f, 0x7d, 0x6e, 0x69, 0x62, 0x7d, 0x73, 0x6c,
949 0x63, 0x77, 0x6f, 0x69, 0x61, 0x5c, 0x6a, 0x64, 0x78, 0x71, 0x6b,
950 0x7d, 0x77, 0x70, 0x6a, 0x65, 0x61, 0x5b, 0x6b, 0x79, 0x73, 0x6d,
951 0x7f, 0x79, 0x73, 0x6c, 0x66, 0x60, 0x5c, 0x6e, 0x68, 0x62, 0x74,
952 0x7d, 0x77, 0x71, 0x6b, 0x65, 0x60, 0x71, 0x6a, 0x66, 0x5f, 0x71,
953 0x6a, 0x66, 0x5f, 0x71, 0x6a, 0x66, 0x5f, 0x71, 0x6a, 0x66, 0x5f,
954 0x71, 0x6a, 0x66, 0x5f, 0x71, 0x6a, 0x66, 0x5f, 0x71, 0x6a, 0x66,
959 0x7f, 0x78, 0x72, 0x77, 0x65, 0x71, 0x66, 0x72, 0x67, 0x75, 0x6b,
960 0x63, 0x5c, 0x6c, 0x7d, 0x76, 0x6d, 0x66, 0x60, 0x5a, 0x68, 0x62,
961 0x5c, 0x76, 0x6f, 0x68, 0x7e, 0x79, 0x71, 0x69, 0x63, 0x76, 0x6f,
962 0x68, 0x62, 0x74, 0x6d, 0x66, 0x62, 0x5d, 0x71, 0x6b, 0x63, 0x78,
963 0x71, 0x6b, 0x63, 0x78, 0x71, 0x6b, 0x63, 0x78, 0x71, 0x6b, 0x63,
964 0x78, 0x71, 0x6b, 0x63, 0x78, 0x71, 0x6b, 0x63, 0x6b, 0x63, 0x78,
965 0x71, 0x6b, 0x63, 0x78, 0x71, 0x6b, 0x63, 0x78, 0x71, 0x6b, 0x63,
972#define WPI_NDTIMRANGES 2
973#define WPI_NPOWERLEVELS 6
982 { 0, 0, { 0, 0, 0, 0, 0 }, 0 },
983 { 200, 500, { 1, 2, 3, 4, 4 }, 0 },
984 { 200, 300, { 2, 4, 6, 7, 7 }, 0 },
985 { 50, 100, { 2, 6, 9, 9, 10 }, 0 },
986 { 50, 25, { 2, 7, 9, 9, 10 }, 1 },
987 { 25, 25, { 4, 7, 10, 10, 10 }, 1 }
991 { 0, 0, { 0, 0, 0, 0, 0 }, 0 },
992 { 200, 500, { 1, 2, 3, 4, -1 }, 0 },
993 { 200, 300, { 2, 4, 6, 7, -1 }, 0 },
994 { 50, 100, { 2, 6, 9, 9, -1 }, 0 },
995 { 50, 25, { 2, 7, 9, 9, -1 }, 0 },
996 { 25, 25, { 4, 7, 10, 10, -1 }, 0 }
1011#define WPI_READ(sc, reg) \
1012 bus_space_read_4((sc)->sc_st, (sc)->sc_sh, (reg))
1014#define WPI_WRITE(sc, reg, val) \
1015 bus_space_write_4((sc)->sc_st, (sc)->sc_sh, (reg), (val))
1017#define WPI_WRITE_REGION_4(sc, offset, datap, count) \
1018 bus_space_write_region_4((sc)->sc_st, (sc)->sc_sh, (offset), \
1021#define WPI_SETBITS(sc, reg, mask) \
1022 WPI_WRITE(sc, reg, WPI_READ(sc, reg) | (mask))
1024#define WPI_CLRBITS(sc, reg, mask) \
1025 WPI_WRITE(sc, reg, WPI_READ(sc, reg) & ~(mask))
1027#define WPI_BARRIER_WRITE(sc) \
1028 bus_space_barrier((sc)->sc_st, (sc)->sc_sh, 0, (sc)->sc_sz, \
1029 BUS_SPACE_BARRIER_WRITE)
1031#define WPI_BARRIER_READ_WRITE(sc) \
1032 bus_space_barrier((sc)->sc_st, (sc)->sc_sh, 0, (sc)->sc_sz, \
1033 BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE)
static const char *const wpi_fw_errmsg[]
#define WPI_MAX_PWR_INDEX
struct wpi_shared __packed
static const uint8_t wpi_dsp_gain_5ghz[WPI_MAX_PWR_INDEX+1]
static const uint8_t wpi_rf_gain_5ghz[WPI_MAX_PWR_INDEX+1]
static const uint8_t wpi_rf_gain_2ghz[WPI_MAX_PWR_INDEX+1]
static const struct wpi_chan_band wpi_bands[]
static const uint8_t wpi_dsp_gain_2ghz[WPI_MAX_PWR_INDEX+1]
#define WPI_MAX_CHAN_PER_BAND
static const uint8_t wpi_ridx_to_plcp[]
uint8_t chan[WPI_MAX_CHAN_PER_BAND]
uint8_t key[IEEE80211_KEYBUF_SIZE]
uint8_t tkip[IEEE80211_WEP_MICLEN]
uint8_t macaddr[IEEE80211_ADDR_LEN]
struct wpi_cmd_txpower::@3 rates[WPI_RIDX_MAX+1]
struct wpi_edca_params::@1 ac[WME_NUM_AC]
struct wpi_eeprom_sample samples[5]
struct wpi_mrr_setup::@2 rates[WPI_RIDX_MAX+1]
uint8_t key[IEEE80211_KEYBUF_SIZE]
uint8_t macaddr[IEEE80211_ADDR_LEN]
struct wpi_rx_phy_stats ofdm
struct wpi_rx_phy_stats cck
struct wpi_rx_general_stats general
uint8_t wlap[IEEE80211_ADDR_LEN]
uint8_t bssid[IEEE80211_ADDR_LEN]
uint8_t myaddr[IEEE80211_ADDR_LEN]
uint8_t data[IEEE80211_NWID_LEN]
uint32_t txbase[WPI_NTXQUEUES]
struct wpi_general_stats general
struct wpi_tx_desc::@0 segs[WPI_MAX_SCATTER]