iPXE
hfa384x.h
Go to the documentation of this file.
1/* src/prism2/include/prism2/hfa384x.h
2*
3* Defines the constants and data structures for the hfa384x
4*
5* Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
6* --------------------------------------------------------------------
7*
8* linux-wlan
9*
10* The contents of this file are subject to the Mozilla Public
11* License Version 1.1 (the "License"); you may not use this file
12* except in compliance with the License. You may obtain a copy of
13* the License at http://www.mozilla.org/MPL/
14*
15* Software distributed under the License is distributed on an "AS
16* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
17* implied. See the License for the specific language governing
18* rights and limitations under the License.
19*
20* Alternatively, the contents of this file may be used under the
21* terms of the GNU Public License version 2 (the "GPL"), in which
22* case the provisions of the GPL are applicable instead of the
23* above. If you wish to allow the use of your version of this file
24* only under the terms of the GPL and not to allow others to use
25* your version of this file under the MPL, indicate your decision
26* by deleting the provisions above and replace them with the notice
27* and other provisions required by the GPL. If you do not delete
28* the provisions above, a recipient may use your version of this
29* file under either the MPL or the GPL.
30*
31* --------------------------------------------------------------------
32*
33* Inquiries regarding the linux-wlan Open Source project can be
34* made directly to:
35*
36* AbsoluteValue Systems Inc.
37* info@linux-wlan.com
38* http://www.linux-wlan.com
39*
40* --------------------------------------------------------------------
41*
42* Portions of the development of this software were funded by
43* Intersil Corporation as part of PRISM(R) chipset product development.
44*
45* --------------------------------------------------------------------
46*
47* [Implementation and usage notes]
48*
49* [References]
50* CW10 Programmer's Manual v1.5
51* IEEE 802.11 D10.0
52*
53* --------------------------------------------------------------------
54*/
55
56FILE_LICENCE ( GPL2_ONLY );
57
58#ifndef _HFA384x_H
59#define _HFA384x_H
60
61/*=============================================================*/
62#define HFA384x_FIRMWARE_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
63
64#define HFA384x_LEVEL_TO_dBm(v) (0x100 + (v) * 100 / 255 - 100)
65
66/*------ Constants --------------------------------------------*/
67/*--- Mins & Maxs -----------------------------------*/
68#define HFA384x_CMD_ALLOC_LEN_MIN ((uint16_t)4)
69#define HFA384x_CMD_ALLOC_LEN_MAX ((uint16_t)2400)
70#define HFA384x_BAP_DATALEN_MAX ((uint16_t)4096)
71#define HFA384x_BAP_OFFSET_MAX ((uint16_t)4096)
72#define HFA384x_PORTID_MAX ((uint16_t)7)
73#define HFA384x_NUMPORTS_MAX ((uint16_t)(HFA384x_PORTID_MAX+1))
74#define HFA384x_PDR_LEN_MAX ((uint16_t)512) /* in bytes, from EK */
75#define HFA384x_PDA_RECS_MAX ((uint16_t)200) /* a guess */
76#define HFA384x_PDA_LEN_MAX ((uint16_t)1024) /* in bytes, from EK */
77#define HFA384x_SCANRESULT_MAX ((uint16_t)31)
78#define HFA384x_HSCANRESULT_MAX ((uint16_t)31)
79#define HFA384x_CHINFORESULT_MAX ((uint16_t)16)
80#define HFA384x_DRVR_FIDSTACKLEN_MAX (10)
81#define HFA384x_DRVR_TXBUF_MAX (sizeof(hfa384x_tx_frame_t) + \
82 WLAN_DATA_MAXLEN - \
83 WLAN_WEP_IV_LEN - \
84 WLAN_WEP_ICV_LEN + 2)
85#define HFA384x_DRVR_MAGIC (0x4a2d)
86#define HFA384x_INFODATA_MAXLEN (sizeof(hfa384x_infodata_t))
87#define HFA384x_INFOFRM_MAXLEN (sizeof(hfa384x_InfFrame_t))
88#define HFA384x_RID_GUESSING_MAXLEN 2048 /* I'm not really sure */
89#define HFA384x_RIDDATA_MAXLEN HFA384x_RID_GUESSING_MAXLEN
90#define HFA384x_USB_RWMEM_MAXLEN 2048
91
92/*--- Support Constants -----------------------------*/
93#define HFA384x_BAP_PROC ((uint16_t)0)
94#define HFA384x_BAP_int ((uint16_t)1)
95#define HFA384x_PORTTYPE_IBSS ((uint16_t)0)
96#define HFA384x_PORTTYPE_BSS ((uint16_t)1)
97#define HFA384x_PORTTYPE_WDS ((uint16_t)2)
98#define HFA384x_PORTTYPE_PSUEDOIBSS ((uint16_t)3)
99#define HFA384x_PORTTYPE_HOSTAP ((uint16_t)6)
100#define HFA384x_WEPFLAGS_PRIVINVOKED ((uint16_t)BIT0)
101#define HFA384x_WEPFLAGS_EXCLUDE ((uint16_t)BIT1)
102#define HFA384x_WEPFLAGS_DISABLE_TXCRYPT ((uint16_t)BIT4)
103#define HFA384x_WEPFLAGS_DISABLE_RXCRYPT ((uint16_t)BIT7)
104#define HFA384x_WEPFLAGS_DISALLOW_MIXED ((uint16_t)BIT11)
105#define HFA384x_WEPFLAGS_IV_INTERVAL1 ((uint16_t)0)
106#define HFA384x_WEPFLAGS_IV_INTERVAL10 ((uint16_t)BIT5)
107#define HFA384x_WEPFLAGS_IV_INTERVAL50 ((uint16_t)BIT6)
108#define HFA384x_WEPFLAGS_IV_INTERVAL100 ((uint16_t)(BIT5 | BIT6))
109#define HFA384x_WEPFLAGS_FIRMWARE_WPA ((uint16_t)BIT8)
110#define HFA384x_WEPFLAGS_HOST_MIC ((uint16_t)BIT9)
111#define HFA384x_ROAMMODE_FWSCAN_FWROAM ((uint16_t)1)
112#define HFA384x_ROAMMODE_FWSCAN_HOSTROAM ((uint16_t)2)
113#define HFA384x_ROAMMODE_HOSTSCAN_HOSTROAM ((uint16_t)3)
114#define HFA384x_PORTSTATUS_DISABLED ((uint16_t)1)
115#define HFA384x_PORTSTATUS_INITSRCH ((uint16_t)2)
116#define HFA384x_PORTSTATUS_CONN_IBSS ((uint16_t)3)
117#define HFA384x_PORTSTATUS_CONN_ESS ((uint16_t)4)
118#define HFA384x_PORTSTATUS_OOR_ESS ((uint16_t)5)
119#define HFA384x_PORTSTATUS_CONN_WDS ((uint16_t)6)
120#define HFA384x_PORTSTATUS_HOSTAP ((uint16_t)8)
121#define HFA384x_RATEBIT_1 ((uint16_t)1)
122#define HFA384x_RATEBIT_2 ((uint16_t)2)
123#define HFA384x_RATEBIT_5dot5 ((uint16_t)4)
124#define HFA384x_RATEBIT_11 ((uint16_t)8)
125
126/*--- Just some symbolic names for legibility -------*/
127#define HFA384x_TXCMD_NORECL ((uint16_t)0)
128#define HFA384x_TXCMD_RECL ((uint16_t)1)
129
130/*--- MAC Internal memory constants and macros ------*/
131/* masks and macros used to manipulate MAC internal memory addresses. */
132/* MAC internal memory addresses are 23 bit quantities. The MAC uses
133 * a paged address space where the upper 16 bits are the page number
134 * and the lower 7 bits are the offset. There are various Host API
135 * elements that require two 16-bit quantities to specify a MAC
136 * internal memory address. Unfortunately, some of the API's use a
137 * page/offset format where the offset value is JUST the lower seven
138 * bits and the page is the remaining 16 bits. Some of the API's
139 * assume that the 23 bit address has been split at the 16th bit. We
140 * refer to these two formats as AUX format and CMD format. The
141 * macros below help handle some of this.
142 */
143
144/* Handy constant */
145#define HFA384x_ADDR_AUX_OFF_MAX ((uint16_t)0x007f)
146
147/* Mask bits for discarding unwanted pieces in a flat address */
148#define HFA384x_ADDR_FLAT_AUX_PAGE_MASK (0x007fff80)
149#define HFA384x_ADDR_FLAT_AUX_OFF_MASK (0x0000007f)
150#define HFA384x_ADDR_FLAT_CMD_PAGE_MASK (0xffff0000)
151#define HFA384x_ADDR_FLAT_CMD_OFF_MASK (0x0000ffff)
152
153/* Mask bits for discarding unwanted pieces in AUX format 16-bit address parts */
154#define HFA384x_ADDR_AUX_PAGE_MASK (0xffff)
155#define HFA384x_ADDR_AUX_OFF_MASK (0x007f)
156
157/* Mask bits for discarding unwanted pieces in CMD format 16-bit address parts */
158#define HFA384x_ADDR_CMD_PAGE_MASK (0x007f)
159#define HFA384x_ADDR_CMD_OFF_MASK (0xffff)
160
161/* Make a 32-bit flat address from AUX format 16-bit page and offset */
162#define HFA384x_ADDR_AUX_MKFLAT(p,o) \
163 (((uint32_t)(((uint16_t)(p))&HFA384x_ADDR_AUX_PAGE_MASK)) <<7) | \
164 ((uint32_t)(((uint16_t)(o))&HFA384x_ADDR_AUX_OFF_MASK))
165
166/* Make a 32-bit flat address from CMD format 16-bit page and offset */
167#define HFA384x_ADDR_CMD_MKFLAT(p,o) \
168 (((uint32_t)(((uint16_t)(p))&HFA384x_ADDR_CMD_PAGE_MASK)) <<16) | \
169 ((uint32_t)(((uint16_t)(o))&HFA384x_ADDR_CMD_OFF_MASK))
170
171/* Make AUX format offset and page from a 32-bit flat address */
172#define HFA384x_ADDR_AUX_MKPAGE(f) \
173 ((uint16_t)((((uint32_t)(f))&HFA384x_ADDR_FLAT_AUX_PAGE_MASK)>>7))
174#define HFA384x_ADDR_AUX_MKOFF(f) \
175 ((uint16_t)(((uint32_t)(f))&HFA384x_ADDR_FLAT_AUX_OFF_MASK))
176
177/* Make CMD format offset and page from a 32-bit flat address */
178#define HFA384x_ADDR_CMD_MKPAGE(f) \
179 ((uint16_t)((((uint32_t)(f))&HFA384x_ADDR_FLAT_CMD_PAGE_MASK)>>16))
180#define HFA384x_ADDR_CMD_MKOFF(f) \
181 ((uint16_t)(((uint32_t)(f))&HFA384x_ADDR_FLAT_CMD_OFF_MASK))
182
183/*--- Aux register masks/tests ----------------------*/
184/* Some of the upper bits of the AUX offset register are used to */
185/* select address space. */
186#define HFA384x_AUX_CTL_EXTDS (0x00)
187#define HFA384x_AUX_CTL_NV (0x01)
188#define HFA384x_AUX_CTL_PHY (0x02)
189#define HFA384x_AUX_CTL_ICSRAM (0x03)
190
191/* Make AUX register offset and page values from a flat address */
192#define HFA384x_AUX_MKOFF(f, c) \
193 (HFA384x_ADDR_AUX_MKOFF(f) | (((uint16_t)(c))<<12))
194#define HFA384x_AUX_MKPAGE(f) HFA384x_ADDR_AUX_MKPAGE(f)
195
196
197/*--- Controller Memory addresses -------------------*/
198#define HFA3842_PDA_BASE (0x007f0000UL)
199#define HFA3841_PDA_BASE (0x003f0000UL)
200#define HFA3841_PDA_BOGUS_BASE (0x00390000UL)
201
202/*--- Driver Download states -----------------------*/
203#define HFA384x_DLSTATE_DISABLED 0
204#define HFA384x_DLSTATE_RAMENABLED 1
205#define HFA384x_DLSTATE_FLASHENABLED 2
206#define HFA384x_DLSTATE_FLASHWRITTEN 3
207#define HFA384x_DLSTATE_FLASHWRITEPENDING 4
208#define HFA384x_DLSTATE_GENESIS 5
209
210/*--- Register I/O offsets --------------------------*/
211#if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
212
213#define HFA384x_CMD_OFF (0x00)
214#define HFA384x_PARAM0_OFF (0x02)
215#define HFA384x_PARAM1_OFF (0x04)
216#define HFA384x_PARAM2_OFF (0x06)
217#define HFA384x_STATUS_OFF (0x08)
218#define HFA384x_RESP0_OFF (0x0A)
219#define HFA384x_RESP1_OFF (0x0C)
220#define HFA384x_RESP2_OFF (0x0E)
221#define HFA384x_INFOFID_OFF (0x10)
222#define HFA384x_RXFID_OFF (0x20)
223#define HFA384x_ALLOCFID_OFF (0x22)
224#define HFA384x_TXCOMPLFID_OFF (0x24)
225#define HFA384x_SELECT0_OFF (0x18)
226#define HFA384x_OFFSET0_OFF (0x1C)
227#define HFA384x_DATA0_OFF (0x36)
228#define HFA384x_SELECT1_OFF (0x1A)
229#define HFA384x_OFFSET1_OFF (0x1E)
230#define HFA384x_DATA1_OFF (0x38)
231#define HFA384x_EVSTAT_OFF (0x30)
232#define HFA384x_INTEN_OFF (0x32)
233#define HFA384x_EVACK_OFF (0x34)
234#define HFA384x_CONTROL_OFF (0x14)
235#define HFA384x_SWSUPPORT0_OFF (0x28)
236#define HFA384x_SWSUPPORT1_OFF (0x2A)
237#define HFA384x_SWSUPPORT2_OFF (0x2C)
238#define HFA384x_AUXPAGE_OFF (0x3A)
239#define HFA384x_AUXOFFSET_OFF (0x3C)
240#define HFA384x_AUXDATA_OFF (0x3E)
241
242#elif (WLAN_HOSTIF == WLAN_PCI || WLAN_HOSTIF == WLAN_USB)
243
244#define HFA384x_CMD_OFF (0x00)
245#define HFA384x_PARAM0_OFF (0x04)
246#define HFA384x_PARAM1_OFF (0x08)
247#define HFA384x_PARAM2_OFF (0x0c)
248#define HFA384x_STATUS_OFF (0x10)
249#define HFA384x_RESP0_OFF (0x14)
250#define HFA384x_RESP1_OFF (0x18)
251#define HFA384x_RESP2_OFF (0x1c)
252#define HFA384x_INFOFID_OFF (0x20)
253#define HFA384x_RXFID_OFF (0x40)
254#define HFA384x_ALLOCFID_OFF (0x44)
255#define HFA384x_TXCOMPLFID_OFF (0x48)
256#define HFA384x_SELECT0_OFF (0x30)
257#define HFA384x_OFFSET0_OFF (0x38)
258#define HFA384x_DATA0_OFF (0x6c)
259#define HFA384x_SELECT1_OFF (0x34)
260#define HFA384x_OFFSET1_OFF (0x3c)
261#define HFA384x_DATA1_OFF (0x70)
262#define HFA384x_EVSTAT_OFF (0x60)
263#define HFA384x_INTEN_OFF (0x64)
264#define HFA384x_EVACK_OFF (0x68)
265#define HFA384x_CONTROL_OFF (0x28)
266#define HFA384x_SWSUPPORT0_OFF (0x50)
267#define HFA384x_SWSUPPORT1_OFF (0x54)
268#define HFA384x_SWSUPPORT2_OFF (0x58)
269#define HFA384x_AUXPAGE_OFF (0x74)
270#define HFA384x_AUXOFFSET_OFF (0x78)
271#define HFA384x_AUXDATA_OFF (0x7c)
272#define HFA384x_PCICOR_OFF (0x4c)
273#define HFA384x_PCIHCR_OFF (0x5c)
274#define HFA384x_PCI_M0_ADDRH_OFF (0x80)
275#define HFA384x_PCI_M0_ADDRL_OFF (0x84)
276#define HFA384x_PCI_M0_LEN_OFF (0x88)
277#define HFA384x_PCI_M0_CTL_OFF (0x8c)
278#define HFA384x_PCI_STATUS_OFF (0x98)
279#define HFA384x_PCI_M1_ADDRH_OFF (0xa0)
280#define HFA384x_PCI_M1_ADDRL_OFF (0xa4)
281#define HFA384x_PCI_M1_LEN_OFF (0xa8)
282#define HFA384x_PCI_M1_CTL_OFF (0xac)
283
284#endif
285
286/*--- Register Field Masks --------------------------*/
287#define HFA384x_CMD_BUSY ((uint16_t)BIT15)
288#define HFA384x_CMD_AINFO ((uint16_t)(BIT14 | BIT13 | BIT12 | BIT11 | BIT10 | BIT9 | BIT8))
289#define HFA384x_CMD_MACPORT ((uint16_t)(BIT10 | BIT9 | BIT8))
290#define HFA384x_CMD_RECL ((uint16_t)BIT8)
291#define HFA384x_CMD_WRITE ((uint16_t)BIT8)
292#define HFA384x_CMD_PROGMODE ((uint16_t)(BIT9 | BIT8))
293#define HFA384x_CMD_CMDCODE ((uint16_t)(BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0))
294
295#define HFA384x_STATUS_RESULT ((uint16_t)(BIT14 | BIT13 | BIT12 | BIT11 | BIT10 | BIT9 | BIT8))
296#define HFA384x_STATUS_CMDCODE ((uint16_t)(BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0))
297
298#define HFA384x_OFFSET_BUSY ((uint16_t)BIT15)
299#define HFA384x_OFFSET_ERR ((uint16_t)BIT14)
300#define HFA384x_OFFSET_DATAOFF ((uint16_t)(BIT11 | BIT10 | BIT9 | BIT8 | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1))
301
302#define HFA384x_EVSTAT_TICK ((uint16_t)BIT15)
303#define HFA384x_EVSTAT_WTERR ((uint16_t)BIT14)
304#define HFA384x_EVSTAT_INFDROP ((uint16_t)BIT13)
305#define HFA384x_EVSTAT_INFO ((uint16_t)BIT7)
306#define HFA384x_EVSTAT_DTIM ((uint16_t)BIT5)
307#define HFA384x_EVSTAT_CMD ((uint16_t)BIT4)
308#define HFA384x_EVSTAT_ALLOC ((uint16_t)BIT3)
309#define HFA384x_EVSTAT_TXEXC ((uint16_t)BIT2)
310#define HFA384x_EVSTAT_TX ((uint16_t)BIT1)
311#define HFA384x_EVSTAT_RX ((uint16_t)BIT0)
312
313#define HFA384x_INT_BAP_OP (HFA384x_EVSTAT_INFO|HFA384x_EVSTAT_RX|HFA384x_EVSTAT_TX|HFA384x_EVSTAT_TXEXC)
314
315#define HFA384x_INT_NORMAL (HFA384x_EVSTAT_INFO|HFA384x_EVSTAT_RX|HFA384x_EVSTAT_TX|HFA384x_EVSTAT_TXEXC|HFA384x_EVSTAT_INFDROP|HFA384x_EVSTAT_ALLOC|HFA384x_EVSTAT_DTIM)
316
317#define HFA384x_INTEN_TICK ((uint16_t)BIT15)
318#define HFA384x_INTEN_WTERR ((uint16_t)BIT14)
319#define HFA384x_INTEN_INFDROP ((uint16_t)BIT13)
320#define HFA384x_INTEN_INFO ((uint16_t)BIT7)
321#define HFA384x_INTEN_DTIM ((uint16_t)BIT5)
322#define HFA384x_INTEN_CMD ((uint16_t)BIT4)
323#define HFA384x_INTEN_ALLOC ((uint16_t)BIT3)
324#define HFA384x_INTEN_TXEXC ((uint16_t)BIT2)
325#define HFA384x_INTEN_TX ((uint16_t)BIT1)
326#define HFA384x_INTEN_RX ((uint16_t)BIT0)
327
328#define HFA384x_EVACK_TICK ((uint16_t)BIT15)
329#define HFA384x_EVACK_WTERR ((uint16_t)BIT14)
330#define HFA384x_EVACK_INFDROP ((uint16_t)BIT13)
331#define HFA384x_EVACK_INFO ((uint16_t)BIT7)
332#define HFA384x_EVACK_DTIM ((uint16_t)BIT5)
333#define HFA384x_EVACK_CMD ((uint16_t)BIT4)
334#define HFA384x_EVACK_ALLOC ((uint16_t)BIT3)
335#define HFA384x_EVACK_TXEXC ((uint16_t)BIT2)
336#define HFA384x_EVACK_TX ((uint16_t)BIT1)
337#define HFA384x_EVACK_RX ((uint16_t)BIT0)
338
339#define HFA384x_CONTROL_AUXEN ((uint16_t)(BIT15 | BIT14))
340
341
342/*--- Command Code Constants --------------------------*/
343/*--- Controller Commands --------------------------*/
344#define HFA384x_CMDCODE_INIT ((uint16_t)0x00)
345#define HFA384x_CMDCODE_ENABLE ((uint16_t)0x01)
346#define HFA384x_CMDCODE_DISABLE ((uint16_t)0x02)
347#define HFA384x_CMDCODE_DIAG ((uint16_t)0x03)
348
349/*--- Buffer Mgmt Commands --------------------------*/
350#define HFA384x_CMDCODE_ALLOC ((uint16_t)0x0A)
351#define HFA384x_CMDCODE_TX ((uint16_t)0x0B)
352#define HFA384x_CMDCODE_CLRPRST ((uint16_t)0x12)
353
354/*--- Regulate Commands --------------------------*/
355#define HFA384x_CMDCODE_NOTIFY ((uint16_t)0x10)
356#define HFA384x_CMDCODE_INQ ((uint16_t)0x11)
357
358/*--- Configure Commands --------------------------*/
359#define HFA384x_CMDCODE_ACCESS ((uint16_t)0x21)
360#define HFA384x_CMDCODE_DOWNLD ((uint16_t)0x22)
361
362/*--- Debugging Commands -----------------------------*/
363#define HFA384x_CMDCODE_MONITOR ((uint16_t)(0x38))
364#define HFA384x_MONITOR_ENABLE ((uint16_t)(0x0b))
365#define HFA384x_MONITOR_DISABLE ((uint16_t)(0x0f))
366
367/*--- Result Codes --------------------------*/
368#define HFA384x_SUCCESS ((uint16_t)(0x00))
369#define HFA384x_CARD_FAIL ((uint16_t)(0x01))
370#define HFA384x_NO_BUFF ((uint16_t)(0x05))
371#define HFA384x_CMD_ERR ((uint16_t)(0x7F))
372
373/*--- Programming Modes --------------------------
374 MODE 0: Disable programming
375 MODE 1: Enable volatile memory programming
376 MODE 2: Enable non-volatile memory programming
377 MODE 3: Program non-volatile memory section
378--------------------------------------------------*/
379#define HFA384x_PROGMODE_DISABLE ((uint16_t)0x00)
380#define HFA384x_PROGMODE_RAM ((uint16_t)0x01)
381#define HFA384x_PROGMODE_NV ((uint16_t)0x02)
382#define HFA384x_PROGMODE_NVWRITE ((uint16_t)0x03)
383
384/*--- AUX register enable --------------------------*/
385#define HFA384x_AUXPW0 ((uint16_t)0xfe01)
386#define HFA384x_AUXPW1 ((uint16_t)0xdc23)
387#define HFA384x_AUXPW2 ((uint16_t)0xba45)
388
389#define HFA384x_CONTROL_AUX_ISDISABLED ((uint16_t)0x0000)
390#define HFA384x_CONTROL_AUX_ISENABLED ((uint16_t)0xc000)
391#define HFA384x_CONTROL_AUX_DOENABLE ((uint16_t)0x8000)
392#define HFA384x_CONTROL_AUX_DODISABLE ((uint16_t)0x4000)
393
394/*--- Record ID Constants --------------------------*/
395/*--------------------------------------------------------------------
396Configuration RIDs: Network Parameters, Static Configuration Entities
397--------------------------------------------------------------------*/
398#define HFA384x_RID_CNFPORTTYPE ((uint16_t)0xFC00)
399#define HFA384x_RID_CNFOWNMACADDR ((uint16_t)0xFC01)
400#define HFA384x_RID_CNFDESIREDSSID ((uint16_t)0xFC02)
401#define HFA384x_RID_CNFOWNCHANNEL ((uint16_t)0xFC03)
402#define HFA384x_RID_CNFOWNSSID ((uint16_t)0xFC04)
403#define HFA384x_RID_CNFOWNATIMWIN ((uint16_t)0xFC05)
404#define HFA384x_RID_CNFSYSSCALE ((uint16_t)0xFC06)
405#define HFA384x_RID_CNFMAXDATALEN ((uint16_t)0xFC07)
406#define HFA384x_RID_CNFWDSADDR ((uint16_t)0xFC08)
407#define HFA384x_RID_CNFPMENABLED ((uint16_t)0xFC09)
408#define HFA384x_RID_CNFPMEPS ((uint16_t)0xFC0A)
409#define HFA384x_RID_CNFMULTICASTRX ((uint16_t)0xFC0B)
410#define HFA384x_RID_CNFMAXSLEEPDUR ((uint16_t)0xFC0C)
411#define HFA384x_RID_CNFPMHOLDDUR ((uint16_t)0xFC0D)
412#define HFA384x_RID_CNFOWNNAME ((uint16_t)0xFC0E)
413#define HFA384x_RID_CNFOWNDTIMPER ((uint16_t)0xFC10)
414#define HFA384x_RID_CNFWDSADDR1 ((uint16_t)0xFC11)
415#define HFA384x_RID_CNFWDSADDR2 ((uint16_t)0xFC12)
416#define HFA384x_RID_CNFWDSADDR3 ((uint16_t)0xFC13)
417#define HFA384x_RID_CNFWDSADDR4 ((uint16_t)0xFC14)
418#define HFA384x_RID_CNFWDSADDR5 ((uint16_t)0xFC15)
419#define HFA384x_RID_CNFWDSADDR6 ((uint16_t)0xFC16)
420#define HFA384x_RID_CNFMCASTPMBUFF ((uint16_t)0xFC17)
421
422/*--------------------------------------------------------------------
423Configuration RID lengths: Network Params, Static Config Entities
424 This is the length of JUST the DATA part of the RID (does not
425 include the len or code fields)
426--------------------------------------------------------------------*/
427/* TODO: fill in the rest of these */
428#define HFA384x_RID_CNFPORTTYPE_LEN ((uint16_t)2)
429#define HFA384x_RID_CNFOWNMACADDR_LEN ((uint16_t)6)
430#define HFA384x_RID_CNFDESIREDSSID_LEN ((uint16_t)34)
431#define HFA384x_RID_CNFOWNCHANNEL_LEN ((uint16_t)2)
432#define HFA384x_RID_CNFOWNSSID_LEN ((uint16_t)34)
433#define HFA384x_RID_CNFOWNATIMWIN_LEN ((uint16_t)2)
434#define HFA384x_RID_CNFSYSSCALE_LEN ((uint16_t)0)
435#define HFA384x_RID_CNFMAXDATALEN_LEN ((uint16_t)0)
436#define HFA384x_RID_CNFWDSADDR_LEN ((uint16_t)6)
437#define HFA384x_RID_CNFPMENABLED_LEN ((uint16_t)0)
438#define HFA384x_RID_CNFPMEPS_LEN ((uint16_t)0)
439#define HFA384x_RID_CNFMULTICASTRX_LEN ((uint16_t)0)
440#define HFA384x_RID_CNFMAXSLEEPDUR_LEN ((uint16_t)0)
441#define HFA384x_RID_CNFPMHOLDDUR_LEN ((uint16_t)0)
442#define HFA384x_RID_CNFOWNNAME_LEN ((uint16_t)34)
443#define HFA384x_RID_CNFOWNDTIMPER_LEN ((uint16_t)0)
444#define HFA384x_RID_CNFWDSADDR1_LEN ((uint16_t)6)
445#define HFA384x_RID_CNFWDSADDR2_LEN ((uint16_t)6)
446#define HFA384x_RID_CNFWDSADDR3_LEN ((uint16_t)6)
447#define HFA384x_RID_CNFWDSADDR4_LEN ((uint16_t)6)
448#define HFA384x_RID_CNFWDSADDR5_LEN ((uint16_t)6)
449#define HFA384x_RID_CNFWDSADDR6_LEN ((uint16_t)6)
450#define HFA384x_RID_CNFMCASTPMBUFF_LEN ((uint16_t)0)
451#define HFA384x_RID_CNFAUTHENTICATION_LEN ((uint16_t)sizeof(uint16_t))
452#define HFA384x_RID_CNFMAXSLEEPDUR_LEN ((uint16_t)0)
453
454/*--------------------------------------------------------------------
455Configuration RIDs: Network Parameters, Dynamic Configuration Entities
456--------------------------------------------------------------------*/
457#define HFA384x_RID_GROUPADDR ((uint16_t)0xFC80)
458#define HFA384x_RID_CREATEIBSS ((uint16_t)0xFC81)
459#define HFA384x_RID_FRAGTHRESH ((uint16_t)0xFC82)
460#define HFA384x_RID_RTSTHRESH ((uint16_t)0xFC83)
461#define HFA384x_RID_TXRATECNTL ((uint16_t)0xFC84)
462#define HFA384x_RID_PROMISCMODE ((uint16_t)0xFC85)
463#define HFA384x_RID_FRAGTHRESH0 ((uint16_t)0xFC90)
464#define HFA384x_RID_FRAGTHRESH1 ((uint16_t)0xFC91)
465#define HFA384x_RID_FRAGTHRESH2 ((uint16_t)0xFC92)
466#define HFA384x_RID_FRAGTHRESH3 ((uint16_t)0xFC93)
467#define HFA384x_RID_FRAGTHRESH4 ((uint16_t)0xFC94)
468#define HFA384x_RID_FRAGTHRESH5 ((uint16_t)0xFC95)
469#define HFA384x_RID_FRAGTHRESH6 ((uint16_t)0xFC96)
470#define HFA384x_RID_RTSTHRESH0 ((uint16_t)0xFC97)
471#define HFA384x_RID_RTSTHRESH1 ((uint16_t)0xFC98)
472#define HFA384x_RID_RTSTHRESH2 ((uint16_t)0xFC99)
473#define HFA384x_RID_RTSTHRESH3 ((uint16_t)0xFC9A)
474#define HFA384x_RID_RTSTHRESH4 ((uint16_t)0xFC9B)
475#define HFA384x_RID_RTSTHRESH5 ((uint16_t)0xFC9C)
476#define HFA384x_RID_RTSTHRESH6 ((uint16_t)0xFC9D)
477#define HFA384x_RID_TXRATECNTL0 ((uint16_t)0xFC9E)
478#define HFA384x_RID_TXRATECNTL1 ((uint16_t)0xFC9F)
479#define HFA384x_RID_TXRATECNTL2 ((uint16_t)0xFCA0)
480#define HFA384x_RID_TXRATECNTL3 ((uint16_t)0xFCA1)
481#define HFA384x_RID_TXRATECNTL4 ((uint16_t)0xFCA2)
482#define HFA384x_RID_TXRATECNTL5 ((uint16_t)0xFCA3)
483#define HFA384x_RID_TXRATECNTL6 ((uint16_t)0xFCA4)
484
485/*--------------------------------------------------------------------
486Configuration RID Lengths: Network Param, Dynamic Config Entities
487 This is the length of JUST the DATA part of the RID (does not
488 include the len or code fields)
489--------------------------------------------------------------------*/
490/* TODO: fill in the rest of these */
491#define HFA384x_RID_GROUPADDR_LEN ((uint16_t)16 * WLAN_ADDR_LEN)
492#define HFA384x_RID_CREATEIBSS_LEN ((uint16_t)0)
493#define HFA384x_RID_FRAGTHRESH_LEN ((uint16_t)0)
494#define HFA384x_RID_RTSTHRESH_LEN ((uint16_t)0)
495#define HFA384x_RID_TXRATECNTL_LEN ((uint16_t)4)
496#define HFA384x_RID_PROMISCMODE_LEN ((uint16_t)2)
497#define HFA384x_RID_FRAGTHRESH0_LEN ((uint16_t)0)
498#define HFA384x_RID_FRAGTHRESH1_LEN ((uint16_t)0)
499#define HFA384x_RID_FRAGTHRESH2_LEN ((uint16_t)0)
500#define HFA384x_RID_FRAGTHRESH3_LEN ((uint16_t)0)
501#define HFA384x_RID_FRAGTHRESH4_LEN ((uint16_t)0)
502#define HFA384x_RID_FRAGTHRESH5_LEN ((uint16_t)0)
503#define HFA384x_RID_FRAGTHRESH6_LEN ((uint16_t)0)
504#define HFA384x_RID_RTSTHRESH0_LEN ((uint16_t)0)
505#define HFA384x_RID_RTSTHRESH1_LEN ((uint16_t)0)
506#define HFA384x_RID_RTSTHRESH2_LEN ((uint16_t)0)
507#define HFA384x_RID_RTSTHRESH3_LEN ((uint16_t)0)
508#define HFA384x_RID_RTSTHRESH4_LEN ((uint16_t)0)
509#define HFA384x_RID_RTSTHRESH5_LEN ((uint16_t)0)
510#define HFA384x_RID_RTSTHRESH6_LEN ((uint16_t)0)
511#define HFA384x_RID_TXRATECNTL0_LEN ((uint16_t)0)
512#define HFA384x_RID_TXRATECNTL1_LEN ((uint16_t)0)
513#define HFA384x_RID_TXRATECNTL2_LEN ((uint16_t)0)
514#define HFA384x_RID_TXRATECNTL3_LEN ((uint16_t)0)
515#define HFA384x_RID_TXRATECNTL4_LEN ((uint16_t)0)
516#define HFA384x_RID_TXRATECNTL5_LEN ((uint16_t)0)
517#define HFA384x_RID_TXRATECNTL6_LEN ((uint16_t)0)
518
519/*--------------------------------------------------------------------
520Configuration RIDs: Behavior Parameters
521--------------------------------------------------------------------*/
522#define HFA384x_RID_ITICKTIME ((uint16_t)0xFCE0)
523
524/*--------------------------------------------------------------------
525Configuration RID Lengths: Behavior Parameters
526 This is the length of JUST the DATA part of the RID (does not
527 include the len or code fields)
528--------------------------------------------------------------------*/
529#define HFA384x_RID_ITICKTIME_LEN ((uint16_t)2)
530
531/*----------------------------------------------------------------------
532Information RIDs: NIC Information
533--------------------------------------------------------------------*/
534#define HFA384x_RID_MAXLOADTIME ((uint16_t)0xFD00)
535#define HFA384x_RID_DOWNLOADBUFFER ((uint16_t)0xFD01)
536#define HFA384x_RID_PRIIDENTITY ((uint16_t)0xFD02)
537#define HFA384x_RID_PRISUPRANGE ((uint16_t)0xFD03)
538#define HFA384x_RID_PRI_CFIACTRANGES ((uint16_t)0xFD04)
539#define HFA384x_RID_NICSERIALNUMBER ((uint16_t)0xFD0A)
540#define HFA384x_RID_NICIDENTITY ((uint16_t)0xFD0B)
541#define HFA384x_RID_MFISUPRANGE ((uint16_t)0xFD0C)
542#define HFA384x_RID_CFISUPRANGE ((uint16_t)0xFD0D)
543#define HFA384x_RID_CHANNELLIST ((uint16_t)0xFD10)
544#define HFA384x_RID_REGULATORYDOMAINS ((uint16_t)0xFD11)
545#define HFA384x_RID_TEMPTYPE ((uint16_t)0xFD12)
546#define HFA384x_RID_CIS ((uint16_t)0xFD13)
547#define HFA384x_RID_STAIDENTITY ((uint16_t)0xFD20)
548#define HFA384x_RID_STASUPRANGE ((uint16_t)0xFD21)
549#define HFA384x_RID_STA_MFIACTRANGES ((uint16_t)0xFD22)
550#define HFA384x_RID_STA_CFIACTRANGES ((uint16_t)0xFD23)
551#define HFA384x_RID_BUILDSEQ ((uint16_t)0xFFFE)
552#define HFA384x_RID_FWID ((uint16_t)0xFFFF)
553
554/*----------------------------------------------------------------------
555Information RID Lengths: NIC Information
556 This is the length of JUST the DATA part of the RID (does not
557 include the len or code fields)
558--------------------------------------------------------------------*/
559#define HFA384x_RID_MAXLOADTIME_LEN ((uint16_t)0)
560#define HFA384x_RID_DOWNLOADBUFFER_LEN ((uint16_t)sizeof(hfa384x_downloadbuffer_t))
561#define HFA384x_RID_PRIIDENTITY_LEN ((uint16_t)8)
562#define HFA384x_RID_PRISUPRANGE_LEN ((uint16_t)10)
563#define HFA384x_RID_CFIACTRANGES_LEN ((uint16_t)10)
564#define HFA384x_RID_NICSERIALNUMBER_LEN ((uint16_t)12)
565#define HFA384x_RID_NICIDENTITY_LEN ((uint16_t)8)
566#define HFA384x_RID_MFISUPRANGE_LEN ((uint16_t)10)
567#define HFA384x_RID_CFISUPRANGE_LEN ((uint16_t)10)
568#define HFA384x_RID_CHANNELLIST_LEN ((uint16_t)0)
569#define HFA384x_RID_REGULATORYDOMAINS_LEN ((uint16_t)12)
570#define HFA384x_RID_TEMPTYPE_LEN ((uint16_t)0)
571#define HFA384x_RID_CIS_LEN ((uint16_t)480)
572#define HFA384x_RID_STAIDENTITY_LEN ((uint16_t)8)
573#define HFA384x_RID_STASUPRANGE_LEN ((uint16_t)10)
574#define HFA384x_RID_MFIACTRANGES_LEN ((uint16_t)10)
575#define HFA384x_RID_CFIACTRANGES2_LEN ((uint16_t)10)
576#define HFA384x_RID_BUILDSEQ_LEN ((uint16_t)sizeof(hfa384x_BuildSeq_t))
577#define HFA384x_RID_FWID_LEN ((uint16_t)sizeof(hfa384x_FWID_t))
578
579/*--------------------------------------------------------------------
580Information RIDs: MAC Information
581--------------------------------------------------------------------*/
582#define HFA384x_RID_PORTSTATUS ((uint16_t)0xFD40)
583#define HFA384x_RID_CURRENTSSID ((uint16_t)0xFD41)
584#define HFA384x_RID_CURRENTBSSID ((uint16_t)0xFD42)
585#define HFA384x_RID_COMMSQUALITY ((uint16_t)0xFD43)
586#define HFA384x_RID_CURRENTTXRATE ((uint16_t)0xFD44)
587#define HFA384x_RID_CURRENTBCNint ((uint16_t)0xFD45)
588#define HFA384x_RID_CURRENTSCALETHRESH ((uint16_t)0xFD46)
589#define HFA384x_RID_PROTOCOLRSPTIME ((uint16_t)0xFD47)
590#define HFA384x_RID_SHORTRETRYLIMIT ((uint16_t)0xFD48)
591#define HFA384x_RID_LONGRETRYLIMIT ((uint16_t)0xFD49)
592#define HFA384x_RID_MAXTXLIFETIME ((uint16_t)0xFD4A)
593#define HFA384x_RID_MAXRXLIFETIME ((uint16_t)0xFD4B)
594#define HFA384x_RID_CFPOLLABLE ((uint16_t)0xFD4C)
595#define HFA384x_RID_AUTHALGORITHMS ((uint16_t)0xFD4D)
596#define HFA384x_RID_PRIVACYOPTIMP ((uint16_t)0xFD4F)
597#define HFA384x_RID_DBMCOMMSQUALITY ((uint16_t)0xFD51)
598#define HFA384x_RID_CURRENTTXRATE1 ((uint16_t)0xFD80)
599#define HFA384x_RID_CURRENTTXRATE2 ((uint16_t)0xFD81)
600#define HFA384x_RID_CURRENTTXRATE3 ((uint16_t)0xFD82)
601#define HFA384x_RID_CURRENTTXRATE4 ((uint16_t)0xFD83)
602#define HFA384x_RID_CURRENTTXRATE5 ((uint16_t)0xFD84)
603#define HFA384x_RID_CURRENTTXRATE6 ((uint16_t)0xFD85)
604#define HFA384x_RID_OWNMACADDRESS ((uint16_t)0xFD86)
605// #define HFA384x_RID_PCFINFO ((uint16_t)0xFD87)
606#define HFA384x_RID_SCANRESULTS ((uint16_t)0xFD88) // NEW
607#define HFA384x_RID_HOSTSCANRESULTS ((uint16_t)0xFD89) // NEW
608#define HFA384x_RID_AUTHENTICATIONUSED ((uint16_t)0xFD8A) // NEW
609#define HFA384x_RID_ASSOCIATEFAILURE ((uint16_t)0xFD8D) // 1.8.0
610
611/*--------------------------------------------------------------------
612Information RID Lengths: MAC Information
613 This is the length of JUST the DATA part of the RID (does not
614 include the len or code fields)
615--------------------------------------------------------------------*/
616#define HFA384x_RID_PORTSTATUS_LEN ((uint16_t)0)
617#define HFA384x_RID_CURRENTSSID_LEN ((uint16_t)34)
618#define HFA384x_RID_CURRENTBSSID_LEN ((uint16_t)WLAN_BSSID_LEN)
619#define HFA384x_RID_COMMSQUALITY_LEN ((uint16_t)sizeof(hfa384x_commsquality_t))
620#define HFA384x_RID_DBMCOMMSQUALITY_LEN ((uint16_t)sizeof(hfa384x_dbmcommsquality_t))
621#define HFA384x_RID_CURRENTTXRATE_LEN ((uint16_t)0)
622#define HFA384x_RID_CURRENTBCNINT_LEN ((uint16_t)0)
623#define HFA384x_RID_STACURSCALETHRESH_LEN ((uint16_t)12)
624#define HFA384x_RID_APCURSCALETHRESH_LEN ((uint16_t)6)
625#define HFA384x_RID_PROTOCOLRSPTIME_LEN ((uint16_t)0)
626#define HFA384x_RID_SHORTRETRYLIMIT_LEN ((uint16_t)0)
627#define HFA384x_RID_LONGRETRYLIMIT_LEN ((uint16_t)0)
628#define HFA384x_RID_MAXTXLIFETIME_LEN ((uint16_t)0)
629#define HFA384x_RID_MAXRXLIFETIME_LEN ((uint16_t)0)
630#define HFA384x_RID_CFPOLLABLE_LEN ((uint16_t)0)
631#define HFA384x_RID_AUTHALGORITHMS_LEN ((uint16_t)4)
632#define HFA384x_RID_PRIVACYOPTIMP_LEN ((uint16_t)0)
633#define HFA384x_RID_CURRENTTXRATE1_LEN ((uint16_t)0)
634#define HFA384x_RID_CURRENTTXRATE2_LEN ((uint16_t)0)
635#define HFA384x_RID_CURRENTTXRATE3_LEN ((uint16_t)0)
636#define HFA384x_RID_CURRENTTXRATE4_LEN ((uint16_t)0)
637#define HFA384x_RID_CURRENTTXRATE5_LEN ((uint16_t)0)
638#define HFA384x_RID_CURRENTTXRATE6_LEN ((uint16_t)0)
639#define HFA384x_RID_OWNMACADDRESS_LEN ((uint16_t)6)
640#define HFA384x_RID_PCFINFO_LEN ((uint16_t)6)
641#define HFA384x_RID_CNFAPPCFINFO_LEN ((uint16_t)sizeof(hfa384x_PCFInfo_data_t))
642#define HFA384x_RID_SCANREQUEST_LEN ((uint16_t)sizeof(hfa384x_ScanRequest_data_t))
643#define HFA384x_RID_JOINREQUEST_LEN ((uint16_t)sizeof(hfa384x_JoinRequest_data_t))
644#define HFA384x_RID_AUTHENTICATESTA_LEN ((uint16_t)sizeof(hfa384x_authenticateStation_data_t))
645#define HFA384x_RID_CHANNELINFOREQUEST_LEN ((uint16_t)sizeof(hfa384x_ChannelInfoRequest_data_t))
646/*--------------------------------------------------------------------
647Information RIDs: Modem Information
648--------------------------------------------------------------------*/
649#define HFA384x_RID_PHYTYPE ((uint16_t)0xFDC0)
650#define HFA384x_RID_CURRENTCHANNEL ((uint16_t)0xFDC1)
651#define HFA384x_RID_CURRENTPOWERSTATE ((uint16_t)0xFDC2)
652#define HFA384x_RID_CCAMODE ((uint16_t)0xFDC3)
653#define HFA384x_RID_SUPPORTEDDATARATES ((uint16_t)0xFDC6)
654#define HFA384x_RID_LFOSTATUS ((uint16_t)0xFDC7) // 1.7.1
655
656/*--------------------------------------------------------------------
657Information RID Lengths: Modem Information
658 This is the length of JUST the DATA part of the RID (does not
659 include the len or code fields)
660--------------------------------------------------------------------*/
661#define HFA384x_RID_PHYTYPE_LEN ((uint16_t)0)
662#define HFA384x_RID_CURRENTCHANNEL_LEN ((uint16_t)0)
663#define HFA384x_RID_CURRENTPOWERSTATE_LEN ((uint16_t)0)
664#define HFA384x_RID_CCAMODE_LEN ((uint16_t)0)
665#define HFA384x_RID_SUPPORTEDDATARATES_LEN ((uint16_t)10)
666
667/*--------------------------------------------------------------------
668API ENHANCEMENTS (NOT ALREADY IMPLEMENTED)
669--------------------------------------------------------------------*/
670#define HFA384x_RID_CNFWEPDEFAULTKEYID ((uint16_t)0xFC23)
671#define HFA384x_RID_CNFWEPDEFAULTKEY0 ((uint16_t)0xFC24)
672#define HFA384x_RID_CNFWEPDEFAULTKEY1 ((uint16_t)0xFC25)
673#define HFA384x_RID_CNFWEPDEFAULTKEY2 ((uint16_t)0xFC26)
674#define HFA384x_RID_CNFWEPDEFAULTKEY3 ((uint16_t)0xFC27)
675#define HFA384x_RID_CNFWEPFLAGS ((uint16_t)0xFC28)
676#define HFA384x_RID_CNFWEPKEYMAPTABLE ((uint16_t)0xFC29)
677#define HFA384x_RID_CNFAUTHENTICATION ((uint16_t)0xFC2A)
678#define HFA384x_RID_CNFMAXASSOCSTATIONS ((uint16_t)0xFC2B)
679#define HFA384x_RID_CNFTXCONTROL ((uint16_t)0xFC2C)
680#define HFA384x_RID_CNFROAMINGMODE ((uint16_t)0xFC2D)
681#define HFA384x_RID_CNFHOSTAUTHASSOC ((uint16_t)0xFC2E)
682#define HFA384x_RID_CNFRCVCRCERROR ((uint16_t)0xFC30)
683// #define HFA384x_RID_CNFMMLIFE ((uint16_t)0xFC31)
684#define HFA384x_RID_CNFALTRETRYCNT ((uint16_t)0xFC32)
685#define HFA384x_RID_CNFAPBCNint ((uint16_t)0xFC33)
686#define HFA384x_RID_CNFAPPCFINFO ((uint16_t)0xFC34)
687#define HFA384x_RID_CNFSTAPCFINFO ((uint16_t)0xFC35)
688#define HFA384x_RID_CNFPRIORITYQUSAGE ((uint16_t)0xFC37)
689#define HFA384x_RID_CNFTIMCTRL ((uint16_t)0xFC40)
690#define HFA384x_RID_CNFTHIRTY2TALLY ((uint16_t)0xFC42)
691#define HFA384x_RID_CNFENHSECURITY ((uint16_t)0xFC43)
692#define HFA384x_RID_CNFDBMADJUST ((uint16_t)0xFC46) // NEW
693#define HFA384x_RID_CNFWPADATA ((uint16_t)0xFC48) // 1.7.0
694#define HFA384x_RID_CNFPROPOGATIONDELAY ((uint16_t)0xFC49) // 1.7.6
695#define HFA384x_RID_CNFSHORTPREAMBLE ((uint16_t)0xFCB0)
696#define HFA384x_RID_CNFEXCLONGPREAMBLE ((uint16_t)0xFCB1)
697#define HFA384x_RID_CNFAUTHRSPTIMEOUT ((uint16_t)0xFCB2)
698#define HFA384x_RID_CNFBASICRATES ((uint16_t)0xFCB3)
699#define HFA384x_RID_CNFSUPPRATES ((uint16_t)0xFCB4)
700#define HFA384x_RID_CNFFALLBACKCTRL ((uint16_t)0xFCB5) // NEW
701#define HFA384x_RID_WEPKEYSTATUS ((uint16_t)0xFCB6) // NEW
702#define HFA384x_RID_WEPKEYMAPINDEX ((uint16_t)0xFCB7) // NEW
703#define HFA384x_RID_BROADCASTKEYID ((uint16_t)0xFCB8) // NEW
704#define HFA384x_RID_ENTSECFLAGEYID ((uint16_t)0xFCB9) // NEW
705#define HFA384x_RID_CNFPASSIVESCANCTRL ((uint16_t)0xFCBA) // NEW STA
706#define HFA384x_RID_CNFWPAHANDLING ((uint16_t)0xFCBB) // 1.7.0
707#define HFA384x_RID_MDCCONTROL ((uint16_t)0xFCBC) // 1.7.0/1.4.0
708#define HFA384x_RID_MDCCOUNTRY ((uint16_t)0xFCBD) // 1.7.0/1.4.0
709#define HFA384x_RID_TXPOWERMAX ((uint16_t)0xFCBE) // 1.7.0/1.4.0
710#define HFA384x_RID_CNFLFOENBLED ((uint16_t)0xFCBF) // 1.6.3
711#define HFA384x_RID_CAPINFO ((uint16_t)0xFCC0) // 1.7.0/1.3.7
712#define HFA384x_RID_LISTENINTERVAL ((uint16_t)0xFCC1) // 1.7.0/1.3.7
713#define HFA384x_RID_DIVERSITYENABLED ((uint16_t)0xFCC2) // 1.7.0/1.3.7
714#define HFA384x_RID_LED_CONTROL ((uint16_t)0xFCC4) // 1.7.6
715#define HFA384x_RID_HFO_DELAY ((uint16_t)0xFCC5) // 1.7.6
716#define HFA384x_RID_DISSALOWEDBSSID ((uint16_t)0xFCC6) // 1.8.0
717#define HFA384x_RID_SCANREQUEST ((uint16_t)0xFCE1)
718#define HFA384x_RID_JOINREQUEST ((uint16_t)0xFCE2)
719#define HFA384x_RID_AUTHENTICATESTA ((uint16_t)0xFCE3)
720#define HFA384x_RID_CHANNELINFOREQUEST ((uint16_t)0xFCE4)
721#define HFA384x_RID_HOSTSCAN ((uint16_t)0xFCE5) // NEW STA
722#define HFA384x_RID_ASSOCIATESTA ((uint16_t)0xFCE6)
723
724#define HFA384x_RID_CNFWEPDEFAULTKEY_LEN ((uint16_t)6)
725#define HFA384x_RID_CNFWEP128DEFAULTKEY_LEN ((uint16_t)14)
726#define HFA384x_RID_CNFPRIOQUSAGE_LEN ((uint16_t)4)
727/*--------------------------------------------------------------------
728PD Record codes
729--------------------------------------------------------------------*/
730#define HFA384x_PDR_PCB_PARTNUM ((uint16_t)0x0001)
731#define HFA384x_PDR_PDAVER ((uint16_t)0x0002)
732#define HFA384x_PDR_NIC_SERIAL ((uint16_t)0x0003)
733#define HFA384x_PDR_MKK_MEASUREMENTS ((uint16_t)0x0004)
734#define HFA384x_PDR_NIC_RAMSIZE ((uint16_t)0x0005)
735#define HFA384x_PDR_MFISUPRANGE ((uint16_t)0x0006)
736#define HFA384x_PDR_CFISUPRANGE ((uint16_t)0x0007)
737#define HFA384x_PDR_NICID ((uint16_t)0x0008)
738//#define HFA384x_PDR_REFDAC_MEASUREMENTS ((uint16_t)0x0010)
739//#define HFA384x_PDR_VGDAC_MEASUREMENTS ((uint16_t)0x0020)
740//#define HFA384x_PDR_LEVEL_COMP_MEASUREMENTS ((uint16_t)0x0030)
741//#define HFA384x_PDR_MODEM_TRIMDAC_MEASUREMENTS ((uint16_t)0x0040)
742//#define HFA384x_PDR_COREGA_HACK ((uint16_t)0x00ff)
743#define HFA384x_PDR_MAC_ADDRESS ((uint16_t)0x0101)
744//#define HFA384x_PDR_MKK_CALLNAME ((uint16_t)0x0102)
745#define HFA384x_PDR_REGDOMAIN ((uint16_t)0x0103)
746#define HFA384x_PDR_ALLOWED_CHANNEL ((uint16_t)0x0104)
747#define HFA384x_PDR_DEFAULT_CHANNEL ((uint16_t)0x0105)
748//#define HFA384x_PDR_PRIVACY_OPTION ((uint16_t)0x0106)
749#define HFA384x_PDR_TEMPTYPE ((uint16_t)0x0107)
750//#define HFA384x_PDR_REFDAC_SETUP ((uint16_t)0x0110)
751//#define HFA384x_PDR_VGDAC_SETUP ((uint16_t)0x0120)
752//#define HFA384x_PDR_LEVEL_COMP_SETUP ((uint16_t)0x0130)
753//#define HFA384x_PDR_TRIMDAC_SETUP ((uint16_t)0x0140)
754#define HFA384x_PDR_IFR_SETTING ((uint16_t)0x0200)
755#define HFA384x_PDR_RFR_SETTING ((uint16_t)0x0201)
756#define HFA384x_PDR_HFA3861_BASELINE ((uint16_t)0x0202)
757#define HFA384x_PDR_HFA3861_SHADOW ((uint16_t)0x0203)
758#define HFA384x_PDR_HFA3861_IFRF ((uint16_t)0x0204)
759#define HFA384x_PDR_HFA3861_CHCALSP ((uint16_t)0x0300)
760#define HFA384x_PDR_HFA3861_CHCALI ((uint16_t)0x0301)
761#define HFA384x_PDR_MAX_TX_POWER ((uint16_t)0x0302)
762#define HFA384x_PDR_MASTER_CHAN_LIST ((uint16_t)0x0303)
763#define HFA384x_PDR_3842_NIC_CONFIG ((uint16_t)0x0400)
764#define HFA384x_PDR_USB_ID ((uint16_t)0x0401)
765#define HFA384x_PDR_PCI_ID ((uint16_t)0x0402)
766#define HFA384x_PDR_PCI_IFCONF ((uint16_t)0x0403)
767#define HFA384x_PDR_PCI_PMCONF ((uint16_t)0x0404)
768#define HFA384x_PDR_RFENRGY ((uint16_t)0x0406)
769#define HFA384x_PDR_USB_POWER_TYPE ((uint16_t)0x0407)
770//#define HFA384x_PDR_UNKNOWN408 ((uint16_t)0x0408)
771#define HFA384x_PDR_USB_MAX_POWER ((uint16_t)0x0409)
772#define HFA384x_PDR_USB_MANUFACTURER ((uint16_t)0x0410)
773#define HFA384x_PDR_USB_PRODUCT ((uint16_t)0x0411)
774#define HFA384x_PDR_ANT_DIVERSITY ((uint16_t)0x0412)
775#define HFA384x_PDR_HFO_DELAY ((uint16_t)0x0413)
776#define HFA384x_PDR_SCALE_THRESH ((uint16_t)0x0414)
777
778#define HFA384x_PDR_HFA3861_MANF_TESTSP ((uint16_t)0x0900)
779#define HFA384x_PDR_HFA3861_MANF_TESTI ((uint16_t)0x0901)
780#define HFA384x_PDR_END_OF_PDA ((uint16_t)0x0000)
781
782
783/*=============================================================*/
784/*------ Macros -----------------------------------------------*/
785
786/*--- Register ID macros ------------------------*/
787
788#define HFA384x_CMD HFA384x_CMD_OFF
789#define HFA384x_PARAM0 HFA384x_PARAM0_OFF
790#define HFA384x_PARAM1 HFA384x_PARAM1_OFF
791#define HFA384x_PARAM2 HFA384x_PARAM2_OFF
792#define HFA384x_STATUS HFA384x_STATUS_OFF
793#define HFA384x_RESP0 HFA384x_RESP0_OFF
794#define HFA384x_RESP1 HFA384x_RESP1_OFF
795#define HFA384x_RESP2 HFA384x_RESP2_OFF
796#define HFA384x_INFOFID HFA384x_INFOFID_OFF
797#define HFA384x_RXFID HFA384x_RXFID_OFF
798#define HFA384x_ALLOCFID HFA384x_ALLOCFID_OFF
799#define HFA384x_TXCOMPLFID HFA384x_TXCOMPLFID_OFF
800#define HFA384x_SELECT0 HFA384x_SELECT0_OFF
801#define HFA384x_OFFSET0 HFA384x_OFFSET0_OFF
802#define HFA384x_DATA0 HFA384x_DATA0_OFF
803#define HFA384x_SELECT1 HFA384x_SELECT1_OFF
804#define HFA384x_OFFSET1 HFA384x_OFFSET1_OFF
805#define HFA384x_DATA1 HFA384x_DATA1_OFF
806#define HFA384x_EVSTAT HFA384x_EVSTAT_OFF
807#define HFA384x_INTEN HFA384x_INTEN_OFF
808#define HFA384x_EVACK HFA384x_EVACK_OFF
809#define HFA384x_CONTROL HFA384x_CONTROL_OFF
810#define HFA384x_SWSUPPORT0 HFA384x_SWSUPPORT0_OFF
811#define HFA384x_SWSUPPORT1 HFA384x_SWSUPPORT1_OFF
812#define HFA384x_SWSUPPORT2 HFA384x_SWSUPPORT2_OFF
813#define HFA384x_AUXPAGE HFA384x_AUXPAGE_OFF
814#define HFA384x_AUXOFFSET HFA384x_AUXOFFSET_OFF
815#define HFA384x_AUXDATA HFA384x_AUXDATA_OFF
816#define HFA384x_PCICOR HFA384x_PCICOR_OFF
817#define HFA384x_PCIHCR HFA384x_PCIHCR_OFF
818
819
820/*--- Register Test/Get/Set Field macros ------------------------*/
821
822#define HFA384x_CMD_ISBUSY(value) ((uint16_t)(((uint16_t)value) & HFA384x_CMD_BUSY))
823#define HFA384x_CMD_AINFO_GET(value) ((uint16_t)(((uint16_t)(value) & HFA384x_CMD_AINFO) >> 8))
824#define HFA384x_CMD_AINFO_SET(value) ((uint16_t)((uint16_t)(value) << 8))
825#define HFA384x_CMD_MACPORT_GET(value) ((uint16_t)(HFA384x_CMD_AINFO_GET((uint16_t)(value) & HFA384x_CMD_MACPORT)))
826#define HFA384x_CMD_MACPORT_SET(value) ((uint16_t)HFA384x_CMD_AINFO_SET(value))
827#define HFA384x_CMD_ISRECL(value) ((uint16_t)(HFA384x_CMD_AINFO_GET((uint16_t)(value) & HFA384x_CMD_RECL)))
828#define HFA384x_CMD_RECL_SET(value) ((uint16_t)HFA384x_CMD_AINFO_SET(value))
829#define HFA384x_CMD_QOS_GET(value) ((uint16_t((((uint16_t)(value))&((uint16_t)0x3000)) >> 12))
830#define HFA384x_CMD_QOS_SET(value) ((uint16_t)((((uint16_t)(value)) << 12) & 0x3000))
831#define HFA384x_CMD_ISWRITE(value) ((uint16_t)(HFA384x_CMD_AINFO_GET((uint16_t)(value) & HFA384x_CMD_WRITE)))
832#define HFA384x_CMD_WRITE_SET(value) ((uint16_t)HFA384x_CMD_AINFO_SET((uint16_t)value))
833#define HFA384x_CMD_PROGMODE_GET(value) ((uint16_t)(HFA384x_CMD_AINFO_GET((uint16_t)(value) & HFA384x_CMD_PROGMODE)))
834#define HFA384x_CMD_PROGMODE_SET(value) ((uint16_t)HFA384x_CMD_AINFO_SET((uint16_t)value))
835#define HFA384x_CMD_CMDCODE_GET(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_CMD_CMDCODE))
836#define HFA384x_CMD_CMDCODE_SET(value) ((uint16_t)(value))
837
838#define HFA384x_STATUS_RESULT_GET(value) ((uint16_t)((((uint16_t)(value)) & HFA384x_STATUS_RESULT) >> 8))
839#define HFA384x_STATUS_RESULT_SET(value) (((uint16_t)(value)) << 8)
840#define HFA384x_STATUS_CMDCODE_GET(value) (((uint16_t)(value)) & HFA384x_STATUS_CMDCODE)
841#define HFA384x_STATUS_CMDCODE_SET(value) ((uint16_t)(value))
842
843#define HFA384x_OFFSET_ISBUSY(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_OFFSET_BUSY))
844#define HFA384x_OFFSET_ISERR(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_OFFSET_ERR))
845#define HFA384x_OFFSET_DATAOFF_GET(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_OFFSET_DATAOFF))
846#define HFA384x_OFFSET_DATAOFF_SET(value) ((uint16_t)(value))
847
848#define HFA384x_EVSTAT_ISTICK(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_TICK))
849#define HFA384x_EVSTAT_ISWTERR(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_WTERR))
850#define HFA384x_EVSTAT_ISINFDROP(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_INFDROP))
851#define HFA384x_EVSTAT_ISINFO(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_INFO))
852#define HFA384x_EVSTAT_ISDTIM(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_DTIM))
853#define HFA384x_EVSTAT_ISCMD(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_CMD))
854#define HFA384x_EVSTAT_ISALLOC(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_ALLOC))
855#define HFA384x_EVSTAT_ISTXEXC(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_TXEXC))
856#define HFA384x_EVSTAT_ISTX(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_TX))
857#define HFA384x_EVSTAT_ISRX(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVSTAT_RX))
858
859#define HFA384x_EVSTAT_ISBAP_OP(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INT_BAP_OP))
860
861#define HFA384x_INTEN_ISTICK(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_TICK))
862#define HFA384x_INTEN_TICK_SET(value) ((uint16_t)(((uint16_t)(value)) << 15))
863#define HFA384x_INTEN_ISWTERR(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_WTERR))
864#define HFA384x_INTEN_WTERR_SET(value) ((uint16_t)(((uint16_t)(value)) << 14))
865#define HFA384x_INTEN_ISINFDROP(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_INFDROP))
866#define HFA384x_INTEN_INFDROP_SET(value) ((uint16_t)(((uint16_t)(value)) << 13))
867#define HFA384x_INTEN_ISINFO(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_INFO))
868#define HFA384x_INTEN_INFO_SET(value) ((uint16_t)(((uint16_t)(value)) << 7))
869#define HFA384x_INTEN_ISDTIM(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_DTIM))
870#define HFA384x_INTEN_DTIM_SET(value) ((uint16_t)(((uint16_t)(value)) << 5))
871#define HFA384x_INTEN_ISCMD(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_CMD))
872#define HFA384x_INTEN_CMD_SET(value) ((uint16_t)(((uint16_t)(value)) << 4))
873#define HFA384x_INTEN_ISALLOC(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_ALLOC))
874#define HFA384x_INTEN_ALLOC_SET(value) ((uint16_t)(((uint16_t)(value)) << 3))
875#define HFA384x_INTEN_ISTXEXC(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_TXEXC))
876#define HFA384x_INTEN_TXEXC_SET(value) ((uint16_t)(((uint16_t)(value)) << 2))
877#define HFA384x_INTEN_ISTX(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_TX))
878#define HFA384x_INTEN_TX_SET(value) ((uint16_t)(((uint16_t)(value)) << 1))
879#define HFA384x_INTEN_ISRX(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_INTEN_RX))
880#define HFA384x_INTEN_RX_SET(value) ((uint16_t)(((uint16_t)(value)) << 0))
881
882#define HFA384x_EVACK_ISTICK(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_TICK))
883#define HFA384x_EVACK_TICK_SET(value) ((uint16_t)(((uint16_t)(value)) << 15))
884#define HFA384x_EVACK_ISWTERR(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_WTERR))
885#define HFA384x_EVACK_WTERR_SET(value) ((uint16_t)(((uint16_t)(value)) << 14))
886#define HFA384x_EVACK_ISINFDROP(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_INFDROP))
887#define HFA384x_EVACK_INFDROP_SET(value) ((uint16_t)(((uint16_t)(value)) << 13))
888#define HFA384x_EVACK_ISINFO(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_INFO))
889#define HFA384x_EVACK_INFO_SET(value) ((uint16_t)(((uint16_t)(value)) << 7))
890#define HFA384x_EVACK_ISDTIM(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_DTIM))
891#define HFA384x_EVACK_DTIM_SET(value) ((uint16_t)(((uint16_t)(value)) << 5))
892#define HFA384x_EVACK_ISCMD(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_CMD))
893#define HFA384x_EVACK_CMD_SET(value) ((uint16_t)(((uint16_t)(value)) << 4))
894#define HFA384x_EVACK_ISALLOC(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_ALLOC))
895#define HFA384x_EVACK_ALLOC_SET(value) ((uint16_t)(((uint16_t)(value)) << 3))
896#define HFA384x_EVACK_ISTXEXC(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_TXEXC))
897#define HFA384x_EVACK_TXEXC_SET(value) ((uint16_t)(((uint16_t)(value)) << 2))
898#define HFA384x_EVACK_ISTX(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_TX))
899#define HFA384x_EVACK_TX_SET(value) ((uint16_t)(((uint16_t)(value)) << 1))
900#define HFA384x_EVACK_ISRX(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_EVACK_RX))
901#define HFA384x_EVACK_RX_SET(value) ((uint16_t)(((uint16_t)(value)) << 0))
902
903#define HFA384x_CONTROL_AUXEN_SET(value) ((uint16_t)(((uint16_t)(value)) << 14))
904#define HFA384x_CONTROL_AUXEN_GET(value) ((uint16_t)(((uint16_t)(value)) >> 14))
905
906/* Byte Order */
907#ifdef __KERNEL__
908#define hfa384x2host_16(n) (__le16_to_cpu((uint16_t)(n)))
909#define hfa384x2host_32(n) (__le32_to_cpu((uint32_t)(n)))
910#define host2hfa384x_16(n) (__cpu_to_le16((uint16_t)(n)))
911#define host2hfa384x_32(n) (__cpu_to_le32((uint32_t)(n)))
912#endif
913
914/* Host Maintained State Info */
915#define HFA384x_STATE_PREINIT 0
916#define HFA384x_STATE_INIT 1
917#define HFA384x_STATE_RUNNING 2
918
919/*=============================================================*/
920/*------ Types and their related constants --------------------*/
921
922#define HFA384x_HOSTAUTHASSOC_HOSTAUTH BIT0
923#define HFA384x_HOSTAUTHASSOC_HOSTASSOC BIT1
924
925#define HFA384x_WHAHANDLING_DISABLED 0
926#define HFA384x_WHAHANDLING_PASSTHROUGH BIT1
927
928/*-------------------------------------------------------------*/
929/* Commonly used basic types */
935
941
942/*--------------------------------------------------------------------
943Configuration Record Structures:
944 Network Parameters, Static Configuration Entities
945--------------------------------------------------------------------*/
946/* Prototype structure: all configuration record structures start with
947these members */
948
954
961
968
969/*-- Hardware/Firmware Component Information ----------*/
977
986
987/*-- Configuration Record: cnfPortType --*/
992
993/*-- Configuration Record: cnfOwnMACAddress --*/
998
999/*-- Configuration Record: cnfDesiredSSID --*/
1004
1005/*-- Configuration Record: cnfOwnChannel --*/
1010
1011/*-- Configuration Record: cnfOwnSSID --*/
1016
1017/*-- Configuration Record: cnfOwnATIMWindow --*/
1022
1023/*-- Configuration Record: cnfSystemScale --*/
1028
1029/*-- Configuration Record: cnfMaxDataLength --*/
1034
1035/*-- Configuration Record: cnfWDSAddress --*/
1040
1041/*-- Configuration Record: cnfPMEnabled --*/
1046
1047/*-- Configuration Record: cnfPMEPS --*/
1052
1053/*-- Configuration Record: cnfMulticastReceive --*/
1058
1059/*-- Configuration Record: cnfAuthentication --*/
1060#define HFA384x_CNFAUTHENTICATION_OPENSYSTEM 0x0001
1061#define HFA384x_CNFAUTHENTICATION_SHAREDKEY 0x0002
1062#define HFA384x_CNFAUTHENTICATION_LEAP 0x0004
1063
1064/*-- Configuration Record: cnfMaxSleepDuration --*/
1069
1070/*-- Configuration Record: cnfPMHoldoverDuration --*/
1075
1076/*-- Configuration Record: cnfOwnName --*/
1081
1082/*-- Configuration Record: cnfOwnDTIMPeriod --*/
1087
1088/*-- Configuration Record: cnfWDSAddress --*/
1093
1094/*-- Configuration Record: cnfMulticastPMBuffering --*/
1099
1100/*--------------------------------------------------------------------
1101Configuration Record Structures:
1102 Network Parameters, Dynamic Configuration Entities
1103--------------------------------------------------------------------*/
1104
1105/*-- Configuration Record: GroupAddresses --*/
1110
1111/*-- Configuration Record: CreateIBSS --*/
1116
1117#define HFA384x_CREATEIBSS_JOINCREATEIBSS 0
1118#define HFA384x_CREATEIBSS_JOINESS_JOINCREATEIBSS 1
1119#define HFA384x_CREATEIBSS_JOINIBSS 2
1120#define HFA384x_CREATEIBSS_JOINESS_JOINIBSS 3
1121
1122/*-- Configuration Record: FragmentationThreshold --*/
1127
1128/*-- Configuration Record: RTSThreshold --*/
1133
1134/*-- Configuration Record: TxRateControl --*/
1139
1140/*-- Configuration Record: PromiscuousMode --*/
1145
1146/*-- Configuration Record: ScanRequest (data portion only) --*/
1152
1153/*-- Configuration Record: HostScanRequest (data portion only) --*/
1160
1161/*-- Configuration Record: JoinRequest (data portion only) --*/
1167
1168/*-- Configuration Record: authenticateStation (data portion only) --*/
1175
1176/*-- Configuration Record: associateStation (data portion only) --*/
1183
1184/*-- Configuration Record: ChannelInfoRequest (data portion only) --*/
1190
1191/*-- Configuration Record: WEPKeyMapping (data portion only) --*/
1200
1201/*-- Configuration Record: WPAData (data portion only) --*/
1207
1208/*--------------------------------------------------------------------
1209Configuration Record Structures: Behavior Parameters
1210--------------------------------------------------------------------*/
1211
1212/*-- Configuration Record: TickTime --*/
1217
1218/*--------------------------------------------------------------------
1219Information Record Structures: NIC Information
1220--------------------------------------------------------------------*/
1221
1222/*-- Information Record: MaxLoadTime --*/
1227
1228/*-- Information Record: DownLoadBuffer --*/
1229/* NOTE: The page and offset are in AUX format */
1236
1237/*-- Information Record: PRIIdentity --*/
1245
1246/*-- Information Record: PRISupRange --*/
1255
1256/*-- Information Record: CFIActRanges --*/
1265
1266/*-- Information Record: NICSerialNumber --*/
1271
1272/*-- Information Record: NICIdentity --*/
1280
1281/*-- Information Record: MFISupRange --*/
1290
1291/*-- Information Record: CFISupRange --*/
1300
1301/*-- Information Record: BUILDSEQ:BuildSeq --*/
1306
1307/*-- Information Record: FWID --*/
1308#define HFA384x_FWID_LEN 14
1313
1314/*-- Information Record: ChannelList --*/
1319
1320/*-- Information Record: RegulatoryDomains --*/
1325
1326/*-- Information Record: TempType --*/
1331
1332/*-- Information Record: CIS --*/
1337
1338/*-- Information Record: STAIdentity --*/
1346
1347/*-- Information Record: STASupRange --*/
1356
1357/*-- Information Record: MFIActRanges --*/
1366
1367/*--------------------------------------------------------------------
1368Information Record Structures: NIC Information
1369--------------------------------------------------------------------*/
1370
1371/*-- Information Record: PortStatus --*/
1376
1377#define HFA384x_PSTATUS_DISABLED ((uint16_t)1)
1378#define HFA384x_PSTATUS_SEARCHING ((uint16_t)2)
1379#define HFA384x_PSTATUS_CONN_IBSS ((uint16_t)3)
1380#define HFA384x_PSTATUS_CONN_ESS ((uint16_t)4)
1381#define HFA384x_PSTATUS_OUTOFRANGE ((uint16_t)5)
1382#define HFA384x_PSTATUS_CONN_WDS ((uint16_t)6)
1383
1384/*-- Information Record: CurrentSSID --*/
1389
1390/*-- Information Record: CurrentBSSID --*/
1395
1396/*-- Information Record: commsquality --*/
1403
1404/*-- Information Record: dmbcommsquality --*/
1411
1412/*-- Information Record: CurrentTxRate --*/
1417
1418/*-- Information Record: CurrentBeaconInterval --*/
1423
1424/*-- Information Record: CurrentScaleThresholds --*/
1433
1434/*-- Information Record: ProtocolRspTime --*/
1439
1440/*-- Information Record: ShortRetryLimit --*/
1445
1446/*-- Information Record: LongRetryLimit --*/
1451
1452/*-- Information Record: MaxTransmitLifetime --*/
1457
1458/*-- Information Record: MaxReceiveLifetime --*/
1463
1464/*-- Information Record: CFPollable --*/
1469
1470/*-- Information Record: AuthenticationAlgorithms --*/
1476
1477/*-- Information Record: AuthenticationAlgorithms
1478(data only --*/
1484
1485/*-- Information Record: PrivacyOptionImplemented --*/
1490
1491/*-- Information Record: OwnMACAddress --*/
1496
1497/*-- Information Record: PCFInfo --*/
1505
1506/*-- Information Record: PCFInfo (data portion only) --*/
1514
1515/*--------------------------------------------------------------------
1516Information Record Structures: Modem Information Records
1517--------------------------------------------------------------------*/
1518
1519/*-- Information Record: PHYType --*/
1524
1525/*-- Information Record: CurrentChannel --*/
1530
1531/*-- Information Record: CurrentPowerState --*/
1536
1537/*-- Information Record: CCAMode --*/
1542
1543/*-- Information Record: SupportedDataRates --*/
1548
1549/*-- Information Record: LFOStatus --*/
1556
1557#define HFA384x_TESTRESULT_ALLPASSED BIT0
1558#define HFA384x_TESTRESULT_LFO_FAIL BIT1
1559#define HFA384x_TESTRESULT_VR_HF0_FAIL BIT2
1560#define HFA384x_HOST_FIRM_COORDINATE BIT7
1561#define HFA384x_TESTRESULT_COORDINATE BIT15
1562
1563/*-- Information Record: LEDControl --*/
1572
1573/*--------------------------------------------------------------------
1574 FRAME DESCRIPTORS AND FRAME STRUCTURES
1575
1576FRAME DESCRIPTORS: Offsets
1577
1578----------------------------------------------------------------------
1579Control Info (offset 44-51)
1580--------------------------------------------------------------------*/
1581#define HFA384x_FD_STATUS_OFF ((uint16_t)0x44)
1582#define HFA384x_FD_TIME_OFF ((uint16_t)0x46)
1583#define HFA384x_FD_SWSUPPORT_OFF ((uint16_t)0x4A)
1584#define HFA384x_FD_SILENCE_OFF ((uint16_t)0x4A)
1585#define HFA384x_FD_SIGNAL_OFF ((uint16_t)0x4B)
1586#define HFA384x_FD_RATE_OFF ((uint16_t)0x4C)
1587#define HFA384x_FD_RXFLOW_OFF ((uint16_t)0x4D)
1588#define HFA384x_FD_RESERVED_OFF ((uint16_t)0x4E)
1589#define HFA384x_FD_TXCONTROL_OFF ((uint16_t)0x50)
1590/*--------------------------------------------------------------------
1591802.11 Header (offset 52-6B)
1592--------------------------------------------------------------------*/
1593#define HFA384x_FD_FRAMECONTROL_OFF ((uint16_t)0x52)
1594#define HFA384x_FD_DURATIONID_OFF ((uint16_t)0x54)
1595#define HFA384x_FD_ADDRESS1_OFF ((uint16_t)0x56)
1596#define HFA384x_FD_ADDRESS2_OFF ((uint16_t)0x5C)
1597#define HFA384x_FD_ADDRESS3_OFF ((uint16_t)0x62)
1598#define HFA384x_FD_SEQCONTROL_OFF ((uint16_t)0x68)
1599#define HFA384x_FD_ADDRESS4_OFF ((uint16_t)0x6A)
1600#define HFA384x_FD_DATALEN_OFF ((uint16_t)0x70)
1601/*--------------------------------------------------------------------
1602802.3 Header (offset 72-7F)
1603--------------------------------------------------------------------*/
1604#define HFA384x_FD_DESTADDRESS_OFF ((uint16_t)0x72)
1605#define HFA384x_FD_SRCADDRESS_OFF ((uint16_t)0x78)
1606#define HFA384x_FD_DATALENGTH_OFF ((uint16_t)0x7E)
1607
1608/*--------------------------------------------------------------------
1609FRAME STRUCTURES: Communication Frames
1610----------------------------------------------------------------------
1611Communication Frames: Transmit Frames
1612--------------------------------------------------------------------*/
1613/*-- Communication Frame: Transmit Frame Structure --*/
1641/*--------------------------------------------------------------------
1642Communication Frames: Field Masks for Transmit Frames
1643--------------------------------------------------------------------*/
1644/*-- Status Field --*/
1645#define HFA384x_TXSTATUS_ACKERR ((uint16_t)BIT5)
1646#define HFA384x_TXSTATUS_FORMERR ((uint16_t)BIT3)
1647#define HFA384x_TXSTATUS_DISCON ((uint16_t)BIT2)
1648#define HFA384x_TXSTATUS_AGEDERR ((uint16_t)BIT1)
1649#define HFA384x_TXSTATUS_RETRYERR ((uint16_t)BIT0)
1650/*-- Transmit Control Field --*/
1651#define HFA384x_TX_CFPOLL ((uint16_t)BIT12)
1652#define HFA384x_TX_PRST ((uint16_t)BIT11)
1653#define HFA384x_TX_MACPORT ((uint16_t)(BIT10 | BIT9 | BIT8))
1654#define HFA384x_TX_NOENCRYPT ((uint16_t)BIT7)
1655#define HFA384x_TX_RETRYSTRAT ((uint16_t)(BIT6 | BIT5))
1656#define HFA384x_TX_STRUCTYPE ((uint16_t)(BIT4 | BIT3))
1657#define HFA384x_TX_TXEX ((uint16_t)BIT2)
1658#define HFA384x_TX_TXOK ((uint16_t)BIT1)
1659/*--------------------------------------------------------------------
1660Communication Frames: Test/Get/Set Field Values for Transmit Frames
1661--------------------------------------------------------------------*/
1662/*-- Status Field --*/
1663#define HFA384x_TXSTATUS_ISERROR(v) \
1664 (((uint16_t)(v))&\
1665 (HFA384x_TXSTATUS_ACKERR|HFA384x_TXSTATUS_FORMERR|\
1666 HFA384x_TXSTATUS_DISCON|HFA384x_TXSTATUS_AGEDERR|\
1667 HFA384x_TXSTATUS_RETRYERR))
1668
1669#define HFA384x_TXSTATUS_ISACKERR(v) ((uint16_t)(((uint16_t)(v)) & HFA384x_TXSTATUS_ACKERR))
1670#define HFA384x_TXSTATUS_ISFORMERR(v) ((uint16_t)(((uint16_t)(v)) & HFA384x_TXSTATUS_FORMERR))
1671#define HFA384x_TXSTATUS_ISDISCON(v) ((uint16_t)(((uint16_t)(v)) & HFA384x_TXSTATUS_DISCON))
1672#define HFA384x_TXSTATUS_ISAGEDERR(v) ((uint16_t)(((uint16_t)(v)) & HFA384x_TXSTATUS_AGEDERR))
1673#define HFA384x_TXSTATUS_ISRETRYERR(v) ((uint16_t)(((uint16_t)(v)) & HFA384x_TXSTATUS_RETRYERR))
1674
1675#define HFA384x_TX_GET(v,m,s) ((((uint16_t)(v))&((uint16_t)(m)))>>((uint16_t)(s)))
1676#define HFA384x_TX_SET(v,m,s) ((((uint16_t)(v))<<((uint16_t)(s)))&((uint16_t)(m)))
1677
1678#define HFA384x_TX_CFPOLL_GET(v) HFA384x_TX_GET(v, HFA384x_TX_CFPOLL,12)
1679#define HFA384x_TX_CFPOLL_SET(v) HFA384x_TX_SET(v, HFA384x_TX_CFPOLL,12)
1680#define HFA384x_TX_PRST_GET(v) HFA384x_TX_GET(v, HFA384x_TX_PRST,11)
1681#define HFA384x_TX_PRST_SET(v) HFA384x_TX_SET(v, HFA384x_TX_PRST,11)
1682#define HFA384x_TX_MACPORT_GET(v) HFA384x_TX_GET(v, HFA384x_TX_MACPORT, 8)
1683#define HFA384x_TX_MACPORT_SET(v) HFA384x_TX_SET(v, HFA384x_TX_MACPORT, 8)
1684#define HFA384x_TX_NOENCRYPT_GET(v) HFA384x_TX_GET(v, HFA384x_TX_NOENCRYPT, 7)
1685#define HFA384x_TX_NOENCRYPT_SET(v) HFA384x_TX_SET(v, HFA384x_TX_NOENCRYPT, 7)
1686#define HFA384x_TX_RETRYSTRAT_GET(v) HFA384x_TX_GET(v, HFA384x_TX_RETRYSTRAT, 5)
1687#define HFA384x_TX_RETRYSTRAT_SET(v) HFA384x_TX_SET(v, HFA384x_TX_RETRYSTRAT, 5)
1688#define HFA384x_TX_STRUCTYPE_GET(v) HFA384x_TX_GET(v, HFA384x_TX_STRUCTYPE, 3)
1689#define HFA384x_TX_STRUCTYPE_SET(v) HFA384x_TX_SET(v, HFA384x_TX_STRUCTYPE, 3)
1690#define HFA384x_TX_TXEX_GET(v) HFA384x_TX_GET(v, HFA384x_TX_TXEX, 2)
1691#define HFA384x_TX_TXEX_SET(v) HFA384x_TX_SET(v, HFA384x_TX_TXEX, 2)
1692#define HFA384x_TX_TXOK_GET(v) HFA384x_TX_GET(v, HFA384x_TX_TXOK, 1)
1693#define HFA384x_TX_TXOK_SET(v) HFA384x_TX_SET(v, HFA384x_TX_TXOK, 1)
1694/*--------------------------------------------------------------------
1695Communication Frames: Receive Frames
1696--------------------------------------------------------------------*/
1697/*-- Communication Frame: Receive Frame Structure --*/
1698typedef struct hfa384x_rx_frame
1699{
1700 /*-- MAC rx descriptor (hfa384x byte order) --*/
1709
1710 /*-- 802.11 Header Information (802.11 byte order) --*/
1718 uint16_t data_len; /* hfa384x (little endian) format */
1719
1720 /*-- 802.3 Header Information --*/
1723 uint16_t data_length; /* IEEE? (big endian) format */
1725/*--------------------------------------------------------------------
1726Communication Frames: Field Masks for Receive Frames
1727--------------------------------------------------------------------*/
1728/*-- Offsets --------*/
1729#define HFA384x_RX_DATA_LEN_OFF ((uint16_t)44)
1730#define HFA384x_RX_80211HDR_OFF ((uint16_t)14)
1731#define HFA384x_RX_DATA_OFF ((uint16_t)60)
1732
1733/*-- Status Fields --*/
1734#define HFA384x_RXSTATUS_MSGTYPE ((uint16_t)(BIT15 | BIT14 | BIT13))
1735#define HFA384x_RXSTATUS_MACPORT ((uint16_t)(BIT10 | BIT9 | BIT8))
1736#define HFA384x_RXSTATUS_UNDECR ((uint16_t)BIT1)
1737#define HFA384x_RXSTATUS_FCSERR ((uint16_t)BIT0)
1738/*--------------------------------------------------------------------
1739Communication Frames: Test/Get/Set Field Values for Receive Frames
1740--------------------------------------------------------------------*/
1741#define HFA384x_RXSTATUS_MSGTYPE_GET(value) ((uint16_t)((((uint16_t)(value)) & HFA384x_RXSTATUS_MSGTYPE) >> 13))
1742#define HFA384x_RXSTATUS_MSGTYPE_SET(value) ((uint16_t)(((uint16_t)(value)) << 13))
1743#define HFA384x_RXSTATUS_MACPORT_GET(value) ((uint16_t)((((uint16_t)(value)) & HFA384x_RXSTATUS_MACPORT) >> 8))
1744#define HFA384x_RXSTATUS_MACPORT_SET(value) ((uint16_t)(((uint16_t)(value)) << 8))
1745#define HFA384x_RXSTATUS_ISUNDECR(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_RXSTATUS_UNDECR))
1746#define HFA384x_RXSTATUS_ISFCSERR(value) ((uint16_t)(((uint16_t)(value)) & HFA384x_RXSTATUS_FCSERR))
1747/*--------------------------------------------------------------------
1748 FRAME STRUCTURES: Information Types and Information Frame Structures
1749----------------------------------------------------------------------
1750Information Types
1751--------------------------------------------------------------------*/
1752#define HFA384x_IT_HANDOVERADDR ((uint16_t)0xF000UL)
1753#define HFA384x_IT_HANDOVERDEAUTHADDRESS ((uint16_t)0xF001UL)//AP 1.3.7
1754#define HFA384x_IT_COMMTALLIES ((uint16_t)0xF100UL)
1755#define HFA384x_IT_SCANRESULTS ((uint16_t)0xF101UL)
1756#define HFA384x_IT_CHINFORESULTS ((uint16_t)0xF102UL)
1757#define HFA384x_IT_HOSTSCANRESULTS ((uint16_t)0xF103UL)
1758#define HFA384x_IT_LINKSTATUS ((uint16_t)0xF200UL)
1759#define HFA384x_IT_ASSOCSTATUS ((uint16_t)0xF201UL)
1760#define HFA384x_IT_AUTHREQ ((uint16_t)0xF202UL)
1761#define HFA384x_IT_PSUSERCNT ((uint16_t)0xF203UL)
1762#define HFA384x_IT_KEYIDCHANGED ((uint16_t)0xF204UL)
1763#define HFA384x_IT_ASSOCREQ ((uint16_t)0xF205UL)
1764#define HFA384x_IT_MICFAILURE ((uint16_t)0xF206UL)
1765
1766/*--------------------------------------------------------------------
1767Information Frames Structures
1768----------------------------------------------------------------------
1769Information Frames: Notification Frame Structures
1770--------------------------------------------------------------------*/
1771/*-- Notification Frame,MAC Mgmt: Handover Address --*/
1778
1779/*-- Inquiry Frame, Diagnose: Communication Tallies --*/
1804
1829
1830/*-- Inquiry Frame, Diagnose: Scan Results & Subfields--*/
1843
1851
1852/*-- Inquiry Frame, Diagnose: ChInfo Results & Subfields--*/
1860
1861#define HFA384x_CHINFORESULT_BSSACTIVE BIT0
1862#define HFA384x_CHINFORESULT_PCFACTIVE BIT1
1863
1870
1871/*-- Inquiry Frame, Diagnose: Host Scan Results & Subfields--*/
1885
1893
1894/*-- Unsolicited Frame, MAC Mgmt: LinkStatus --*/
1895
1896#define HFA384x_LINK_NOTCONNECTED ((uint16_t)0)
1897#define HFA384x_LINK_CONNECTED ((uint16_t)1)
1898#define HFA384x_LINK_DISCONNECTED ((uint16_t)2)
1899#define HFA384x_LINK_AP_CHANGE ((uint16_t)3)
1900#define HFA384x_LINK_AP_OUTOFRANGE ((uint16_t)4)
1901#define HFA384x_LINK_AP_INRANGE ((uint16_t)5)
1902#define HFA384x_LINK_ASSOCFAIL ((uint16_t)6)
1903
1908
1909
1910/*-- Unsolicited Frame, MAC Mgmt: AssociationStatus (--*/
1911
1912#define HFA384x_ASSOCSTATUS_STAASSOC ((uint16_t)1)
1913#define HFA384x_ASSOCSTATUS_REASSOC ((uint16_t)2)
1914#define HFA384x_ASSOCSTATUS_DISASSOC ((uint16_t)3)
1915#define HFA384x_ASSOCSTATUS_ASSOCFAIL ((uint16_t)4)
1916#define HFA384x_ASSOCSTATUS_AUTHFAIL ((uint16_t)5)
1917
1927
1928/*-- Unsolicited Frame, MAC Mgmt: AuthRequest (AP Only) --*/
1929
1935
1936/*-- Unsolicited Frame, MAC Mgmt: AssocRequest (AP Only) --*/
1937
1944
1945
1946#define HFA384x_ASSOCREQ_TYPE_ASSOC 0
1947#define HFA384x_ASSOCREQ_TYPE_REASSOC 1
1948
1949/*-- Unsolicited Frame, MAC Mgmt: MIC Failure (AP Only) --*/
1950
1956
1957/*-- Unsolicited Frame, MAC Mgmt: PSUserCount (AP Only) --*/
1958
1963
1969
1970/*-- Collection of all Inf frames ---------------*/
1983
1990
1991#if (WLAN_HOSTIF == WLAN_USB)
1992/*--------------------------------------------------------------------
1993USB Packet structures and constants.
1994--------------------------------------------------------------------*/
1995
1996/* Should be sent to the ctrlout endpoint */
1997#define HFA384x_USB_ENBULKIN 6
1998
1999/* Should be sent to the bulkout endpoint */
2000#define HFA384x_USB_TXFRM 0
2001#define HFA384x_USB_CMDREQ 1
2002#define HFA384x_USB_WRIDREQ 2
2003#define HFA384x_USB_RRIDREQ 3
2004#define HFA384x_USB_WMEMREQ 4
2005#define HFA384x_USB_RMEMREQ 5
2006
2007/* Received from the bulkin endpoint */
2008#define HFA384x_USB_ISFRM(a) (!((a) & 0x8000))
2009#define HFA384x_USB_ISTXFRM(a) (((a) & 0x9000) == 0x1000)
2010#define HFA384x_USB_ISRXFRM(a) (!((a) & 0x9000))
2011#define HFA384x_USB_INFOFRM 0x8000
2012#define HFA384x_USB_CMDRESP 0x8001
2013#define HFA384x_USB_WRIDRESP 0x8002
2014#define HFA384x_USB_RRIDRESP 0x8003
2015#define HFA384x_USB_WMEMRESP 0x8004
2016#define HFA384x_USB_RMEMRESP 0x8005
2017#define HFA384x_USB_BUFAVAIL 0x8006
2018#define HFA384x_USB_ERROR 0x8007
2019
2020/*------------------------------------*/
2021/* Request (bulk OUT) packet contents */
2022
2027
2036
2043
2050
2058
2066
2067/*------------------------------------*/
2068/* Response (bulk IN) packet contents */
2069
2074
2079
2087
2089
2096
2098
2104
2109
2114
2115/*----------------------------------------------------------*/
2116/* Unions for packaging all the known packet types together */
2117
2127
2142
2143#endif /* WLAN_USB */
2144
2145/*--------------------------------------------------------------------
2146PD record structures.
2147--------------------------------------------------------------------*/
2148
2153
2158
2163
2182
2187
2195
2203
2211
2212
2217
2222
2227
2232
2237
2243
2248
2253
2258
2263
2268
2273
2278
2284
2289
2294
2299
2304
2309
2314
2319
2324
2329
2334
2339
2344
2345typedef struct hfa384x_pdrec
2346{
2347 uint16_t len; /* in words */
2349 union pdr {
2384
2387
2388
2389#ifdef __KERNEL__
2390/*--------------------------------------------------------------------
2391--- MAC state structure, argument to all functions --
2392--- Also, a collection of support types --
2393--------------------------------------------------------------------*/
2394typedef struct hfa384x_statusresult
2395{
2397 uint16_t resp0;
2398 uint16_t resp1;
2399 uint16_t resp2;
2400} hfa384x_cmdresult_t;
2401
2402#if (WLAN_HOSTIF == WLAN_USB)
2403
2404/* USB Control Exchange (CTLX):
2405 * A queue of the structure below is maintained for all of the
2406 * Request/Response type USB packets supported by Prism2.
2407 */
2408/* The following hfa384x_* structures are arguments to
2409 * the usercb() for the different CTLX types.
2410 */
2411typedef hfa384x_cmdresult_t hfa384x_wridresult_t;
2412typedef hfa384x_cmdresult_t hfa384x_wmemresult_t;
2413
2414typedef struct hfa384x_rridresult
2415{
2416 uint16_t rid;
2417 const void *riddata;
2418 unsigned int riddata_len;
2419} hfa384x_rridresult_t;
2420
2421enum ctlx_state {
2422 CTLX_START = 0, /* Start state, not queued */
2423
2424 CTLX_COMPLETE, /* CTLX successfully completed */
2425 CTLX_REQ_FAILED, /* OUT URB completed w/ error */
2426
2427 CTLX_PENDING, /* Queued, data valid */
2428 CTLX_REQ_SUBMITTED, /* OUT URB submitted */
2429 CTLX_REQ_COMPLETE, /* OUT URB complete */
2430 CTLX_RESP_COMPLETE /* IN URB received */
2431};
2432typedef enum ctlx_state CTLX_STATE;
2433
2434struct hfa384x_usbctlx;
2435struct hfa384x;
2436
2437typedef void (*ctlx_cmdcb_t)( struct hfa384x*, const struct hfa384x_usbctlx* );
2438
2439typedef void (*ctlx_usercb_t)(
2440 struct hfa384x *hw,
2441 void *ctlxresult,
2442 void *usercb_data);
2443
2444typedef struct hfa384x_usbctlx
2445{
2446 struct list_head list;
2447
2448 size_t outbufsize;
2449 hfa384x_usbout_t outbuf; /* pkt buf for OUT */
2450 hfa384x_usbin_t inbuf; /* pkt buf for IN(a copy) */
2451
2452 CTLX_STATE state; /* Tracks running state */
2453
2454 struct completion done;
2455 volatile int reapable; /* Food for the reaper task */
2456
2457 ctlx_cmdcb_t cmdcb; /* Async command callback */
2458 ctlx_usercb_t usercb; /* Async user callback, */
2459 void *usercb_data; /* at CTLX completion */
2460
2461 int variant; /* Identifies cmd variant */
2462} hfa384x_usbctlx_t;
2463
2464typedef struct hfa384x_usbctlxq
2465{
2466 spinlock_t lock;
2467 struct list_head pending;
2468 struct list_head active;
2469 struct list_head completing;
2470 struct list_head reapable;
2471} hfa384x_usbctlxq_t;
2472#endif
2473
2474typedef struct hfa484x_metacmd
2475{
2476 uint16_t cmd;
2477
2478 uint16_t parm0;
2479 uint16_t parm1;
2480 uint16_t parm2;
2481
2482#if 0 //XXX cmd irq stuff
2483 uint16_t bulkid; /* what RID/FID to copy down. */
2484 int bulklen; /* how much to copy from BAP */
2485 char *bulkdata; /* And to where? */
2486#endif
2487
2488 hfa384x_cmdresult_t result;
2489} hfa384x_metacmd_t;
2490
2491#define MAX_PRISM2_GRP_ADDR 16
2492#define MAX_GRP_ADDR 32
2493#define WLAN_COMMENT_MAX 80 /* Max. length of user comment string. */
2494
2495#define MM_SAT_PCF (BIT14)
2496#define MM_GCSD_PCF (BIT15)
2497#define MM_GCSD_PCF_EB (BIT14 | BIT15)
2498
2499#define WLAN_STATE_STOPPED 0 /* Network is not active. */
2500#define WLAN_STATE_STARTED 1 /* Network has been started. */
2501
2502#define WLAN_AUTH_MAX 60 /* Max. # of authenticated stations. */
2503#define WLAN_ACCESS_MAX 60 /* Max. # of stations in an access list. */
2504#define WLAN_ACCESS_NONE 0 /* No stations may be authenticated. */
2505#define WLAN_ACCESS_ALL 1 /* All stations may be authenticated. */
2506#define WLAN_ACCESS_ALLOW 2 /* Authenticate only "allowed" stations. */
2507#define WLAN_ACCESS_DENY 3 /* Do not authenticate "denied" stations. */
2508
2509/* XXX These are going away ASAP */
2510typedef struct prism2sta_authlist
2511{
2512 unsigned int cnt;
2513 uint8_t addr[WLAN_AUTH_MAX][WLAN_ADDR_LEN];
2514 uint8_t assoc[WLAN_AUTH_MAX];
2515} prism2sta_authlist_t;
2516
2517typedef struct prism2sta_accesslist
2518{
2519 unsigned int modify;
2520 unsigned int cnt;
2521 uint8_t addr[WLAN_ACCESS_MAX][WLAN_ADDR_LEN];
2522 unsigned int cnt1;
2523 uint8_t addr1[WLAN_ACCESS_MAX][WLAN_ADDR_LEN];
2524} prism2sta_accesslist_t;
2525
2526typedef struct hfa384x
2527{
2528#if (WLAN_HOSTIF != WLAN_USB)
2529 /* Resource config */
2531 char __iomem *membase;
2532 uint32_t irq;
2533#else
2534 /* USB support data */
2535 struct usb_device *usb;
2536 struct urb rx_urb;
2537 struct sk_buff *rx_urb_skb;
2538 struct urb tx_urb;
2539 struct urb ctlx_urb;
2540 hfa384x_usbout_t txbuff;
2541 hfa384x_usbctlxq_t ctlxq;
2542 struct timer_list reqtimer;
2543 struct timer_list resptimer;
2544
2545 struct timer_list throttle;
2546
2547 struct tasklet_struct reaper_bh;
2548 struct tasklet_struct completion_bh;
2549
2550 struct work_struct usb_work;
2551
2552 unsigned long usb_flags;
2553#define THROTTLE_RX 0
2554#define THROTTLE_TX 1
2555#define WORK_RX_HALT 2
2556#define WORK_TX_HALT 3
2557#define WORK_RX_RESUME 4
2558#define WORK_TX_RESUME 5
2559
2560 unsigned short req_timer_done:1;
2561 unsigned short resp_timer_done:1;
2562
2563 int endp_in;
2564 int endp_out;
2565#endif /* !USB */
2566
2567#if (WLAN_HOSTIF == WLAN_PCMCIA)
2568#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,16)
2569 struct pcmcia_device *pdev;
2570#else
2571 dev_link_t *link;
2572#endif
2573 dev_node_t node;
2574#endif
2575
2576 int sniff_fcs;
2577 int sniff_channel;
2578 int sniff_truncate;
2579 int sniffhdr;
2580
2581 wait_queue_head_t cmdq; /* wait queue itself */
2582
2583 /* Controller state */
2585 uint32_t isap;
2586 uint8_t port_enabled[HFA384x_NUMPORTS_MAX];
2587#if (WLAN_HOSTIF != WLAN_USB)
2588 unsigned int auxen;
2589 unsigned int isram16;
2590#endif /* !USB */
2591
2592 /* Download support */
2593 unsigned int dlstate;
2595 uint16_t dltimeout;
2596
2597#if (WLAN_HOSTIF != WLAN_USB)
2598 spinlock_t cmdlock;
2599 volatile int cmdflag; /* wait queue flag */
2600 hfa384x_metacmd_t *cmddata; /* for our async callback */
2601
2602 /* BAP support */
2603 spinlock_t baplock;
2604 struct tasklet_struct bap_tasklet;
2605
2606 /* MAC buffer ids */
2607 uint16_t txfid_head;
2608 uint16_t txfid_tail;
2609 unsigned int txfid_N;
2611 uint16_t infofid;
2612 struct semaphore infofid_sem;
2613#endif /* !USB */
2614
2615 int scanflag; /* to signal scan comlete */
2616 int join_ap; /* are we joined to a specific ap */
2617 int join_retries; /* number of join retries till we fail */
2618 hfa384x_JoinRequest_data_t joinreq; /* join request saved data */
2619
2620 wlandevice_t *wlandev;
2621 /* Timer to allow for the deferred processing of linkstatus messages */
2622 struct work_struct link_bh;
2623
2624 struct work_struct commsqual_bh;
2626 struct timer_list commsqual_timer;
2627
2628 uint16_t link_status;
2629 uint16_t link_status_new;
2630 struct sk_buff_head authq;
2631
2632 /* And here we have stuff that used to be in priv */
2633
2634 /* State variables */
2635 unsigned int presniff_port_type;
2636 uint16_t presniff_wepflags;
2637 uint32_t dot11_desired_bss_type;
2638 int ap; /* AP flag: 0 - Station, 1 - Access Point. */
2639
2640 int dbmadjust;
2641
2642 /* Group Addresses - right now, there are up to a total
2643 of MAX_GRP_ADDR group addresses */
2644 uint8_t dot11_grp_addr[MAX_GRP_ADDR][WLAN_ADDR_LEN];
2645 unsigned int dot11_grpcnt;
2646
2647 /* Component Identities */
2648 hfa384x_compident_t ident_nic;
2649 hfa384x_compident_t ident_pri_fw;
2650 hfa384x_compident_t ident_sta_fw;
2651 hfa384x_compident_t ident_ap_fw;
2652 uint16_t mm_mods;
2653
2654 /* Supplier compatibility ranges */
2655 hfa384x_caplevel_t cap_sup_mfi;
2656 hfa384x_caplevel_t cap_sup_cfi;
2657 hfa384x_caplevel_t cap_sup_pri;
2658 hfa384x_caplevel_t cap_sup_sta;
2659 hfa384x_caplevel_t cap_sup_ap;
2660
2661 /* Actor compatibility ranges */
2662 hfa384x_caplevel_t cap_act_pri_cfi; /* pri f/w to controller interface */
2663 hfa384x_caplevel_t cap_act_sta_cfi; /* sta f/w to controller interface */
2664 hfa384x_caplevel_t cap_act_sta_mfi; /* sta f/w to modem interface */
2665 hfa384x_caplevel_t cap_act_ap_cfi; /* ap f/w to controller interface */
2666 hfa384x_caplevel_t cap_act_ap_mfi; /* ap f/w to modem interface */
2667
2668 uint32_t psusercount; /* Power save user count. */
2669 hfa384x_CommTallies32_t tallies; /* Communication tallies. */
2670 uint8_t comment[WLAN_COMMENT_MAX+1]; /* User comment */
2671
2672 /* Channel Info request results (AP only) */
2673 struct {
2674 atomic_t done;
2675 uint8_t count;
2676 hfa384x_ChInfoResult_t results;
2677 } channel_info;
2678
2679 hfa384x_InfFrame_t *scanresults;
2680
2681
2682 prism2sta_authlist_t authlist; /* Authenticated station list. */
2683 unsigned int accessmode; /* Access mode. */
2684 prism2sta_accesslist_t allow; /* Allowed station list. */
2685 prism2sta_accesslist_t deny; /* Denied station list. */
2686
2687} hfa384x_t;
2688
2689/*=============================================================*/
2690/*--- Function Declarations -----------------------------------*/
2691/*=============================================================*/
2692#if (WLAN_HOSTIF == WLAN_USB)
2693void
2694hfa384x_create(
2695 hfa384x_t *hw,
2696 struct usb_device *usb);
2697#else
2698void
2699hfa384x_create(
2700 hfa384x_t *hw,
2701 unsigned int irq,
2702 uint32_t iobase,
2703 uint8_t __iomem *membase);
2704#endif
2705
2706void hfa384x_destroy(hfa384x_t *hw);
2707
2708irqreturn_t
2709hfa384x_INTerrupt(int irq, void *dev_id PT_REGS);
2710int
2711hfa384x_corereset( hfa384x_t *hw, int holdtime, int settletime, int genesis);
2712int
2713hfa384x_drvr_chinforesults( hfa384x_t *hw);
2714int
2715hfa384x_drvr_commtallies( hfa384x_t *hw);
2716int
2717hfa384x_drvr_disable(hfa384x_t *hw, uint16_t macport);
2718int
2719hfa384x_drvr_enable(hfa384x_t *hw, uint16_t macport);
2720int
2721hfa384x_drvr_flashdl_enable(hfa384x_t *hw);
2722int
2723hfa384x_drvr_flashdl_disable(hfa384x_t *hw);
2724int
2725hfa384x_drvr_flashdl_write(hfa384x_t *hw, uint32_t daddr, void* buf, uint32_t len);
2726int
2728int
2729hfa384x_drvr_handover( hfa384x_t *hw, uint8_t *addr);
2730int
2731hfa384x_drvr_hostscanresults( hfa384x_t *hw);
2732int
2733hfa384x_drvr_low_level(hfa384x_t *hw, hfa384x_metacmd_t *cmd);
2734int
2735hfa384x_drvr_mmi_read(hfa384x_t *hw, uint32_t address, uint32_t *result);
2736int
2737hfa384x_drvr_mmi_write(hfa384x_t *hw, uint32_t address, uint32_t data);
2738int
2739hfa384x_drvr_ramdl_enable(hfa384x_t *hw, uint32_t exeaddr);
2740int
2741hfa384x_drvr_ramdl_disable(hfa384x_t *hw);
2742int
2743hfa384x_drvr_ramdl_write(hfa384x_t *hw, uint32_t daddr, void* buf, uint32_t len);
2744int
2745hfa384x_drvr_readpda(hfa384x_t *hw, void *buf, unsigned int len);
2746int
2747hfa384x_drvr_scanresults( hfa384x_t *hw);
2748
2749int
2751
2752static inline int
2753hfa384x_drvr_getconfig16(hfa384x_t *hw, uint16_t rid, void *val)
2754{
2755 int result = 0;
2756 result = hfa384x_drvr_getconfig(hw, rid, val, sizeof(uint16_t));
2757 if ( result == 0 ) {
2759 }
2760 return result;
2761}
2762
2763static inline int
2764hfa384x_drvr_getconfig32(hfa384x_t *hw, uint16_t rid, void *val)
2765{
2766 int result = 0;
2767
2768 result = hfa384x_drvr_getconfig(hw, rid, val, sizeof(uint32_t));
2769 if ( result == 0 ) {
2771 }
2772
2773 return result;
2774}
2775
2776static inline int
2778{
2780 return hfa384x_drvr_setconfig(hw, rid, &value, sizeof(value));
2781}
2782
2783static inline int
2784hfa384x_drvr_setconfig32(hfa384x_t *hw, uint16_t rid, uint32_t val)
2785{
2787 return hfa384x_drvr_setconfig(hw, rid, &value, sizeof(value));
2788}
2789
2790#if (WLAN_HOSTIF == WLAN_USB)
2791int
2792hfa384x_drvr_getconfig_async(hfa384x_t *hw,
2793 uint16_t rid,
2794 ctlx_usercb_t usercb,
2795 void *usercb_data);
2796
2797int
2798hfa384x_drvr_setconfig_async(hfa384x_t *hw,
2799 uint16_t rid,
2800 void *buf,
2801 uint16_t len,
2802 ctlx_usercb_t usercb,
2803 void *usercb_data);
2804#else
2805static inline int
2806hfa384x_drvr_setconfig_async(hfa384x_t *hw, uint16_t rid, void *buf, uint16_t len,
2807 void *ptr1, void *ptr2)
2808{
2809 (void)ptr1;
2810 (void)ptr2;
2811 return hfa384x_drvr_setconfig(hw, rid, buf, len);
2812}
2813#endif
2814
2815static inline int
2816hfa384x_drvr_setconfig16_async(hfa384x_t *hw, uint16_t rid, uint16_t val)
2817{
2819 return hfa384x_drvr_setconfig_async(hw, rid, &value, sizeof(value),
2820 NULL , NULL);
2821}
2822
2823static inline int
2824hfa384x_drvr_setconfig32_async(hfa384x_t *hw, uint16_t rid, uint32_t val)
2825{
2827 return hfa384x_drvr_setconfig_async(hw, rid, &value, sizeof(value),
2828 NULL , NULL);
2829}
2830
2831
2832int
2833hfa384x_drvr_start(hfa384x_t *hw);
2834int
2835hfa384x_drvr_stop(hfa384x_t *hw);
2836int
2837hfa384x_drvr_txframe(hfa384x_t *hw, struct sk_buff *skb, p80211_hdr_t *p80211_hdr, p80211_metawep_t *p80211_wep);
2838void
2839hfa384x_tx_timeout(wlandevice_t *wlandev);
2840
2841int
2842hfa384x_cmd_initialize(hfa384x_t *hw);
2843int
2844hfa384x_cmd_enable(hfa384x_t *hw, uint16_t macport);
2845int
2846hfa384x_cmd_disable(hfa384x_t *hw, uint16_t macport);
2847int
2848hfa384x_cmd_diagnose(hfa384x_t *hw);
2849int
2850hfa384x_cmd_allocate(hfa384x_t *hw, uint16_t len);
2851int
2852hfa384x_cmd_transmit(hfa384x_t *hw, uint16_t reclaim, uint16_t qos, uint16_t fid);
2853int
2854hfa384x_cmd_clearpersist(hfa384x_t *hw, uint16_t fid);
2855int
2856hfa384x_cmd_notify(hfa384x_t *hw, uint16_t reclaim, uint16_t fid, void *buf, uint16_t len);
2857int
2858hfa384x_cmd_inquire(hfa384x_t *hw, uint16_t fid);
2859int
2861int
2862hfa384x_cmd_monitor(hfa384x_t *hw, uint16_t enable);
2863int
2864hfa384x_cmd_download(
2865 hfa384x_t *hw,
2866 uint16_t mode,
2867 uint16_t lowaddr,
2868 uint16_t highaddr,
2869 uint16_t codelen);
2870int
2871hfa384x_cmd_aux_enable(hfa384x_t *hw, int force);
2872int
2873hfa384x_cmd_aux_disable(hfa384x_t *hw);
2874int
2876 hfa384x_t *hw,
2877 uint16_t bap,
2878 uint16_t id,
2880 void *buf,
2881 unsigned int len);
2882int
2884 hfa384x_t *hw,
2885 uint16_t bap,
2886 uint16_t id,
2888 void *buf,
2889 unsigned int len);
2890void
2891hfa384x_copy_from_aux(
2892 hfa384x_t *hw,
2893 uint32_t cardaddr,
2894 uint32_t auxctl,
2895 void *buf,
2896 unsigned int len);
2897void
2898hfa384x_copy_to_aux(
2899 hfa384x_t *hw,
2900 uint32_t cardaddr,
2901 uint32_t auxctl,
2902 void *buf,
2903 unsigned int len);
2904
2905#if (WLAN_HOSTIF != WLAN_USB)
2906
2907/*
2908 HFA384x is a LITTLE ENDIAN part.
2909
2910 the get/setreg functions implicitly byte-swap the data to LE.
2911 the _noswap variants do not perform a byte-swap on the data.
2912*/
2913
2914static inline uint16_t
2915__hfa384x_getreg(hfa384x_t *hw, unsigned int reg);
2916
2917static inline void
2918__hfa384x_setreg(hfa384x_t *hw, uint16_t val, unsigned int reg);
2919
2920static inline uint16_t
2921__hfa384x_getreg_noswap(hfa384x_t *hw, unsigned int reg);
2922
2923static inline void
2924__hfa384x_setreg_noswap(hfa384x_t *hw, uint16_t val, unsigned int reg);
2925
2926#ifdef REVERSE_ENDIAN
2927#define hfa384x_getreg __hfa384x_getreg_noswap
2928#define hfa384x_setreg __hfa384x_setreg_noswap
2929#define hfa384x_getreg_noswap __hfa384x_getreg
2930#define hfa384x_setreg_noswap __hfa384x_setreg
2931#else
2932#define hfa384x_getreg __hfa384x_getreg
2933#define hfa384x_setreg __hfa384x_setreg
2934#define hfa384x_getreg_noswap __hfa384x_getreg_noswap
2935#define hfa384x_setreg_noswap __hfa384x_setreg_noswap
2936#endif
2937
2938/*----------------------------------------------------------------
2939* hfa384x_getreg
2940*
2941* Retrieve the value of one of the MAC registers. Done here
2942* because different PRISM2 MAC parts use different buses and such.
2943* NOTE: This function returns the value in HOST ORDER!!!!!!
2944*
2945* Arguments:
2946* hw MAC part structure
2947* reg Register identifier (offset for I/O based i/f)
2948*
2949* Returns:
2950* Value from the register in HOST ORDER!!!!
2951----------------------------------------------------------------*/
2952static inline uint16_t
2953__hfa384x_getreg(hfa384x_t *hw, unsigned int reg)
2954{
2955/* printk(KERN_DEBUG "Reading from 0x%0x\n", hw->membase + reg); */
2956#if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
2957 return wlan_inw_le16_to_cpu(hw->iobase+reg);
2958#elif (WLAN_HOSTIF == WLAN_PCI)
2959 return __le16_to_cpu(readw(hw->membase + reg));
2960#endif
2961}
2962
2963/*----------------------------------------------------------------
2964* hfa384x_setreg
2965*
2966* Set the value of one of the MAC registers. Done here
2967* because different PRISM2 MAC parts use different buses and such.
2968* NOTE: This function assumes the value is in HOST ORDER!!!!!!
2969*
2970* Arguments:
2971* hw MAC part structure
2972* val Value, in HOST ORDER!!, to put in the register
2973* reg Register identifier (offset for I/O based i/f)
2974*
2975* Returns:
2976* Nothing
2977----------------------------------------------------------------*/
2978static inline void
2979__hfa384x_setreg(hfa384x_t *hw, uint16_t val, unsigned int reg)
2980{
2981#if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
2982 wlan_outw_cpu_to_le16( val, hw->iobase + reg);
2983 return;
2984#elif (WLAN_HOSTIF == WLAN_PCI)
2985 writew(__cpu_to_le16(val), hw->membase + reg);
2986 return;
2987#endif
2988}
2989
2990
2991/*----------------------------------------------------------------
2992* hfa384x_getreg_noswap
2993*
2994* Retrieve the value of one of the MAC registers. Done here
2995* because different PRISM2 MAC parts use different buses and such.
2996*
2997* Arguments:
2998* hw MAC part structure
2999* reg Register identifier (offset for I/O based i/f)
3000*
3001* Returns:
3002* Value from the register.
3003----------------------------------------------------------------*/
3004static inline uint16_t
3005__hfa384x_getreg_noswap(hfa384x_t *hw, unsigned int reg)
3006{
3007#if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
3008 return wlan_inw(hw->iobase+reg);
3009#elif (WLAN_HOSTIF == WLAN_PCI)
3010 return readw(hw->membase + reg);
3011#endif
3012}
3013
3014
3015/*----------------------------------------------------------------
3016* hfa384x_setreg_noswap
3017*
3018* Set the value of one of the MAC registers. Done here
3019* because different PRISM2 MAC parts use different buses and such.
3020*
3021* Arguments:
3022* hw MAC part structure
3023* val Value to put in the register
3024* reg Register identifier (offset for I/O based i/f)
3025*
3026* Returns:
3027* Nothing
3028----------------------------------------------------------------*/
3029static inline void
3030__hfa384x_setreg_noswap(hfa384x_t *hw, uint16_t val, unsigned int reg)
3031{
3032#if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
3033 wlan_outw( val, hw->iobase + reg);
3034 return;
3035#elif (WLAN_HOSTIF == WLAN_PCI)
3036 writew(val, hw->membase + reg);
3037 return;
3038#endif
3039}
3040
3041
3042static inline void hfa384x_events_all(hfa384x_t *hw)
3043{
3046#ifdef CMD_IRQ
3048#endif
3049 ,
3051
3052}
3053
3054static inline void hfa384x_events_nobap(hfa384x_t *hw)
3055{
3058#ifdef CMD_IRQ
3060#endif
3061 ,
3063
3064}
3065
3066#endif /* WLAN_HOSTIF != WLAN_USB */
3067#endif /* __KERNEL__ */
3068
3069#endif /* _HFA384x_H */
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
struct golan_eqe_cmd cmd
Definition CIB_PRM.h:1
u32 link
Link to next descriptor.
Definition ar9003_mac.h:1
pseudo_bit_t value[0x00020]
Definition arbel.h:2
pseudo_bit_t completion[0x00001]
Definition arbel.h:2
uint16_t result
Definition hyperv.h:33
unsigned short uint16_t
Definition stdint.h:11
unsigned int uint32_t
Definition stdint.h:12
unsigned char uint8_t
Definition stdint.h:10
struct bofm_section_header done
Definition bofm_test.c:46
uint16_t offset
Offset to command line.
Definition bzimage.h:3
static unsigned short dev_id
Definition davicom.c:128
ring len
Length.
Definition dwmac.h:226
uint32_t addr
Buffer address.
Definition dwmac.h:9
uint8_t data[48]
Additional event data.
Definition ena.h:11
uint8_t status
Status.
Definition ena.h:5
uint32_t node
NUMA node register offset.
Definition ena.h:7
uint64_t address
Base address.
Definition ena.h:13
uint16_t mode
Acceleration mode.
Definition ena.h:15
uint8_t state
State.
Definition eth_slow.h:36
static unsigned int count
Number of entries.
Definition dwmac.h:220
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
device nvs write
Definition threewire.h:62
struct hfa384x_pdr_trimdac_setup hfa384x_pdr_trimdac_setup_t
struct hfa384x_ChInfoResult hfa384x_ChInfoResult_t
struct hfa384x_PRISupRange hfa384x_PRISupRange_t
struct hfa384x_usb_infofrm hfa384x_usb_infofrm_t
struct hfa384x_SupportedDataRates hfa384x_SupportedDataRates_t
struct hfa384x_pdr_mkk_measurements hfa384x_pdr_mkk_measurements_t
struct hfa384x_record16 hfa384x_rec16_t
struct hfa384x_JoinRequest_data hfa384x_JoinRequest_data_t
struct hfa384x_record32 hfa384x_rec32
struct hfa384x_AuthenticationAlgorithms_data hfa384x_AuthenticationAlgorithms_data_t
struct hfa384x_usb_wmemreq hfa384x_usb_wmemreq_t
#define HFA384x_HSCANRESULT_MAX
Definition hfa384x.h:78
struct hfa384x_pdr_rfr_setting hfa384x_pdr_rfr_setting_t
struct hfa384x_PCFInfo hfa384x_PCFInfo_t
struct hfa384x_CFISupRange hfa384x_CFISupRange_t
#define HFA384x_INT_BAP_OP
Definition hfa384x.h:313
struct hfa384x_LFOStatus hfa384x_LFOStatus_t
struct hfa384x_pdr_hfa3861_nic_config hfa384x_pdr_nic_config_t
struct hfa384x_caplevel hfa384x_caplevel_t
struct hfa384x_pdr_mac_address hfa384x_pdr_mac_address_t
struct hfa384x_pdr_privacy_option hfa384x_pdr_privacy_option_t
struct hfa384x_AssocRequest hfa384x_AssocReq_t
struct hfa384x_authenticateStation_data hfa384x_authenticateStation_data_t
struct hfa384x_dbmcommsquality hfa384x_dbmcommsquality_t
struct hfa384x_TxRateControl hfa384x_TxRateControl_t
struct hfa384x_cnfOwnSSID hfa384x_cnfOwnSSID_t
struct hfa384x_pdr_default_channel hfa384x_pdr_default_channel_t
struct hfa384x_cnfPMHoldoverDuration hfa384x_cnfPMHoldoverDuration_t
union hfa384x_infodata hfa384x_infodata_t
struct hfa384x_usb_wridreq hfa384x_usb_wridreq_t
struct hfa384x_bytestr32 hfa384x_bytestr32_t
struct hfa384x_KeyIDChanged hfa384x_KeyIDChanged_t
struct hfa384x_MaxTransmitLifetime hfa384x_MaxTransmitLifetime_t
hfa384x_usb_cmdresp_t hfa384x_usb_wridresp_t
Definition hfa384x.h:2088
struct hfa384x_pdrec hfa384x_pdrec_t
struct hfa384x_usb_rmemresp hfa384x_usb_rmemresp_t
struct hfa384x_pdr_hfo_delay hfa384x_hfo_delay_t
#define HFA384x_SCANRESULT_MAX
Definition hfa384x.h:77
struct hfa384x_CurrentBeaconInterval hfa384x_CurrentBeaconInterval_t
struct hfa384x_ScanResult hfa384x_ScanResult_t
struct hfa384x_MFIActRanges hfa384x_MFIActRanges_t
struct hfa384x_cnfOwnATIMWindow hfa384x_cnfOwnATIMWindow_t
#define HFA384x_FWID_LEN
Definition hfa384x.h:1308
#define HFA384x_NUMPORTS_MAX
Definition hfa384x.h:73
struct hfa384x_CFIActRanges hfa384x_CFIActRanges_t
struct hfa384x_pdr_hfa3861_manf_testsp hfa384x_pdr_hfa3861_manf_testsp_t
struct hfa384x_PortStatus hfa384x_PortStatus_t
struct hfa384x_usb_rmemreq hfa384x_usb_rmemreq_t
struct hfa384x_PromiscuousMode hfa384x_PromiscuousMode_t
struct hfa384x_pdr_refdac_measurements hfa384x_pdr_refdac_measurements_t
struct hfa384x_GroupAddresses hfa384x_GroupAddresses_t
struct hfa384x_pdr_hfa3861_ifrf hfa384x_pdr_hfa3861_ifrf_t
union hfa384x_usbout hfa384x_usbout_t
struct hfa384x_pdr_refdac_setup hfa384x_pdr_refdac_setup_t
struct hfa384x_pdr_allowed_channel hfa384x_pdr_allowed_channel_t
struct hfa384x_FWID hfa384x_FWID_t
struct hfa384x_NICIdentity hfa384x_NICIdentity_t
struct hfa384x_usb_txfrm hfa384x_usb_txfrm_t
struct hfa384x_PHYType hfa384x_PHYType_t
struct hfa384x_cnfSystemScale hfa384x_cnfSystemScale_t
struct hfa384x_ChannelInfoRequest_data hfa384x_ChannelInfoRequest_data_t
struct hfa384x_pdr_hfa3861_shadow hfa384x_pdr_hfa3861_shadow_t
struct hfa384x_end_of_pda hfa384x_pdr_end_of_pda_t
struct hfa384x_HandoverAddr hfa384x_HandoverAddr_t
struct hfa384x_MaxLoadTime hfa384x_MaxLoadTime_t
struct hfa384x_CurrentSSID hfa384x_CurrentSSID_t
struct hfa384x_BuildSeq hfa384x_BuildSeq_t
struct hfa384x_HScanResultSub hfa384x_HScanResultSub_t
struct hfa384x_pdr_pcb_partnum hfa384x_pdr_pcb_partnum_t
struct hfa384x_tx_frame hfa384x_tx_frame_t
struct hfa384x_cnfPortType hfa384x_cnfPortType_t
struct hfa384x_LEDControl hfa384x_LEDControl_t
struct hfa384x_pdr_level_comp_setup hfa384x_pdr_level_comp_setup_t
struct hfa384x_NICSerialNumber hfa384x_NICSerialNumber_t
struct hfa384x_CreateIBSS hfa384x_CreateIBSS_t
struct hfa384x_CommTallies16 hfa384x_CommTallies16_t
struct hfa384x_usb_error hfa384x_usb_error_t
struct hfa384x_pdr_vgdac_measurements hfa384x_pdr_vgdac_measurements_t
struct hfa384x_cnfOwnName hfa384x_cnfOwnName_t
struct hfa384x_LinkStatus hfa384x_LinkStatus_t
#define HFA384x_INT_NORMAL
Definition hfa384x.h:315
#define HFA384x_DRVR_FIDSTACKLEN_MAX
Definition hfa384x.h:80
struct hfa384x_cnfWDSAddressN hfa384x_cnfWDSAddressN_t
struct hfa384x_pdr_temptype hfa384x_pdr_temptype_t
struct hfa384x_pdr_level_comp_measurements hfa384x_pdr_level_compc_measurements_t
struct hfa384x_usb_cmdreq hfa384x_usb_cmdreq_t
struct hfa384x_AuthRequest hfa384x_AuthReq_t
struct hfa384x_cnfMulticastReceive hfa384x_cnfMulticastReceive_t
#define HFA384x_USB_RWMEM_MAXLEN
Definition hfa384x.h:90
struct hfa384x_cnfOwnDTIMPeriod hfa384x_cnfOwnDTIMPeriod_t
struct hfa384x_PSUserCount hfa384x_PSUserCount_t
struct hfa384x_WEPKeyMapping hfa384x_WEPKeyMapping_t
struct hfa384x_commsquality hfa384x_commsquality_t
struct hfa384x_HScanResult hfa384x_HScanResult_t
struct hfa384x_ChInfoResultSub hfa384x_ChInfoResultSub_t
union hfa384x_usbin hfa384x_usbin_t
struct hfa384x_TempType hfa384x_TempType_t
struct hfa384x_AssocStatus hfa384x_AssocStatus_t
struct hfa384x_ShortRetryLimit hfa384x_ShortRetryLimit_t
struct hfa384x_CurrentPowerState hfa384x_CurrentPowerState_t
struct hfa384x_usb_rridreq hfa384x_usb_rridreq_t
struct hfa384x_pdr_pcb_tracenum hfa384x_pdr_pcb_tracenum_t
struct hfa384x_cnfOwnMACAddress hfa384x_cnfOwnMACAddress_t
struct hfa384x_TickTime hfa384x_TickTime_t
struct hfa384x_cnfDesiredSSID hfa384x_cnfDesiredSSID_t
struct hfa384x_cnfPMEPS hfa384x_cnfPMEPS_t
struct hfa384x_usb_statusresp hfa384x_usb_cmdresp_t
struct hfa384x_CurrentBSSID hfa384x_CurrentBSSID_t
struct hfa384x_cnfOwnChannel hfa384x_cnfOwnChannel_t
struct hfa384x_associateStation_data hfa384x_associateStation_data_t
struct hfa384x_ScanResultSub hfa384x_ScanResultSub_t
struct hfa384x_pdr_hfa3861_chcalsp hfa384x_pdr_hfa3861_chcalsp_t
struct hfa384x_pdr_nicid hfa384x_pdr_nicid_t
struct hfa384x_pdr_nic_ramsize hfa384x_pdr_nic_ramsize_t
#define HFA384x_RIDDATA_MAXLEN
Definition hfa384x.h:89
struct hfa384x_CFPollable hfa384x_CFPollable_t
struct hfa384x_usb_rridresp hfa384x_usb_rridresp_t
struct hfa384x_ScanRequest_data hfa384x_ScanRequest_data_t
struct hfa384x_RegulatoryDomains hfa384x_RegulatoryDomains_t
struct hfa384x_pdr_mfisuprange hfa384x_pdr_mfisuprange_t
struct hfa384x_usb_bufavail hfa384x_usb_bufavail_t
struct hfa384x_pdr_cfisuprange hfa384x_pdr_cfisuprange_t
struct hfa384x_MaxReceiveLifetime hfa384x_MaxReceiveLifetime_t
struct hfa384x_bytestr hfa384x_bytestr_t
struct hfa384x_PCFInfo_data hfa384x_PCFInfo_data_t
#define HFA384x_CHINFORESULT_MAX
Definition hfa384x.h:79
struct hfa384x_pdr_vgdac_setup hfa384x_pdr_vgdac_setup_t
struct hfa384x_MFISupRange hfa384x_MFISupRange_t
struct hfa384x_compident hfa384x_compident_t
struct hfa384x_STASupRange hfa384x_STASupRange_t
struct hfa384x_record hfa384x_rec_t
struct hfa384x_RTSThreshold hfa384x_RTSThreshold_t
struct hfa384x_CIS hfa384x_CIS_t
struct hfa384x_cnfMaxSleepDuration hfa384x_cnfMaxSleepDuration_t
struct hfa384x_AuthenticationAlgorithms hfa384x_AuthenticationAlgorithms_t
struct hfa384x_STAIdentity hfa384x_STAIdentity_t
struct hfa384x_pdr_mkk_callname hfa384x_pdr_mkk_callname_t
struct hfa384x_HostScanRequest_data hfa384x_HostScanRequest_data_t
struct hfa384x_MicFailure hfa384x_MicFailure_t
struct hfa384x_InfFrame hfa384x_InfFrame_t
struct hfa384x_ChannelList hfa384x_ChannelList_t
struct hfa384x_ProtocolRspTime hfa384x_ProtocolRspTime_t
struct hfa384x_CurrentTxRate hfa384x_CurrentTxRate_t
struct hfa384x_PRIIdentity hfa384x_PRIIdentity_t
struct hfa384x_CCAMode hfa384x_CCAMode_t
struct hfa384x_OwnMACAddress hfa384x_OwnMACAddress_t
struct hfa384x_cnfPMEnabled hfa384x_cnfPMEnabled_t
struct hfa384x_CurrentScaleThresholds hfa384x_CurrentScaleThresholds_t
struct hfa384x_pdr_hfa3861_manf_testi hfa384x_pdr_hfa3861_manf_testi_t
struct hfa384x_WPAData hfa384x_WPAData_t
struct hfa384x_pdr_hfa3861_chcali hfa384x_pdr_hfa3861_chcali_t
#define HFA384x_INTEN_CMD_SET(value)
Definition hfa384x.h:872
struct hfa384x_CommTallies32 hfa384x_CommTallies32_t
hfa384x_usb_cmdresp_t hfa384x_usb_wmemresp_t
Definition hfa384x.h:2097
struct hfa384x_downloadbuffer hfa384x_downloadbuffer_t
struct hfa384x_rx_frame hfa384x_rx_frame_t
struct hfa384x_PrivacyOptionImplemented hfa384x_PrivacyOptionImplemented_t
struct hfa384x_cnfMaxDataLength hfa384x_cnfMaxDataLength_t
struct hfa384x_pdr_regdomain hfa384x_pdr_regdomain_t
struct hfa384x_FragmentationThreshold hfa384x_FragmentationThreshold_t
struct hfa384x_pdr_hfa3861_baseline hfa384x_pdr_hfa3861_baseline_t
struct hfa384x_pdr_nic_serial hfa384x_pdr_nic_serial_t
struct hfa384x_cnfMulticastPMBuffering hfa384x_cnfMulticastPMBuffering_t
#define HFA384x_INTEN
Definition hfa384x.h:807
struct hfa384x_LongRetryLimit hfa384x_LongRetryLimit_t
struct hfa384x_cnfWDSAddress hfa384x_cnfWDSAddress_t
struct hfa384x_CurrentChannel hfa384x_CurrentChannel_t
struct hfa384x_usb_rxfrm hfa384x_usb_rxfrm_t
struct hfa384x_pdr_ifr_setting hfa384x_pdr_ifr_setting_t
u8 addr1[ETH_ALEN]
Address 1 (immediate receiver)
Definition ieee80211.h:2
int spinlock_t
Definition igbvf_osdep.h:54
#define __iomem
Definition igbvf_osdep.h:46
uint32_t pending
Pending events.
Definition hyperv.h:1
void __asmcall int val
Definition setjmp.h:12
static unsigned int unsigned int reg
Definition myson.h:162
#define WLAN_DATA_MAXLEN
Definition p80211hdr.h:87
union p80211_hdr p80211_hdr_t
#define WLAN_ADDR_LEN
Definition p80211hdr.h:80
#define WLAN_BSSID_LEN
Definition p80211hdr.h:82
static int hfa384x_cmd_access(hfa384x_t *hw, uint16_t write, uint16_t rid)
Definition prism2.c:426
#define host2hfa384x_32(n)
Definition prism2.c:85
#define host2hfa384x_16(n)
Definition prism2.c:84
static int hfa384x_copy_to_bap(hfa384x_t *hw, uint16_t id, uint16_t offset, void *buf, unsigned int len)
Definition prism2.c:383
#define hfa384x2host_16(n)
Definition prism2.c:82
#define __cpu_to_le16(x)
Definition prism2.c:79
static int hfa384x_drvr_setconfig(hfa384x_t *hw, uint16_t rid, void *buf, uint16_t len)
Definition prism2.c:518
#define __le16_to_cpu(x)
Definition prism2.c:77
struct hfa384x hfa384x_t
static int hfa384x_drvr_setconfig16(hfa384x_t *hw, uint16_t rid, uint16_t *val)
Definition prism2.c:555
static int hfa384x_drvr_getconfig(hfa384x_t *hw, uint16_t rid, void *buf, uint16_t len)
Definition prism2.c:445
#define hfa384x2host_32(n)
Definition prism2.c:83
static void hfa384x_setreg(hfa384x_t *hw, uint16_t val, unsigned int reg)
Definition prism2.c:193
static int hfa384x_copy_from_bap(hfa384x_t *hw, uint16_t id, uint16_t offset, void *buf, unsigned int len)
Definition prism2.c:344
uint8_t sta_addr[WLAN_ADDR_LEN]
Definition hfa384x.h:1940
uint8_t wpa_data[80]
Definition hfa384x.h:1942
uint16_t assocstatus
Definition hfa384x.h:1920
uint8_t old_ap_addr[WLAN_ADDR_LEN]
Definition hfa384x.h:1923
uint8_t sta_addr[WLAN_ADDR_LEN]
Definition hfa384x.h:1921
uint8_t sta_addr[WLAN_ADDR_LEN]
Definition hfa384x.h:1932
uint16_t primary
Definition hfa384x.h:1303
uint16_t secondary
Definition hfa384x.h:1304
uint16_t CCAMode
Definition hfa384x.h:1540
uint16_t CFIVariant
Definition hfa384x.h:1296
uint16_t CFPollable
Definition hfa384x.h:1467
uint8_t CIS[480]
Definition hfa384x.h:1335
hfa384x_ChInfoResultSub_t result[HFA384x_CHINFORESULT_MAX]
Definition hfa384x.h:1868
uint16_t scanchannels
Definition hfa384x.h:1866
uint16_t ChannelList
Definition hfa384x.h:1317
uint16_t txmulticastframes
Definition hfa384x.h:1783
uint16_t rxunicastframes
Definition hfa384x.h:1792
uint16_t rxdiscardsnobuffer
Definition hfa384x.h:1798
uint16_t txmulticastoctets
Definition hfa384x.h:1786
uint16_t txsingleretryframes
Definition hfa384x.h:1788
uint16_t rxmulticastoctets
Definition hfa384x.h:1796
uint16_t rxmsginmsgfrag
Definition hfa384x.h:1801
uint16_t rxdiscardswepundecr
Definition hfa384x.h:1800
uint16_t txretrylimitexceeded
Definition hfa384x.h:1790
uint16_t txunicastframes
Definition hfa384x.h:1782
uint16_t rxmsginbadmsgfrag
Definition hfa384x.h:1802
uint16_t txunicastoctets
Definition hfa384x.h:1785
uint16_t rxunicastoctets
Definition hfa384x.h:1795
uint16_t txdiscardswrongsa
Definition hfa384x.h:1799
uint16_t txdeferredtrans
Definition hfa384x.h:1787
uint16_t txmultipleretryframes
Definition hfa384x.h:1789
uint16_t rxmulticastframes
Definition hfa384x.h:1793
uint32_t rxmsginbadmsgfrag
Definition hfa384x.h:1827
uint32_t rxmulticastoctets
Definition hfa384x.h:1821
uint32_t txmulticastoctets
Definition hfa384x.h:1811
uint32_t rxdiscardsnobuffer
Definition hfa384x.h:1823
uint32_t rxunicastframes
Definition hfa384x.h:1817
uint32_t txsingleretryframes
Definition hfa384x.h:1813
uint32_t txunicastoctets
Definition hfa384x.h:1810
uint32_t rxmsginmsgfrag
Definition hfa384x.h:1826
uint32_t txmulticastframes
Definition hfa384x.h:1808
uint32_t txunicastframes
Definition hfa384x.h:1807
uint32_t rxunicastoctets
Definition hfa384x.h:1820
uint32_t txretrylimitexceeded
Definition hfa384x.h:1815
uint32_t rxdiscardswepundecr
Definition hfa384x.h:1825
uint32_t txdiscardswrongsa
Definition hfa384x.h:1824
uint32_t rxmulticastframes
Definition hfa384x.h:1818
uint32_t txdeferredtrans
Definition hfa384x.h:1812
uint32_t txmultipleretryframes
Definition hfa384x.h:1814
uint16_t CreateIBSS
Definition hfa384x.h:1114
uint8_t CurrentBSSID[6]
Definition hfa384x.h:1393
uint8_t CurrentSSID[34]
Definition hfa384x.h:1387
uint8_t secondary[HFA384x_FWID_LEN]
Definition hfa384x.h:1311
uint8_t primary[HFA384x_FWID_LEN]
Definition hfa384x.h:1310
uint8_t MACAddress[16][6]
Definition hfa384x.h:1108
uint8_t supprates[10]
Definition hfa384x.h:1881
hfa384x_bytestr32_t ssid
Definition hfa384x.h:1880
uint8_t bssid[WLAN_BSSID_LEN]
Definition hfa384x.h:1877
hfa384x_HScanResultSub_t result[HFA384x_HSCANRESULT_MAX]
Definition hfa384x.h:1891
uint8_t handover_addr[WLAN_BSSID_LEN]
Definition hfa384x.h:1776
hfa384x_bytestr32_t ssid
Definition hfa384x.h:1158
uint16_t framelen
Definition hfa384x.h:1986
hfa384x_infodata_t info
Definition hfa384x.h:1988
uint16_t infotype
Definition hfa384x.h:1987
uint8_t bssid[WLAN_BSSID_LEN]
Definition hfa384x.h:1164
uint8_t sta_addr[WLAN_ADDR_LEN]
Definition hfa384x.h:1966
uint16_t assoc_on
Definition hfa384x.h:1568
uint16_t searching_off
Definition hfa384x.h:1567
uint16_t searching_on
Definition hfa384x.h:1566
uint16_t assoc_off
Definition hfa384x.h:1569
uint16_t activity
Definition hfa384x.h:1570
uint16_t VRHFOResult
Definition hfa384x.h:1554
uint16_t LFOResult
Definition hfa384x.h:1553
uint16_t TestResults
Definition hfa384x.h:1552
uint16_t linkstatus
Definition hfa384x.h:1906
uint16_t MFIVariant
Definition hfa384x.h:1286
uint16_t MaxLoadTime
Definition hfa384x.h:1225
uint8_t dest[WLAN_ADDR_LEN]
Definition hfa384x.h:1954
uint8_t sender[WLAN_ADDR_LEN]
Definition hfa384x.h:1953
uint16_t NICMinorVersion
Definition hfa384x.h:1278
uint16_t NICMajorVersion
Definition hfa384x.h:1277
uint16_t NICVariant
Definition hfa384x.h:1276
uint8_t NICSerialNumber[12]
Definition hfa384x.h:1269
uint8_t OwnMACAddress[6]
Definition hfa384x.h:1494
uint16_t CFPMaxDuration
Definition hfa384x.h:1511
uint16_t MediumOccupancyLimit
Definition hfa384x.h:1509
uint16_t CFPFlags
Definition hfa384x.h:1503
uint16_t MediumOccupancyLimit
Definition hfa384x.h:1500
uint16_t CFPPeriod
Definition hfa384x.h:1501
uint16_t CFPMaxDuration
Definition hfa384x.h:1502
uint16_t PHYType
Definition hfa384x.h:1522
uint16_t PRIVariant
Definition hfa384x.h:1241
uint16_t PRIMajorVersion
Definition hfa384x.h:1242
uint16_t PRIMinorVersion
Definition hfa384x.h:1243
uint16_t PRIVariant
Definition hfa384x.h:1251
uint16_t PortStatus
Definition hfa384x.h:1374
uint16_t RTSThreshold
Definition hfa384x.h:1131
uint8_t RegulatoryDomains[12]
Definition hfa384x.h:1323
uint16_t STAMajorVersion
Definition hfa384x.h:1343
uint16_t STAVariant
Definition hfa384x.h:1342
uint16_t STAMinorVersion
Definition hfa384x.h:1344
uint16_t STAVariant
Definition hfa384x.h:1352
hfa384x_bytestr32_t ssid
Definition hfa384x.h:1839
uint8_t supprates[10]
Definition hfa384x.h:1840
uint16_t proberesp_rate
Definition hfa384x.h:1841
uint8_t bssid[WLAN_BSSID_LEN]
Definition hfa384x.h:1836
hfa384x_ScanResultSub_t result[HFA384x_SCANRESULT_MAX]
Definition hfa384x.h:1849
uint16_t scanreason
Definition hfa384x.h:1847
uint8_t SupportedDataRates[10]
Definition hfa384x.h:1546
uint16_t TempType
Definition hfa384x.h:1329
uint16_t TickTime
Definition hfa384x.h:1215
uint8_t mic_receive_key[4]
Definition hfa384x.h:1198
uint8_t address[WLAN_ADDR_LEN]
Definition hfa384x.h:1194
uint8_t mic_transmit_key[4]
Definition hfa384x.h:1197
uint16_t datalen
Definition hfa384x.h:1204
uint8_t data[0]
Definition hfa384x.h:1205
uint8_t address[WLAN_ADDR_LEN]
Definition hfa384x.h:1179
uint8_t address[WLAN_ADDR_LEN]
Definition hfa384x.h:1171
uint8_t data[32]
Definition hfa384x.h:939
uint16_t len
Definition hfa384x.h:932
uint8_t data[0]
Definition hfa384x.h:933
uint16_t bottom
Definition hfa384x.h:983
uint16_t top
Definition hfa384x.h:984
uint16_t role
Definition hfa384x.h:980
uint16_t variant
Definition hfa384x.h:982
uint16_t id
Definition hfa384x.h:981
uint8_t cnfDesiredSSID[34]
Definition hfa384x.h:1002
uint8_t cnfOwnMACAddress[6]
Definition hfa384x.h:996
uint8_t cnfOwnName[34]
Definition hfa384x.h:1079
uint8_t cnfOwnSSID[34]
Definition hfa384x.h:1014
uint16_t cnfPMEPS
Definition hfa384x.h:1050
uint16_t cnfPMEnabled
Definition hfa384x.h:1044
uint16_t cnfPortType
Definition hfa384x.h:990
uint8_t cnfWDSAddress[6]
Definition hfa384x.h:1091
uint8_t cnfWDSAddress[6]
Definition hfa384x.h:1038
uint16_t major
Definition hfa384x.h:974
uint16_t variant
Definition hfa384x.h:973
uint16_t minor
Definition hfa384x.h:975
uint16_t variant
Definition hfa384x.h:2207
uint16_t ch_value[14]
Definition hfa384x.h:2266
uint16_t domain[5]
Definition hfa384x.h:2241
uint16_t ch_value[14]
Definition hfa384x.h:2271
uint16_t code
Definition hfa384x.h:2348
uint16_t len
Definition hfa384x.h:2347
uint16_t reclen
Definition hfa384x.h:957
uint16_t rid
Definition hfa384x.h:958
uint16_t val
Definition hfa384x.h:959
uint16_t reclen
Definition hfa384x.h:964
uint32_t val
Definition hfa384x.h:966
uint16_t rid
Definition hfa384x.h:965
uint16_t rid
Definition hfa384x.h:952
uint16_t reclen
Definition hfa384x.h:951
uint8_t address2[6]
Definition hfa384x.h:1714
uint16_t reserved2
Definition hfa384x.h:1708
uint16_t duration_id
Definition hfa384x.h:1712
uint8_t rx_flow
Definition hfa384x.h:1706
uint8_t address3[6]
Definition hfa384x.h:1715
uint16_t sequence_control
Definition hfa384x.h:1716
uint8_t src_addr[6]
Definition hfa384x.h:1722
uint16_t reserved1
Definition hfa384x.h:1707
uint8_t silence
Definition hfa384x.h:1703
uint16_t data_len
Definition hfa384x.h:1718
uint16_t data_length
Definition hfa384x.h:1723
uint8_t dest_addr[6]
Definition hfa384x.h:1721
uint32_t time
Definition hfa384x.h:1702
uint8_t address4[6]
Definition hfa384x.h:1717
uint16_t status
Definition hfa384x.h:1701
uint16_t frame_control
Definition hfa384x.h:1711
uint8_t address1[6]
Definition hfa384x.h:1713
uint16_t reserved2
Definition hfa384x.h:1618
uint8_t address2[6]
Definition hfa384x.h:1629
uint16_t sequence_control
Definition hfa384x.h:1631
uint32_t sw_support
Definition hfa384x.h:1619
uint8_t address4[6]
Definition hfa384x.h:1632
uint8_t tx_rate
Definition hfa384x.h:1621
uint16_t duration_id
Definition hfa384x.h:1627
uint8_t dest_addr[6]
Definition hfa384x.h:1637
uint16_t frame_control
Definition hfa384x.h:1626
uint8_t address1[6]
Definition hfa384x.h:1628
uint16_t status
Definition hfa384x.h:1616
uint8_t address3[6]
Definition hfa384x.h:1630
uint8_t tx_retrycount
Definition hfa384x.h:1620
uint16_t tx_control
Definition hfa384x.h:1622
uint16_t data_length
Definition hfa384x.h:1639
uint8_t src_addr[6]
Definition hfa384x.h:1638
uint16_t data_len
Definition hfa384x.h:1633
uint16_t reserved1
Definition hfa384x.h:1617
uint8_t pad[54]
Definition hfa384x.h:2034
uint16_t errortype
Definition hfa384x.h:2112
hfa384x_InfFrame_t info
Definition hfa384x.h:2077
uint8_t pad[56]
Definition hfa384x.h:2064
uint8_t data[HFA384x_USB_RWMEM_MAXLEN]
Definition hfa384x.h:2102
uint8_t pad[58]
Definition hfa384x.h:2048
uint8_t data[HFA384x_RIDDATA_MAXLEN]
Definition hfa384x.h:2094
uint8_t data[WLAN_DATA_MAXLEN]
Definition hfa384x.h:2072
hfa384x_rx_frame_t desc
Definition hfa384x.h:2071
uint8_t data[WLAN_DATA_MAXLEN]
Definition hfa384x.h:2025
hfa384x_tx_frame_t desc
Definition hfa384x.h:2024
uint8_t data[HFA384x_USB_RWMEM_MAXLEN]
Definition hfa384x.h:2056
uint8_t data[HFA384x_RIDDATA_MAXLEN]
Definition hfa384x.h:2041
void * membase
Definition prism2.c:133
uint32_t iobase
Definition prism2.c:132
Definition hw.c:16
A USB device.
Definition usb.h:723
hfa384x_KeyIDChanged_t keyidchanged
Definition hfa384x.h:1981
hfa384x_ScanResult_t scanresult
Definition hfa384x.h:1974
hfa384x_HScanResult_t hscanresult
Definition hfa384x.h:1976
hfa384x_CommTallies32_t commtallies32
Definition hfa384x.h:1973
hfa384x_CommTallies16_t commtallies16
Definition hfa384x.h:1972
hfa384x_AssocStatus_t assocstatus
Definition hfa384x.h:1978
hfa384x_LinkStatus_t linkstatus
Definition hfa384x.h:1977
hfa384x_ChInfoResult_t chinforesult
Definition hfa384x.h:1975
hfa384x_AuthReq_t authreq
Definition hfa384x.h:1979
hfa384x_PSUserCount_t psusercnt
Definition hfa384x.h:1980
hfa384x_pdr_hfa3861_chcalsp_t hfa3861_chcalsp
Definition hfa384x.h:2377
hfa384x_pdr_level_compc_measurements_t level_compc_measurements
Definition hfa384x.h:2360
hfa384x_pdr_regdomain_t regdomain
Definition hfa384x.h:2363
hfa384x_pdr_hfa3861_ifrf_t hfa3861_ifrf
Definition hfa384x.h:2376
hfa384x_pdr_vgdac_setup_t vgdac_setup
Definition hfa384x.h:2369
hfa384x_pdr_privacy_option_t privacy_option
Definition hfa384x.h:2366
hfa384x_pdr_nicid_t nicid
Definition hfa384x.h:2357
hfa384x_pdr_default_channel_t default_channel
Definition hfa384x.h:2365
hfa384x_pdr_nic_config_t nic_config
Definition hfa384x.h:2379
hfa384x_pdr_ifr_setting_t ifr_setting
Definition hfa384x.h:2372
hfa384x_pdr_mkk_callname_t mkk_callname
Definition hfa384x.h:2362
hfa384x_pdr_mkk_measurements_t mkk_measurements
Definition hfa384x.h:2353
hfa384x_pdr_hfa3861_shadow_t hfa3861_shadow
Definition hfa384x.h:2375
hfa384x_pdr_end_of_pda_t end_of_pda
Definition hfa384x.h:2383
hfa384x_pdr_vgdac_measurements_t vgdac_measurements
Definition hfa384x.h:2359
hfa384x_pdr_level_comp_setup_t level_comp_setup
Definition hfa384x.h:2370
hfa384x_pdr_temptype_t temptype
Definition hfa384x.h:2367
hfa384x_pdr_trimdac_setup_t trimdac_setup
Definition hfa384x.h:2371
hfa384x_pdr_refdac_setup_t refdac_setup
Definition hfa384x.h:2368
hfa384x_pdr_hfa3861_manf_testsp_t hfa3861_manf_testsp
Definition hfa384x.h:2381
hfa384x_pdr_refdac_measurements_t refdac_measurements
Definition hfa384x.h:2358
hfa384x_pdr_pcb_partnum_t pcb_partnum
Definition hfa384x.h:2350
hfa384x_pdr_hfa3861_manf_testi_t hfa3861_manf_testi
Definition hfa384x.h:2382
hfa384x_hfo_delay_t hfo_delay
Definition hfa384x.h:2380
hfa384x_pdr_mac_address_t mac_address
Definition hfa384x.h:2361
hfa384x_pdr_hfa3861_baseline_t hfa3861_baseline
Definition hfa384x.h:2374
hfa384x_pdr_cfisuprange_t cfisuprange
Definition hfa384x.h:2356
hfa384x_pdr_pcb_tracenum_t pcb_tracenum
Definition hfa384x.h:2351
hfa384x_pdr_nic_ramsize_t nic_ramsize
Definition hfa384x.h:2354
hfa384x_pdr_mfisuprange_t mfisuprange
Definition hfa384x.h:2355
hfa384x_pdr_nic_serial_t nic_serial
Definition hfa384x.h:2352
hfa384x_pdr_hfa3861_chcali_t hfa3861_chcali
Definition hfa384x.h:2378
hfa384x_pdr_rfr_setting_t rfr_setting
Definition hfa384x.h:2373
hfa384x_pdr_allowed_channel_t allowed_channel
Definition hfa384x.h:2364
uint8_t boguspad[3000]
Definition hfa384x.h:2140
hfa384x_usb_wridresp_t wridresp
Definition hfa384x.h:2134
hfa384x_usb_rridresp_t rridresp
Definition hfa384x.h:2135
hfa384x_usb_error_t usberror
Definition hfa384x.h:2139
hfa384x_usb_bufavail_t bufavail
Definition hfa384x.h:2138
hfa384x_usb_txfrm_t txfrm
Definition hfa384x.h:2131
hfa384x_usb_rmemresp_t rmemresp
Definition hfa384x.h:2137
hfa384x_usb_infofrm_t infofrm
Definition hfa384x.h:2132
uint16_t type
Definition hfa384x.h:2129
hfa384x_usb_cmdresp_t cmdresp
Definition hfa384x.h:2133
hfa384x_usb_wmemresp_t wmemresp
Definition hfa384x.h:2136
hfa384x_usb_rxfrm_t rxfrm
Definition hfa384x.h:2130
hfa384x_usb_rmemreq_t rmemreq
Definition hfa384x.h:2125
hfa384x_usb_wridreq_t wridreq
Definition hfa384x.h:2122
hfa384x_usb_rridreq_t rridreq
Definition hfa384x.h:2123
uint16_t type
Definition hfa384x.h:2119
hfa384x_usb_wmemreq_t wmemreq
Definition hfa384x.h:2124
hfa384x_usb_txfrm_t txfrm
Definition hfa384x.h:2120
hfa384x_usb_cmdreq_t cmdreq
Definition hfa384x.h:2121
#define writew
Definition w89c840.c:159
#define readw
Definition w89c840.c:156
#define wlan_inw(a)
#define wlan_outw(v, a)
#define wlan_outw_cpu_to_le16(v, a)
#define wlan_inw_le16_to_cpu(a)
#define __WLAN_ATTRIB_PACK__