1 /* src/prism2/include/prism2/hfa384x.h
3 * Defines the constants and data structures for the hfa384x
5 * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
6 * --------------------------------------------------------------------
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/
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.
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.
31 * --------------------------------------------------------------------
33 * Inquiries regarding the linux-wlan Open Source project can be
36 * AbsoluteValue Systems Inc.
38 * http://www.linux-wlan.com
40 * --------------------------------------------------------------------
42 * Portions of the development of this software were funded by
43 * Intersil Corporation as part of PRISM(R) chipset product development.
45 * --------------------------------------------------------------------
47 * [Implementation and usage notes]
50 * CW10 Programmer's Manual v1.5
53 * --------------------------------------------------------------------
56 FILE_LICENCE ( GPL2_ONLY
);
61 /*=============================================================*/
62 #define HFA384x_FIRMWARE_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
64 #define HFA384x_LEVEL_TO_dBm(v) (0x100 + (v) * 100 / 255 - 100)
66 /*------ Constants --------------------------------------------*/
67 /*--- Mins & Maxs -----------------------------------*/
68 #define HFA384x_CMD_ALLOC_LEN_MIN ((UINT16)4)
69 #define HFA384x_CMD_ALLOC_LEN_MAX ((UINT16)2400)
70 #define HFA384x_BAP_DATALEN_MAX ((UINT16)4096)
71 #define HFA384x_BAP_OFFSET_MAX ((UINT16)4096)
72 #define HFA384x_PORTID_MAX ((UINT16)7)
73 #define HFA384x_NUMPORTS_MAX ((UINT16)(HFA384x_PORTID_MAX+1))
74 #define HFA384x_PDR_LEN_MAX ((UINT16)512) /* in bytes, from EK */
75 #define HFA384x_PDA_RECS_MAX ((UINT16)200) /* a guess */
76 #define HFA384x_PDA_LEN_MAX ((UINT16)1024) /* in bytes, from EK */
77 #define HFA384x_SCANRESULT_MAX ((UINT16)31)
78 #define HFA384x_HSCANRESULT_MAX ((UINT16)31)
79 #define HFA384x_CHINFORESULT_MAX ((UINT16)16)
80 #define HFA384x_DRVR_FIDSTACKLEN_MAX (10)
81 #define HFA384x_DRVR_TXBUF_MAX (sizeof(hfa384x_tx_frame_t) + \
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
92 /*--- Support Constants -----------------------------*/
93 #define HFA384x_BAP_PROC ((UINT16)0)
94 #define HFA384x_BAP_INT ((UINT16)1)
95 #define HFA384x_PORTTYPE_IBSS ((UINT16)0)
96 #define HFA384x_PORTTYPE_BSS ((UINT16)1)
97 #define HFA384x_PORTTYPE_WDS ((UINT16)2)
98 #define HFA384x_PORTTYPE_PSUEDOIBSS ((UINT16)3)
99 #define HFA384x_PORTTYPE_HOSTAP ((UINT16)6)
100 #define HFA384x_WEPFLAGS_PRIVINVOKED ((UINT16)BIT0)
101 #define HFA384x_WEPFLAGS_EXCLUDE ((UINT16)BIT1)
102 #define HFA384x_WEPFLAGS_DISABLE_TXCRYPT ((UINT16)BIT4)
103 #define HFA384x_WEPFLAGS_DISABLE_RXCRYPT ((UINT16)BIT7)
104 #define HFA384x_WEPFLAGS_DISALLOW_MIXED ((UINT16)BIT11)
105 #define HFA384x_WEPFLAGS_IV_INTERVAL1 ((UINT16)0)
106 #define HFA384x_WEPFLAGS_IV_INTERVAL10 ((UINT16)BIT5)
107 #define HFA384x_WEPFLAGS_IV_INTERVAL50 ((UINT16)BIT6)
108 #define HFA384x_WEPFLAGS_IV_INTERVAL100 ((UINT16)(BIT5 | BIT6))
109 #define HFA384x_WEPFLAGS_FIRMWARE_WPA ((UINT16)BIT8)
110 #define HFA384x_WEPFLAGS_HOST_MIC ((UINT16)BIT9)
111 #define HFA384x_ROAMMODE_FWSCAN_FWROAM ((UINT16)1)
112 #define HFA384x_ROAMMODE_FWSCAN_HOSTROAM ((UINT16)2)
113 #define HFA384x_ROAMMODE_HOSTSCAN_HOSTROAM ((UINT16)3)
114 #define HFA384x_PORTSTATUS_DISABLED ((UINT16)1)
115 #define HFA384x_PORTSTATUS_INITSRCH ((UINT16)2)
116 #define HFA384x_PORTSTATUS_CONN_IBSS ((UINT16)3)
117 #define HFA384x_PORTSTATUS_CONN_ESS ((UINT16)4)
118 #define HFA384x_PORTSTATUS_OOR_ESS ((UINT16)5)
119 #define HFA384x_PORTSTATUS_CONN_WDS ((UINT16)6)
120 #define HFA384x_PORTSTATUS_HOSTAP ((UINT16)8)
121 #define HFA384x_RATEBIT_1 ((UINT16)1)
122 #define HFA384x_RATEBIT_2 ((UINT16)2)
123 #define HFA384x_RATEBIT_5dot5 ((UINT16)4)
124 #define HFA384x_RATEBIT_11 ((UINT16)8)
126 /*--- Just some symbolic names for legibility -------*/
127 #define HFA384x_TXCMD_NORECL ((UINT16)0)
128 #define HFA384x_TXCMD_RECL ((UINT16)1)
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.
145 #define HFA384x_ADDR_AUX_OFF_MAX ((UINT16)0x007f)
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)
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)
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)
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)(((UINT16)(p))&HFA384x_ADDR_AUX_PAGE_MASK)) <<7) | \
164 ((UINT32)(((UINT16)(o))&HFA384x_ADDR_AUX_OFF_MASK))
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)(((UINT16)(p))&HFA384x_ADDR_CMD_PAGE_MASK)) <<16) | \
169 ((UINT32)(((UINT16)(o))&HFA384x_ADDR_CMD_OFF_MASK))
171 /* Make AUX format offset and page from a 32-bit flat address */
172 #define HFA384x_ADDR_AUX_MKPAGE(f) \
173 ((UINT16)((((UINT32)(f))&HFA384x_ADDR_FLAT_AUX_PAGE_MASK)>>7))
174 #define HFA384x_ADDR_AUX_MKOFF(f) \
175 ((UINT16)(((UINT32)(f))&HFA384x_ADDR_FLAT_AUX_OFF_MASK))
177 /* Make CMD format offset and page from a 32-bit flat address */
178 #define HFA384x_ADDR_CMD_MKPAGE(f) \
179 ((UINT16)((((UINT32)(f))&HFA384x_ADDR_FLAT_CMD_PAGE_MASK)>>16))
180 #define HFA384x_ADDR_CMD_MKOFF(f) \
181 ((UINT16)(((UINT32)(f))&HFA384x_ADDR_FLAT_CMD_OFF_MASK))
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)
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)(c))<<12))
194 #define HFA384x_AUX_MKPAGE(f) HFA384x_ADDR_AUX_MKPAGE(f)
197 /*--- Controller Memory addresses -------------------*/
198 #define HFA3842_PDA_BASE (0x007f0000UL)
199 #define HFA3841_PDA_BASE (0x003f0000UL)
200 #define HFA3841_PDA_BOGUS_BASE (0x00390000UL)
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
210 /*--- Register I/O offsets --------------------------*/
211 #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
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)
242 #elif (WLAN_HOSTIF == WLAN_PCI || WLAN_HOSTIF == WLAN_USB)
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)
286 /*--- Register Field Masks --------------------------*/
287 #define HFA384x_CMD_BUSY ((UINT16)BIT15)
288 #define HFA384x_CMD_AINFO ((UINT16)(BIT14 | BIT13 | BIT12 | BIT11 | BIT10 | BIT9 | BIT8))
289 #define HFA384x_CMD_MACPORT ((UINT16)(BIT10 | BIT9 | BIT8))
290 #define HFA384x_CMD_RECL ((UINT16)BIT8)
291 #define HFA384x_CMD_WRITE ((UINT16)BIT8)
292 #define HFA384x_CMD_PROGMODE ((UINT16)(BIT9 | BIT8))
293 #define HFA384x_CMD_CMDCODE ((UINT16)(BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0))
295 #define HFA384x_STATUS_RESULT ((UINT16)(BIT14 | BIT13 | BIT12 | BIT11 | BIT10 | BIT9 | BIT8))
296 #define HFA384x_STATUS_CMDCODE ((UINT16)(BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0))
298 #define HFA384x_OFFSET_BUSY ((UINT16)BIT15)
299 #define HFA384x_OFFSET_ERR ((UINT16)BIT14)
300 #define HFA384x_OFFSET_DATAOFF ((UINT16)(BIT11 | BIT10 | BIT9 | BIT8 | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1))
302 #define HFA384x_EVSTAT_TICK ((UINT16)BIT15)
303 #define HFA384x_EVSTAT_WTERR ((UINT16)BIT14)
304 #define HFA384x_EVSTAT_INFDROP ((UINT16)BIT13)
305 #define HFA384x_EVSTAT_INFO ((UINT16)BIT7)
306 #define HFA384x_EVSTAT_DTIM ((UINT16)BIT5)
307 #define HFA384x_EVSTAT_CMD ((UINT16)BIT4)
308 #define HFA384x_EVSTAT_ALLOC ((UINT16)BIT3)
309 #define HFA384x_EVSTAT_TXEXC ((UINT16)BIT2)
310 #define HFA384x_EVSTAT_TX ((UINT16)BIT1)
311 #define HFA384x_EVSTAT_RX ((UINT16)BIT0)
313 #define HFA384x_INT_BAP_OP (HFA384x_EVSTAT_INFO|HFA384x_EVSTAT_RX|HFA384x_EVSTAT_TX|HFA384x_EVSTAT_TXEXC)
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)
317 #define HFA384x_INTEN_TICK ((UINT16)BIT15)
318 #define HFA384x_INTEN_WTERR ((UINT16)BIT14)
319 #define HFA384x_INTEN_INFDROP ((UINT16)BIT13)
320 #define HFA384x_INTEN_INFO ((UINT16)BIT7)
321 #define HFA384x_INTEN_DTIM ((UINT16)BIT5)
322 #define HFA384x_INTEN_CMD ((UINT16)BIT4)
323 #define HFA384x_INTEN_ALLOC ((UINT16)BIT3)
324 #define HFA384x_INTEN_TXEXC ((UINT16)BIT2)
325 #define HFA384x_INTEN_TX ((UINT16)BIT1)
326 #define HFA384x_INTEN_RX ((UINT16)BIT0)
328 #define HFA384x_EVACK_TICK ((UINT16)BIT15)
329 #define HFA384x_EVACK_WTERR ((UINT16)BIT14)
330 #define HFA384x_EVACK_INFDROP ((UINT16)BIT13)
331 #define HFA384x_EVACK_INFO ((UINT16)BIT7)
332 #define HFA384x_EVACK_DTIM ((UINT16)BIT5)
333 #define HFA384x_EVACK_CMD ((UINT16)BIT4)
334 #define HFA384x_EVACK_ALLOC ((UINT16)BIT3)
335 #define HFA384x_EVACK_TXEXC ((UINT16)BIT2)
336 #define HFA384x_EVACK_TX ((UINT16)BIT1)
337 #define HFA384x_EVACK_RX ((UINT16)BIT0)
339 #define HFA384x_CONTROL_AUXEN ((UINT16)(BIT15 | BIT14))
342 /*--- Command Code Constants --------------------------*/
343 /*--- Controller Commands --------------------------*/
344 #define HFA384x_CMDCODE_INIT ((UINT16)0x00)
345 #define HFA384x_CMDCODE_ENABLE ((UINT16)0x01)
346 #define HFA384x_CMDCODE_DISABLE ((UINT16)0x02)
347 #define HFA384x_CMDCODE_DIAG ((UINT16)0x03)
349 /*--- Buffer Mgmt Commands --------------------------*/
350 #define HFA384x_CMDCODE_ALLOC ((UINT16)0x0A)
351 #define HFA384x_CMDCODE_TX ((UINT16)0x0B)
352 #define HFA384x_CMDCODE_CLRPRST ((UINT16)0x12)
354 /*--- Regulate Commands --------------------------*/
355 #define HFA384x_CMDCODE_NOTIFY ((UINT16)0x10)
356 #define HFA384x_CMDCODE_INQ ((UINT16)0x11)
358 /*--- Configure Commands --------------------------*/
359 #define HFA384x_CMDCODE_ACCESS ((UINT16)0x21)
360 #define HFA384x_CMDCODE_DOWNLD ((UINT16)0x22)
362 /*--- Debugging Commands -----------------------------*/
363 #define HFA384x_CMDCODE_MONITOR ((UINT16)(0x38))
364 #define HFA384x_MONITOR_ENABLE ((UINT16)(0x0b))
365 #define HFA384x_MONITOR_DISABLE ((UINT16)(0x0f))
367 /*--- Result Codes --------------------------*/
368 #define HFA384x_SUCCESS ((UINT16)(0x00))
369 #define HFA384x_CARD_FAIL ((UINT16)(0x01))
370 #define HFA384x_NO_BUFF ((UINT16)(0x05))
371 #define HFA384x_CMD_ERR ((UINT16)(0x7F))
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)0x00)
380 #define HFA384x_PROGMODE_RAM ((UINT16)0x01)
381 #define HFA384x_PROGMODE_NV ((UINT16)0x02)
382 #define HFA384x_PROGMODE_NVWRITE ((UINT16)0x03)
384 /*--- AUX register enable --------------------------*/
385 #define HFA384x_AUXPW0 ((UINT16)0xfe01)
386 #define HFA384x_AUXPW1 ((UINT16)0xdc23)
387 #define HFA384x_AUXPW2 ((UINT16)0xba45)
389 #define HFA384x_CONTROL_AUX_ISDISABLED ((UINT16)0x0000)
390 #define HFA384x_CONTROL_AUX_ISENABLED ((UINT16)0xc000)
391 #define HFA384x_CONTROL_AUX_DOENABLE ((UINT16)0x8000)
392 #define HFA384x_CONTROL_AUX_DODISABLE ((UINT16)0x4000)
394 /*--- Record ID Constants --------------------------*/
395 /*--------------------------------------------------------------------
396 Configuration RIDs: Network Parameters, Static Configuration Entities
397 --------------------------------------------------------------------*/
398 #define HFA384x_RID_CNFPORTTYPE ((UINT16)0xFC00)
399 #define HFA384x_RID_CNFOWNMACADDR ((UINT16)0xFC01)
400 #define HFA384x_RID_CNFDESIREDSSID ((UINT16)0xFC02)
401 #define HFA384x_RID_CNFOWNCHANNEL ((UINT16)0xFC03)
402 #define HFA384x_RID_CNFOWNSSID ((UINT16)0xFC04)
403 #define HFA384x_RID_CNFOWNATIMWIN ((UINT16)0xFC05)
404 #define HFA384x_RID_CNFSYSSCALE ((UINT16)0xFC06)
405 #define HFA384x_RID_CNFMAXDATALEN ((UINT16)0xFC07)
406 #define HFA384x_RID_CNFWDSADDR ((UINT16)0xFC08)
407 #define HFA384x_RID_CNFPMENABLED ((UINT16)0xFC09)
408 #define HFA384x_RID_CNFPMEPS ((UINT16)0xFC0A)
409 #define HFA384x_RID_CNFMULTICASTRX ((UINT16)0xFC0B)
410 #define HFA384x_RID_CNFMAXSLEEPDUR ((UINT16)0xFC0C)
411 #define HFA384x_RID_CNFPMHOLDDUR ((UINT16)0xFC0D)
412 #define HFA384x_RID_CNFOWNNAME ((UINT16)0xFC0E)
413 #define HFA384x_RID_CNFOWNDTIMPER ((UINT16)0xFC10)
414 #define HFA384x_RID_CNFWDSADDR1 ((UINT16)0xFC11)
415 #define HFA384x_RID_CNFWDSADDR2 ((UINT16)0xFC12)
416 #define HFA384x_RID_CNFWDSADDR3 ((UINT16)0xFC13)
417 #define HFA384x_RID_CNFWDSADDR4 ((UINT16)0xFC14)
418 #define HFA384x_RID_CNFWDSADDR5 ((UINT16)0xFC15)
419 #define HFA384x_RID_CNFWDSADDR6 ((UINT16)0xFC16)
420 #define HFA384x_RID_CNFMCASTPMBUFF ((UINT16)0xFC17)
422 /*--------------------------------------------------------------------
423 Configuration 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)2)
429 #define HFA384x_RID_CNFOWNMACADDR_LEN ((UINT16)6)
430 #define HFA384x_RID_CNFDESIREDSSID_LEN ((UINT16)34)
431 #define HFA384x_RID_CNFOWNCHANNEL_LEN ((UINT16)2)
432 #define HFA384x_RID_CNFOWNSSID_LEN ((UINT16)34)
433 #define HFA384x_RID_CNFOWNATIMWIN_LEN ((UINT16)2)
434 #define HFA384x_RID_CNFSYSSCALE_LEN ((UINT16)0)
435 #define HFA384x_RID_CNFMAXDATALEN_LEN ((UINT16)0)
436 #define HFA384x_RID_CNFWDSADDR_LEN ((UINT16)6)
437 #define HFA384x_RID_CNFPMENABLED_LEN ((UINT16)0)
438 #define HFA384x_RID_CNFPMEPS_LEN ((UINT16)0)
439 #define HFA384x_RID_CNFMULTICASTRX_LEN ((UINT16)0)
440 #define HFA384x_RID_CNFMAXSLEEPDUR_LEN ((UINT16)0)
441 #define HFA384x_RID_CNFPMHOLDDUR_LEN ((UINT16)0)
442 #define HFA384x_RID_CNFOWNNAME_LEN ((UINT16)34)
443 #define HFA384x_RID_CNFOWNDTIMPER_LEN ((UINT16)0)
444 #define HFA384x_RID_CNFWDSADDR1_LEN ((UINT16)6)
445 #define HFA384x_RID_CNFWDSADDR2_LEN ((UINT16)6)
446 #define HFA384x_RID_CNFWDSADDR3_LEN ((UINT16)6)
447 #define HFA384x_RID_CNFWDSADDR4_LEN ((UINT16)6)
448 #define HFA384x_RID_CNFWDSADDR5_LEN ((UINT16)6)
449 #define HFA384x_RID_CNFWDSADDR6_LEN ((UINT16)6)
450 #define HFA384x_RID_CNFMCASTPMBUFF_LEN ((UINT16)0)
451 #define HFA384x_RID_CNFAUTHENTICATION_LEN ((UINT16)sizeof(UINT16))
452 #define HFA384x_RID_CNFMAXSLEEPDUR_LEN ((UINT16)0)
454 /*--------------------------------------------------------------------
455 Configuration RIDs: Network Parameters, Dynamic Configuration Entities
456 --------------------------------------------------------------------*/
457 #define HFA384x_RID_GROUPADDR ((UINT16)0xFC80)
458 #define HFA384x_RID_CREATEIBSS ((UINT16)0xFC81)
459 #define HFA384x_RID_FRAGTHRESH ((UINT16)0xFC82)
460 #define HFA384x_RID_RTSTHRESH ((UINT16)0xFC83)
461 #define HFA384x_RID_TXRATECNTL ((UINT16)0xFC84)
462 #define HFA384x_RID_PROMISCMODE ((UINT16)0xFC85)
463 #define HFA384x_RID_FRAGTHRESH0 ((UINT16)0xFC90)
464 #define HFA384x_RID_FRAGTHRESH1 ((UINT16)0xFC91)
465 #define HFA384x_RID_FRAGTHRESH2 ((UINT16)0xFC92)
466 #define HFA384x_RID_FRAGTHRESH3 ((UINT16)0xFC93)
467 #define HFA384x_RID_FRAGTHRESH4 ((UINT16)0xFC94)
468 #define HFA384x_RID_FRAGTHRESH5 ((UINT16)0xFC95)
469 #define HFA384x_RID_FRAGTHRESH6 ((UINT16)0xFC96)
470 #define HFA384x_RID_RTSTHRESH0 ((UINT16)0xFC97)
471 #define HFA384x_RID_RTSTHRESH1 ((UINT16)0xFC98)
472 #define HFA384x_RID_RTSTHRESH2 ((UINT16)0xFC99)
473 #define HFA384x_RID_RTSTHRESH3 ((UINT16)0xFC9A)
474 #define HFA384x_RID_RTSTHRESH4 ((UINT16)0xFC9B)
475 #define HFA384x_RID_RTSTHRESH5 ((UINT16)0xFC9C)
476 #define HFA384x_RID_RTSTHRESH6 ((UINT16)0xFC9D)
477 #define HFA384x_RID_TXRATECNTL0 ((UINT16)0xFC9E)
478 #define HFA384x_RID_TXRATECNTL1 ((UINT16)0xFC9F)
479 #define HFA384x_RID_TXRATECNTL2 ((UINT16)0xFCA0)
480 #define HFA384x_RID_TXRATECNTL3 ((UINT16)0xFCA1)
481 #define HFA384x_RID_TXRATECNTL4 ((UINT16)0xFCA2)
482 #define HFA384x_RID_TXRATECNTL5 ((UINT16)0xFCA3)
483 #define HFA384x_RID_TXRATECNTL6 ((UINT16)0xFCA4)
485 /*--------------------------------------------------------------------
486 Configuration 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)16 * WLAN_ADDR_LEN)
492 #define HFA384x_RID_CREATEIBSS_LEN ((UINT16)0)
493 #define HFA384x_RID_FRAGTHRESH_LEN ((UINT16)0)
494 #define HFA384x_RID_RTSTHRESH_LEN ((UINT16)0)
495 #define HFA384x_RID_TXRATECNTL_LEN ((UINT16)4)
496 #define HFA384x_RID_PROMISCMODE_LEN ((UINT16)2)
497 #define HFA384x_RID_FRAGTHRESH0_LEN ((UINT16)0)
498 #define HFA384x_RID_FRAGTHRESH1_LEN ((UINT16)0)
499 #define HFA384x_RID_FRAGTHRESH2_LEN ((UINT16)0)
500 #define HFA384x_RID_FRAGTHRESH3_LEN ((UINT16)0)
501 #define HFA384x_RID_FRAGTHRESH4_LEN ((UINT16)0)
502 #define HFA384x_RID_FRAGTHRESH5_LEN ((UINT16)0)
503 #define HFA384x_RID_FRAGTHRESH6_LEN ((UINT16)0)
504 #define HFA384x_RID_RTSTHRESH0_LEN ((UINT16)0)
505 #define HFA384x_RID_RTSTHRESH1_LEN ((UINT16)0)
506 #define HFA384x_RID_RTSTHRESH2_LEN ((UINT16)0)
507 #define HFA384x_RID_RTSTHRESH3_LEN ((UINT16)0)
508 #define HFA384x_RID_RTSTHRESH4_LEN ((UINT16)0)
509 #define HFA384x_RID_RTSTHRESH5_LEN ((UINT16)0)
510 #define HFA384x_RID_RTSTHRESH6_LEN ((UINT16)0)
511 #define HFA384x_RID_TXRATECNTL0_LEN ((UINT16)0)
512 #define HFA384x_RID_TXRATECNTL1_LEN ((UINT16)0)
513 #define HFA384x_RID_TXRATECNTL2_LEN ((UINT16)0)
514 #define HFA384x_RID_TXRATECNTL3_LEN ((UINT16)0)
515 #define HFA384x_RID_TXRATECNTL4_LEN ((UINT16)0)
516 #define HFA384x_RID_TXRATECNTL5_LEN ((UINT16)0)
517 #define HFA384x_RID_TXRATECNTL6_LEN ((UINT16)0)
519 /*--------------------------------------------------------------------
520 Configuration RIDs: Behavior Parameters
521 --------------------------------------------------------------------*/
522 #define HFA384x_RID_ITICKTIME ((UINT16)0xFCE0)
524 /*--------------------------------------------------------------------
525 Configuration 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)2)
531 /*----------------------------------------------------------------------
532 Information RIDs: NIC Information
533 --------------------------------------------------------------------*/
534 #define HFA384x_RID_MAXLOADTIME ((UINT16)0xFD00)
535 #define HFA384x_RID_DOWNLOADBUFFER ((UINT16)0xFD01)
536 #define HFA384x_RID_PRIIDENTITY ((UINT16)0xFD02)
537 #define HFA384x_RID_PRISUPRANGE ((UINT16)0xFD03)
538 #define HFA384x_RID_PRI_CFIACTRANGES ((UINT16)0xFD04)
539 #define HFA384x_RID_NICSERIALNUMBER ((UINT16)0xFD0A)
540 #define HFA384x_RID_NICIDENTITY ((UINT16)0xFD0B)
541 #define HFA384x_RID_MFISUPRANGE ((UINT16)0xFD0C)
542 #define HFA384x_RID_CFISUPRANGE ((UINT16)0xFD0D)
543 #define HFA384x_RID_CHANNELLIST ((UINT16)0xFD10)
544 #define HFA384x_RID_REGULATORYDOMAINS ((UINT16)0xFD11)
545 #define HFA384x_RID_TEMPTYPE ((UINT16)0xFD12)
546 #define HFA384x_RID_CIS ((UINT16)0xFD13)
547 #define HFA384x_RID_STAIDENTITY ((UINT16)0xFD20)
548 #define HFA384x_RID_STASUPRANGE ((UINT16)0xFD21)
549 #define HFA384x_RID_STA_MFIACTRANGES ((UINT16)0xFD22)
550 #define HFA384x_RID_STA_CFIACTRANGES ((UINT16)0xFD23)
551 #define HFA384x_RID_BUILDSEQ ((UINT16)0xFFFE)
552 #define HFA384x_RID_FWID ((UINT16)0xFFFF)
554 /*----------------------------------------------------------------------
555 Information 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)0)
560 #define HFA384x_RID_DOWNLOADBUFFER_LEN ((UINT16)sizeof(hfa384x_downloadbuffer_t))
561 #define HFA384x_RID_PRIIDENTITY_LEN ((UINT16)8)
562 #define HFA384x_RID_PRISUPRANGE_LEN ((UINT16)10)
563 #define HFA384x_RID_CFIACTRANGES_LEN ((UINT16)10)
564 #define HFA384x_RID_NICSERIALNUMBER_LEN ((UINT16)12)
565 #define HFA384x_RID_NICIDENTITY_LEN ((UINT16)8)
566 #define HFA384x_RID_MFISUPRANGE_LEN ((UINT16)10)
567 #define HFA384x_RID_CFISUPRANGE_LEN ((UINT16)10)
568 #define HFA384x_RID_CHANNELLIST_LEN ((UINT16)0)
569 #define HFA384x_RID_REGULATORYDOMAINS_LEN ((UINT16)12)
570 #define HFA384x_RID_TEMPTYPE_LEN ((UINT16)0)
571 #define HFA384x_RID_CIS_LEN ((UINT16)480)
572 #define HFA384x_RID_STAIDENTITY_LEN ((UINT16)8)
573 #define HFA384x_RID_STASUPRANGE_LEN ((UINT16)10)
574 #define HFA384x_RID_MFIACTRANGES_LEN ((UINT16)10)
575 #define HFA384x_RID_CFIACTRANGES2_LEN ((UINT16)10)
576 #define HFA384x_RID_BUILDSEQ_LEN ((UINT16)sizeof(hfa384x_BuildSeq_t))
577 #define HFA384x_RID_FWID_LEN ((UINT16)sizeof(hfa384x_FWID_t))
579 /*--------------------------------------------------------------------
580 Information RIDs: MAC Information
581 --------------------------------------------------------------------*/
582 #define HFA384x_RID_PORTSTATUS ((UINT16)0xFD40)
583 #define HFA384x_RID_CURRENTSSID ((UINT16)0xFD41)
584 #define HFA384x_RID_CURRENTBSSID ((UINT16)0xFD42)
585 #define HFA384x_RID_COMMSQUALITY ((UINT16)0xFD43)
586 #define HFA384x_RID_CURRENTTXRATE ((UINT16)0xFD44)
587 #define HFA384x_RID_CURRENTBCNINT ((UINT16)0xFD45)
588 #define HFA384x_RID_CURRENTSCALETHRESH ((UINT16)0xFD46)
589 #define HFA384x_RID_PROTOCOLRSPTIME ((UINT16)0xFD47)
590 #define HFA384x_RID_SHORTRETRYLIMIT ((UINT16)0xFD48)
591 #define HFA384x_RID_LONGRETRYLIMIT ((UINT16)0xFD49)
592 #define HFA384x_RID_MAXTXLIFETIME ((UINT16)0xFD4A)
593 #define HFA384x_RID_MAXRXLIFETIME ((UINT16)0xFD4B)
594 #define HFA384x_RID_CFPOLLABLE ((UINT16)0xFD4C)
595 #define HFA384x_RID_AUTHALGORITHMS ((UINT16)0xFD4D)
596 #define HFA384x_RID_PRIVACYOPTIMP ((UINT16)0xFD4F)
597 #define HFA384x_RID_DBMCOMMSQUALITY ((UINT16)0xFD51)
598 #define HFA384x_RID_CURRENTTXRATE1 ((UINT16)0xFD80)
599 #define HFA384x_RID_CURRENTTXRATE2 ((UINT16)0xFD81)
600 #define HFA384x_RID_CURRENTTXRATE3 ((UINT16)0xFD82)
601 #define HFA384x_RID_CURRENTTXRATE4 ((UINT16)0xFD83)
602 #define HFA384x_RID_CURRENTTXRATE5 ((UINT16)0xFD84)
603 #define HFA384x_RID_CURRENTTXRATE6 ((UINT16)0xFD85)
604 #define HFA384x_RID_OWNMACADDRESS ((UINT16)0xFD86)
605 // #define HFA384x_RID_PCFINFO ((UINT16)0xFD87)
606 #define HFA384x_RID_SCANRESULTS ((UINT16)0xFD88) // NEW
607 #define HFA384x_RID_HOSTSCANRESULTS ((UINT16)0xFD89) // NEW
608 #define HFA384x_RID_AUTHENTICATIONUSED ((UINT16)0xFD8A) // NEW
609 #define HFA384x_RID_ASSOCIATEFAILURE ((UINT16)0xFD8D) // 1.8.0
611 /*--------------------------------------------------------------------
612 Information 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)0)
617 #define HFA384x_RID_CURRENTSSID_LEN ((UINT16)34)
618 #define HFA384x_RID_CURRENTBSSID_LEN ((UINT16)WLAN_BSSID_LEN)
619 #define HFA384x_RID_COMMSQUALITY_LEN ((UINT16)sizeof(hfa384x_commsquality_t))
620 #define HFA384x_RID_DBMCOMMSQUALITY_LEN ((UINT16)sizeof(hfa384x_dbmcommsquality_t))
621 #define HFA384x_RID_CURRENTTXRATE_LEN ((UINT16)0)
622 #define HFA384x_RID_CURRENTBCNINT_LEN ((UINT16)0)
623 #define HFA384x_RID_STACURSCALETHRESH_LEN ((UINT16)12)
624 #define HFA384x_RID_APCURSCALETHRESH_LEN ((UINT16)6)
625 #define HFA384x_RID_PROTOCOLRSPTIME_LEN ((UINT16)0)
626 #define HFA384x_RID_SHORTRETRYLIMIT_LEN ((UINT16)0)
627 #define HFA384x_RID_LONGRETRYLIMIT_LEN ((UINT16)0)
628 #define HFA384x_RID_MAXTXLIFETIME_LEN ((UINT16)0)
629 #define HFA384x_RID_MAXRXLIFETIME_LEN ((UINT16)0)
630 #define HFA384x_RID_CFPOLLABLE_LEN ((UINT16)0)
631 #define HFA384x_RID_AUTHALGORITHMS_LEN ((UINT16)4)
632 #define HFA384x_RID_PRIVACYOPTIMP_LEN ((UINT16)0)
633 #define HFA384x_RID_CURRENTTXRATE1_LEN ((UINT16)0)
634 #define HFA384x_RID_CURRENTTXRATE2_LEN ((UINT16)0)
635 #define HFA384x_RID_CURRENTTXRATE3_LEN ((UINT16)0)
636 #define HFA384x_RID_CURRENTTXRATE4_LEN ((UINT16)0)
637 #define HFA384x_RID_CURRENTTXRATE5_LEN ((UINT16)0)
638 #define HFA384x_RID_CURRENTTXRATE6_LEN ((UINT16)0)
639 #define HFA384x_RID_OWNMACADDRESS_LEN ((UINT16)6)
640 #define HFA384x_RID_PCFINFO_LEN ((UINT16)6)
641 #define HFA384x_RID_CNFAPPCFINFO_LEN ((UINT16)sizeof(hfa384x_PCFInfo_data_t))
642 #define HFA384x_RID_SCANREQUEST_LEN ((UINT16)sizeof(hfa384x_ScanRequest_data_t))
643 #define HFA384x_RID_JOINREQUEST_LEN ((UINT16)sizeof(hfa384x_JoinRequest_data_t))
644 #define HFA384x_RID_AUTHENTICATESTA_LEN ((UINT16)sizeof(hfa384x_authenticateStation_data_t))
645 #define HFA384x_RID_CHANNELINFOREQUEST_LEN ((UINT16)sizeof(hfa384x_ChannelInfoRequest_data_t))
646 /*--------------------------------------------------------------------
647 Information RIDs: Modem Information
648 --------------------------------------------------------------------*/
649 #define HFA384x_RID_PHYTYPE ((UINT16)0xFDC0)
650 #define HFA384x_RID_CURRENTCHANNEL ((UINT16)0xFDC1)
651 #define HFA384x_RID_CURRENTPOWERSTATE ((UINT16)0xFDC2)
652 #define HFA384x_RID_CCAMODE ((UINT16)0xFDC3)
653 #define HFA384x_RID_SUPPORTEDDATARATES ((UINT16)0xFDC6)
654 #define HFA384x_RID_LFOSTATUS ((UINT16)0xFDC7) // 1.7.1
656 /*--------------------------------------------------------------------
657 Information 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)0)
662 #define HFA384x_RID_CURRENTCHANNEL_LEN ((UINT16)0)
663 #define HFA384x_RID_CURRENTPOWERSTATE_LEN ((UINT16)0)
664 #define HFA384x_RID_CCAMODE_LEN ((UINT16)0)
665 #define HFA384x_RID_SUPPORTEDDATARATES_LEN ((UINT16)10)
667 /*--------------------------------------------------------------------
668 API ENHANCEMENTS (NOT ALREADY IMPLEMENTED)
669 --------------------------------------------------------------------*/
670 #define HFA384x_RID_CNFWEPDEFAULTKEYID ((UINT16)0xFC23)
671 #define HFA384x_RID_CNFWEPDEFAULTKEY0 ((UINT16)0xFC24)
672 #define HFA384x_RID_CNFWEPDEFAULTKEY1 ((UINT16)0xFC25)
673 #define HFA384x_RID_CNFWEPDEFAULTKEY2 ((UINT16)0xFC26)
674 #define HFA384x_RID_CNFWEPDEFAULTKEY3 ((UINT16)0xFC27)
675 #define HFA384x_RID_CNFWEPFLAGS ((UINT16)0xFC28)
676 #define HFA384x_RID_CNFWEPKEYMAPTABLE ((UINT16)0xFC29)
677 #define HFA384x_RID_CNFAUTHENTICATION ((UINT16)0xFC2A)
678 #define HFA384x_RID_CNFMAXASSOCSTATIONS ((UINT16)0xFC2B)
679 #define HFA384x_RID_CNFTXCONTROL ((UINT16)0xFC2C)
680 #define HFA384x_RID_CNFROAMINGMODE ((UINT16)0xFC2D)
681 #define HFA384x_RID_CNFHOSTAUTHASSOC ((UINT16)0xFC2E)
682 #define HFA384x_RID_CNFRCVCRCERROR ((UINT16)0xFC30)
683 // #define HFA384x_RID_CNFMMLIFE ((UINT16)0xFC31)
684 #define HFA384x_RID_CNFALTRETRYCNT ((UINT16)0xFC32)
685 #define HFA384x_RID_CNFAPBCNINT ((UINT16)0xFC33)
686 #define HFA384x_RID_CNFAPPCFINFO ((UINT16)0xFC34)
687 #define HFA384x_RID_CNFSTAPCFINFO ((UINT16)0xFC35)
688 #define HFA384x_RID_CNFPRIORITYQUSAGE ((UINT16)0xFC37)
689 #define HFA384x_RID_CNFTIMCTRL ((UINT16)0xFC40)
690 #define HFA384x_RID_CNFTHIRTY2TALLY ((UINT16)0xFC42)
691 #define HFA384x_RID_CNFENHSECURITY ((UINT16)0xFC43)
692 #define HFA384x_RID_CNFDBMADJUST ((UINT16)0xFC46) // NEW
693 #define HFA384x_RID_CNFWPADATA ((UINT16)0xFC48) // 1.7.0
694 #define HFA384x_RID_CNFPROPOGATIONDELAY ((UINT16)0xFC49) // 1.7.6
695 #define HFA384x_RID_CNFSHORTPREAMBLE ((UINT16)0xFCB0)
696 #define HFA384x_RID_CNFEXCLONGPREAMBLE ((UINT16)0xFCB1)
697 #define HFA384x_RID_CNFAUTHRSPTIMEOUT ((UINT16)0xFCB2)
698 #define HFA384x_RID_CNFBASICRATES ((UINT16)0xFCB3)
699 #define HFA384x_RID_CNFSUPPRATES ((UINT16)0xFCB4)
700 #define HFA384x_RID_CNFFALLBACKCTRL ((UINT16)0xFCB5) // NEW
701 #define HFA384x_RID_WEPKEYSTATUS ((UINT16)0xFCB6) // NEW
702 #define HFA384x_RID_WEPKEYMAPINDEX ((UINT16)0xFCB7) // NEW
703 #define HFA384x_RID_BROADCASTKEYID ((UINT16)0xFCB8) // NEW
704 #define HFA384x_RID_ENTSECFLAGEYID ((UINT16)0xFCB9) // NEW
705 #define HFA384x_RID_CNFPASSIVESCANCTRL ((UINT16)0xFCBA) // NEW STA
706 #define HFA384x_RID_CNFWPAHANDLING ((UINT16)0xFCBB) // 1.7.0
707 #define HFA384x_RID_MDCCONTROL ((UINT16)0xFCBC) // 1.7.0/1.4.0
708 #define HFA384x_RID_MDCCOUNTRY ((UINT16)0xFCBD) // 1.7.0/1.4.0
709 #define HFA384x_RID_TXPOWERMAX ((UINT16)0xFCBE) // 1.7.0/1.4.0
710 #define HFA384x_RID_CNFLFOENBLED ((UINT16)0xFCBF) // 1.6.3
711 #define HFA384x_RID_CAPINFO ((UINT16)0xFCC0) // 1.7.0/1.3.7
712 #define HFA384x_RID_LISTENINTERVAL ((UINT16)0xFCC1) // 1.7.0/1.3.7
713 #define HFA384x_RID_DIVERSITYENABLED ((UINT16)0xFCC2) // 1.7.0/1.3.7
714 #define HFA384x_RID_LED_CONTROL ((UINT16)0xFCC4) // 1.7.6
715 #define HFA384x_RID_HFO_DELAY ((UINT16)0xFCC5) // 1.7.6
716 #define HFA384x_RID_DISSALOWEDBSSID ((UINT16)0xFCC6) // 1.8.0
717 #define HFA384x_RID_SCANREQUEST ((UINT16)0xFCE1)
718 #define HFA384x_RID_JOINREQUEST ((UINT16)0xFCE2)
719 #define HFA384x_RID_AUTHENTICATESTA ((UINT16)0xFCE3)
720 #define HFA384x_RID_CHANNELINFOREQUEST ((UINT16)0xFCE4)
721 #define HFA384x_RID_HOSTSCAN ((UINT16)0xFCE5) // NEW STA
722 #define HFA384x_RID_ASSOCIATESTA ((UINT16)0xFCE6)
724 #define HFA384x_RID_CNFWEPDEFAULTKEY_LEN ((UINT16)6)
725 #define HFA384x_RID_CNFWEP128DEFAULTKEY_LEN ((UINT16)14)
726 #define HFA384x_RID_CNFPRIOQUSAGE_LEN ((UINT16)4)
727 /*--------------------------------------------------------------------
729 --------------------------------------------------------------------*/
730 #define HFA384x_PDR_PCB_PARTNUM ((UINT16)0x0001)
731 #define HFA384x_PDR_PDAVER ((UINT16)0x0002)
732 #define HFA384x_PDR_NIC_SERIAL ((UINT16)0x0003)
733 #define HFA384x_PDR_MKK_MEASUREMENTS ((UINT16)0x0004)
734 #define HFA384x_PDR_NIC_RAMSIZE ((UINT16)0x0005)
735 #define HFA384x_PDR_MFISUPRANGE ((UINT16)0x0006)
736 #define HFA384x_PDR_CFISUPRANGE ((UINT16)0x0007)
737 #define HFA384x_PDR_NICID ((UINT16)0x0008)
738 //#define HFA384x_PDR_REFDAC_MEASUREMENTS ((UINT16)0x0010)
739 //#define HFA384x_PDR_VGDAC_MEASUREMENTS ((UINT16)0x0020)
740 //#define HFA384x_PDR_LEVEL_COMP_MEASUREMENTS ((UINT16)0x0030)
741 //#define HFA384x_PDR_MODEM_TRIMDAC_MEASUREMENTS ((UINT16)0x0040)
742 //#define HFA384x_PDR_COREGA_HACK ((UINT16)0x00ff)
743 #define HFA384x_PDR_MAC_ADDRESS ((UINT16)0x0101)
744 //#define HFA384x_PDR_MKK_CALLNAME ((UINT16)0x0102)
745 #define HFA384x_PDR_REGDOMAIN ((UINT16)0x0103)
746 #define HFA384x_PDR_ALLOWED_CHANNEL ((UINT16)0x0104)
747 #define HFA384x_PDR_DEFAULT_CHANNEL ((UINT16)0x0105)
748 //#define HFA384x_PDR_PRIVACY_OPTION ((UINT16)0x0106)
749 #define HFA384x_PDR_TEMPTYPE ((UINT16)0x0107)
750 //#define HFA384x_PDR_REFDAC_SETUP ((UINT16)0x0110)
751 //#define HFA384x_PDR_VGDAC_SETUP ((UINT16)0x0120)
752 //#define HFA384x_PDR_LEVEL_COMP_SETUP ((UINT16)0x0130)
753 //#define HFA384x_PDR_TRIMDAC_SETUP ((UINT16)0x0140)
754 #define HFA384x_PDR_IFR_SETTING ((UINT16)0x0200)
755 #define HFA384x_PDR_RFR_SETTING ((UINT16)0x0201)
756 #define HFA384x_PDR_HFA3861_BASELINE ((UINT16)0x0202)
757 #define HFA384x_PDR_HFA3861_SHADOW ((UINT16)0x0203)
758 #define HFA384x_PDR_HFA3861_IFRF ((UINT16)0x0204)
759 #define HFA384x_PDR_HFA3861_CHCALSP ((UINT16)0x0300)
760 #define HFA384x_PDR_HFA3861_CHCALI ((UINT16)0x0301)
761 #define HFA384x_PDR_MAX_TX_POWER ((UINT16)0x0302)
762 #define HFA384x_PDR_MASTER_CHAN_LIST ((UINT16)0x0303)
763 #define HFA384x_PDR_3842_NIC_CONFIG ((UINT16)0x0400)
764 #define HFA384x_PDR_USB_ID ((UINT16)0x0401)
765 #define HFA384x_PDR_PCI_ID ((UINT16)0x0402)
766 #define HFA384x_PDR_PCI_IFCONF ((UINT16)0x0403)
767 #define HFA384x_PDR_PCI_PMCONF ((UINT16)0x0404)
768 #define HFA384x_PDR_RFENRGY ((UINT16)0x0406)
769 #define HFA384x_PDR_USB_POWER_TYPE ((UINT16)0x0407)
770 //#define HFA384x_PDR_UNKNOWN408 ((UINT16)0x0408)
771 #define HFA384x_PDR_USB_MAX_POWER ((UINT16)0x0409)
772 #define HFA384x_PDR_USB_MANUFACTURER ((UINT16)0x0410)
773 #define HFA384x_PDR_USB_PRODUCT ((UINT16)0x0411)
774 #define HFA384x_PDR_ANT_DIVERSITY ((UINT16)0x0412)
775 #define HFA384x_PDR_HFO_DELAY ((UINT16)0x0413)
776 #define HFA384x_PDR_SCALE_THRESH ((UINT16)0x0414)
778 #define HFA384x_PDR_HFA3861_MANF_TESTSP ((UINT16)0x0900)
779 #define HFA384x_PDR_HFA3861_MANF_TESTI ((UINT16)0x0901)
780 #define HFA384x_PDR_END_OF_PDA ((UINT16)0x0000)
783 /*=============================================================*/
784 /*------ Macros -----------------------------------------------*/
786 /*--- Register ID macros ------------------------*/
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
820 /*--- Register Test/Get/Set Field macros ------------------------*/
822 #define HFA384x_CMD_ISBUSY(value) ((UINT16)(((UINT16)value) & HFA384x_CMD_BUSY))
823 #define HFA384x_CMD_AINFO_GET(value) ((UINT16)(((UINT16)(value) & HFA384x_CMD_AINFO) >> 8))
824 #define HFA384x_CMD_AINFO_SET(value) ((UINT16)((UINT16)(value) << 8))
825 #define HFA384x_CMD_MACPORT_GET(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_MACPORT)))
826 #define HFA384x_CMD_MACPORT_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET(value))
827 #define HFA384x_CMD_ISRECL(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_RECL)))
828 #define HFA384x_CMD_RECL_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET(value))
829 #define HFA384x_CMD_QOS_GET(value) ((UINT16((((UINT16)(value))&((UINT16)0x3000)) >> 12))
830 #define HFA384x_CMD_QOS_SET(value) ((UINT16)((((UINT16)(value)) << 12) & 0x3000))
831 #define HFA384x_CMD_ISWRITE(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_WRITE)))
832 #define HFA384x_CMD_WRITE_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET((UINT16)value))
833 #define HFA384x_CMD_PROGMODE_GET(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_PROGMODE)))
834 #define HFA384x_CMD_PROGMODE_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET((UINT16)value))
835 #define HFA384x_CMD_CMDCODE_GET(value) ((UINT16)(((UINT16)(value)) & HFA384x_CMD_CMDCODE))
836 #define HFA384x_CMD_CMDCODE_SET(value) ((UINT16)(value))
838 #define HFA384x_STATUS_RESULT_GET(value) ((UINT16)((((UINT16)(value)) & HFA384x_STATUS_RESULT) >> 8))
839 #define HFA384x_STATUS_RESULT_SET(value) (((UINT16)(value)) << 8)
840 #define HFA384x_STATUS_CMDCODE_GET(value) (((UINT16)(value)) & HFA384x_STATUS_CMDCODE)
841 #define HFA384x_STATUS_CMDCODE_SET(value) ((UINT16)(value))
843 #define HFA384x_OFFSET_ISBUSY(value) ((UINT16)(((UINT16)(value)) & HFA384x_OFFSET_BUSY))
844 #define HFA384x_OFFSET_ISERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_OFFSET_ERR))
845 #define HFA384x_OFFSET_DATAOFF_GET(value) ((UINT16)(((UINT16)(value)) & HFA384x_OFFSET_DATAOFF))
846 #define HFA384x_OFFSET_DATAOFF_SET(value) ((UINT16)(value))
848 #define HFA384x_EVSTAT_ISTICK(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_TICK))
849 #define HFA384x_EVSTAT_ISWTERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_WTERR))
850 #define HFA384x_EVSTAT_ISINFDROP(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_INFDROP))
851 #define HFA384x_EVSTAT_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_INFO))
852 #define HFA384x_EVSTAT_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_DTIM))
853 #define HFA384x_EVSTAT_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_CMD))
854 #define HFA384x_EVSTAT_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_ALLOC))
855 #define HFA384x_EVSTAT_ISTXEXC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_TXEXC))
856 #define HFA384x_EVSTAT_ISTX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_TX))
857 #define HFA384x_EVSTAT_ISRX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_RX))
859 #define HFA384x_EVSTAT_ISBAP_OP(value) ((UINT16)(((UINT16)(value)) & HFA384x_INT_BAP_OP))
861 #define HFA384x_INTEN_ISTICK(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_TICK))
862 #define HFA384x_INTEN_TICK_SET(value) ((UINT16)(((UINT16)(value)) << 15))
863 #define HFA384x_INTEN_ISWTERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_WTERR))
864 #define HFA384x_INTEN_WTERR_SET(value) ((UINT16)(((UINT16)(value)) << 14))
865 #define HFA384x_INTEN_ISINFDROP(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_INFDROP))
866 #define HFA384x_INTEN_INFDROP_SET(value) ((UINT16)(((UINT16)(value)) << 13))
867 #define HFA384x_INTEN_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_INFO))
868 #define HFA384x_INTEN_INFO_SET(value) ((UINT16)(((UINT16)(value)) << 7))
869 #define HFA384x_INTEN_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_DTIM))
870 #define HFA384x_INTEN_DTIM_SET(value) ((UINT16)(((UINT16)(value)) << 5))
871 #define HFA384x_INTEN_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_CMD))
872 #define HFA384x_INTEN_CMD_SET(value) ((UINT16)(((UINT16)(value)) << 4))
873 #define HFA384x_INTEN_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_ALLOC))
874 #define HFA384x_INTEN_ALLOC_SET(value) ((UINT16)(((UINT16)(value)) << 3))
875 #define HFA384x_INTEN_ISTXEXC(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_TXEXC))
876 #define HFA384x_INTEN_TXEXC_SET(value) ((UINT16)(((UINT16)(value)) << 2))
877 #define HFA384x_INTEN_ISTX(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_TX))
878 #define HFA384x_INTEN_TX_SET(value) ((UINT16)(((UINT16)(value)) << 1))
879 #define HFA384x_INTEN_ISRX(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_RX))
880 #define HFA384x_INTEN_RX_SET(value) ((UINT16)(((UINT16)(value)) << 0))
882 #define HFA384x_EVACK_ISTICK(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_TICK))
883 #define HFA384x_EVACK_TICK_SET(value) ((UINT16)(((UINT16)(value)) << 15))
884 #define HFA384x_EVACK_ISWTERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_WTERR))
885 #define HFA384x_EVACK_WTERR_SET(value) ((UINT16)(((UINT16)(value)) << 14))
886 #define HFA384x_EVACK_ISINFDROP(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_INFDROP))
887 #define HFA384x_EVACK_INFDROP_SET(value) ((UINT16)(((UINT16)(value)) << 13))
888 #define HFA384x_EVACK_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_INFO))
889 #define HFA384x_EVACK_INFO_SET(value) ((UINT16)(((UINT16)(value)) << 7))
890 #define HFA384x_EVACK_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_DTIM))
891 #define HFA384x_EVACK_DTIM_SET(value) ((UINT16)(((UINT16)(value)) << 5))
892 #define HFA384x_EVACK_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_CMD))
893 #define HFA384x_EVACK_CMD_SET(value) ((UINT16)(((UINT16)(value)) << 4))
894 #define HFA384x_EVACK_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_ALLOC))
895 #define HFA384x_EVACK_ALLOC_SET(value) ((UINT16)(((UINT16)(value)) << 3))
896 #define HFA384x_EVACK_ISTXEXC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_TXEXC))
897 #define HFA384x_EVACK_TXEXC_SET(value) ((UINT16)(((UINT16)(value)) << 2))
898 #define HFA384x_EVACK_ISTX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_TX))
899 #define HFA384x_EVACK_TX_SET(value) ((UINT16)(((UINT16)(value)) << 1))
900 #define HFA384x_EVACK_ISRX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_RX))
901 #define HFA384x_EVACK_RX_SET(value) ((UINT16)(((UINT16)(value)) << 0))
903 #define HFA384x_CONTROL_AUXEN_SET(value) ((UINT16)(((UINT16)(value)) << 14))
904 #define HFA384x_CONTROL_AUXEN_GET(value) ((UINT16)(((UINT16)(value)) >> 14))
908 #define hfa384x2host_16(n) (__le16_to_cpu((UINT16)(n)))
909 #define hfa384x2host_32(n) (__le32_to_cpu((UINT32)(n)))
910 #define host2hfa384x_16(n) (__cpu_to_le16((UINT16)(n)))
911 #define host2hfa384x_32(n) (__cpu_to_le32((UINT32)(n)))
914 /* Host Maintained State Info */
915 #define HFA384x_STATE_PREINIT 0
916 #define HFA384x_STATE_INIT 1
917 #define HFA384x_STATE_RUNNING 2
919 /*=============================================================*/
920 /*------ Types and their related constants --------------------*/
922 #define HFA384x_HOSTAUTHASSOC_HOSTAUTH BIT0
923 #define HFA384x_HOSTAUTHASSOC_HOSTASSOC BIT1
925 #define HFA384x_WHAHANDLING_DISABLED 0
926 #define HFA384x_WHAHANDLING_PASSTHROUGH BIT1
928 /*-------------------------------------------------------------*/
929 /* Commonly used basic types */
930 typedef struct hfa384x_bytestr
934 } __WLAN_ATTRIB_PACK__ hfa384x_bytestr_t
;
936 typedef struct hfa384x_bytestr32
940 } __WLAN_ATTRIB_PACK__ hfa384x_bytestr32_t
;
942 /*--------------------------------------------------------------------
943 Configuration Record Structures:
944 Network Parameters, Static Configuration Entities
945 --------------------------------------------------------------------*/
946 /* Prototype structure: all configuration record structures start with
949 typedef struct hfa384x_record
953 } __WLAN_ATTRIB_PACK__ hfa384x_rec_t
;
955 typedef struct hfa384x_record16
960 } __WLAN_ATTRIB_PACK__ hfa384x_rec16_t
;
962 typedef struct hfa384x_record32
967 } __WLAN_ATTRIB_PACK__ hfa384x_rec32
;
969 /*-- Hardware/Firmware Component Information ----------*/
970 typedef struct hfa384x_compident
976 } __WLAN_ATTRIB_PACK__ hfa384x_compident_t
;
978 typedef struct hfa384x_caplevel
985 } __WLAN_ATTRIB_PACK__ hfa384x_caplevel_t
;
987 /*-- Configuration Record: cnfPortType --*/
988 typedef struct hfa384x_cnfPortType
991 } __WLAN_ATTRIB_PACK__ hfa384x_cnfPortType_t
;
993 /*-- Configuration Record: cnfOwnMACAddress --*/
994 typedef struct hfa384x_cnfOwnMACAddress
996 UINT8 cnfOwnMACAddress
[6];
997 } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnMACAddress_t
;
999 /*-- Configuration Record: cnfDesiredSSID --*/
1000 typedef struct hfa384x_cnfDesiredSSID
1002 UINT8 cnfDesiredSSID
[34];
1003 } __WLAN_ATTRIB_PACK__ hfa384x_cnfDesiredSSID_t
;
1005 /*-- Configuration Record: cnfOwnChannel --*/
1006 typedef struct hfa384x_cnfOwnChannel
1008 UINT16 cnfOwnChannel
;
1009 } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnChannel_t
;
1011 /*-- Configuration Record: cnfOwnSSID --*/
1012 typedef struct hfa384x_cnfOwnSSID
1014 UINT8 cnfOwnSSID
[34];
1015 } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnSSID_t
;
1017 /*-- Configuration Record: cnfOwnATIMWindow --*/
1018 typedef struct hfa384x_cnfOwnATIMWindow
1020 UINT16 cnfOwnATIMWindow
;
1021 } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnATIMWindow_t
;
1023 /*-- Configuration Record: cnfSystemScale --*/
1024 typedef struct hfa384x_cnfSystemScale
1026 UINT16 cnfSystemScale
;
1027 } __WLAN_ATTRIB_PACK__ hfa384x_cnfSystemScale_t
;
1029 /*-- Configuration Record: cnfMaxDataLength --*/
1030 typedef struct hfa384x_cnfMaxDataLength
1032 UINT16 cnfMaxDataLength
;
1033 } __WLAN_ATTRIB_PACK__ hfa384x_cnfMaxDataLength_t
;
1035 /*-- Configuration Record: cnfWDSAddress --*/
1036 typedef struct hfa384x_cnfWDSAddress
1038 UINT8 cnfWDSAddress
[6];
1039 } __WLAN_ATTRIB_PACK__ hfa384x_cnfWDSAddress_t
;
1041 /*-- Configuration Record: cnfPMEnabled --*/
1042 typedef struct hfa384x_cnfPMEnabled
1044 UINT16 cnfPMEnabled
;
1045 } __WLAN_ATTRIB_PACK__ hfa384x_cnfPMEnabled_t
;
1047 /*-- Configuration Record: cnfPMEPS --*/
1048 typedef struct hfa384x_cnfPMEPS
1051 } __WLAN_ATTRIB_PACK__ hfa384x_cnfPMEPS_t
;
1053 /*-- Configuration Record: cnfMulticastReceive --*/
1054 typedef struct hfa384x_cnfMulticastReceive
1056 UINT16 cnfMulticastReceive
;
1057 } __WLAN_ATTRIB_PACK__ hfa384x_cnfMulticastReceive_t
;
1059 /*-- Configuration Record: cnfAuthentication --*/
1060 #define HFA384x_CNFAUTHENTICATION_OPENSYSTEM 0x0001
1061 #define HFA384x_CNFAUTHENTICATION_SHAREDKEY 0x0002
1062 #define HFA384x_CNFAUTHENTICATION_LEAP 0x0004
1064 /*-- Configuration Record: cnfMaxSleepDuration --*/
1065 typedef struct hfa384x_cnfMaxSleepDuration
1067 UINT16 cnfMaxSleepDuration
;
1068 } __WLAN_ATTRIB_PACK__ hfa384x_cnfMaxSleepDuration_t
;
1070 /*-- Configuration Record: cnfPMHoldoverDuration --*/
1071 typedef struct hfa384x_cnfPMHoldoverDuration
1073 UINT16 cnfPMHoldoverDuration
;
1074 } __WLAN_ATTRIB_PACK__ hfa384x_cnfPMHoldoverDuration_t
;
1076 /*-- Configuration Record: cnfOwnName --*/
1077 typedef struct hfa384x_cnfOwnName
1079 UINT8 cnfOwnName
[34];
1080 } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnName_t
;
1082 /*-- Configuration Record: cnfOwnDTIMPeriod --*/
1083 typedef struct hfa384x_cnfOwnDTIMPeriod
1085 UINT16 cnfOwnDTIMPeriod
;
1086 } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnDTIMPeriod_t
;
1088 /*-- Configuration Record: cnfWDSAddress --*/
1089 typedef struct hfa384x_cnfWDSAddressN
1091 UINT8 cnfWDSAddress
[6];
1092 } __WLAN_ATTRIB_PACK__ hfa384x_cnfWDSAddressN_t
;
1094 /*-- Configuration Record: cnfMulticastPMBuffering --*/
1095 typedef struct hfa384x_cnfMulticastPMBuffering
1097 UINT16 cnfMulticastPMBuffering
;
1098 } __WLAN_ATTRIB_PACK__ hfa384x_cnfMulticastPMBuffering_t
;
1100 /*--------------------------------------------------------------------
1101 Configuration Record Structures:
1102 Network Parameters, Dynamic Configuration Entities
1103 --------------------------------------------------------------------*/
1105 /*-- Configuration Record: GroupAddresses --*/
1106 typedef struct hfa384x_GroupAddresses
1108 UINT8 MACAddress
[16][6];
1109 } __WLAN_ATTRIB_PACK__ hfa384x_GroupAddresses_t
;
1111 /*-- Configuration Record: CreateIBSS --*/
1112 typedef struct hfa384x_CreateIBSS
1115 } __WLAN_ATTRIB_PACK__ hfa384x_CreateIBSS_t
;
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
1122 /*-- Configuration Record: FragmentationThreshold --*/
1123 typedef struct hfa384x_FragmentationThreshold
1125 UINT16 FragmentationThreshold
;
1126 } __WLAN_ATTRIB_PACK__ hfa384x_FragmentationThreshold_t
;
1128 /*-- Configuration Record: RTSThreshold --*/
1129 typedef struct hfa384x_RTSThreshold
1131 UINT16 RTSThreshold
;
1132 } __WLAN_ATTRIB_PACK__ hfa384x_RTSThreshold_t
;
1134 /*-- Configuration Record: TxRateControl --*/
1135 typedef struct hfa384x_TxRateControl
1137 UINT16 TxRateControl
;
1138 } __WLAN_ATTRIB_PACK__ hfa384x_TxRateControl_t
;
1140 /*-- Configuration Record: PromiscuousMode --*/
1141 typedef struct hfa384x_PromiscuousMode
1143 UINT16 PromiscuousMode
;
1144 } __WLAN_ATTRIB_PACK__ hfa384x_PromiscuousMode_t
;
1146 /*-- Configuration Record: ScanRequest (data portion only) --*/
1147 typedef struct hfa384x_ScanRequest_data
1151 } __WLAN_ATTRIB_PACK__ hfa384x_ScanRequest_data_t
;
1153 /*-- Configuration Record: HostScanRequest (data portion only) --*/
1154 typedef struct hfa384x_HostScanRequest_data
1158 hfa384x_bytestr32_t ssid
;
1159 } __WLAN_ATTRIB_PACK__ hfa384x_HostScanRequest_data_t
;
1161 /*-- Configuration Record: JoinRequest (data portion only) --*/
1162 typedef struct hfa384x_JoinRequest_data
1164 UINT8 bssid
[WLAN_BSSID_LEN
];
1166 } __WLAN_ATTRIB_PACK__ hfa384x_JoinRequest_data_t
;
1168 /*-- Configuration Record: authenticateStation (data portion only) --*/
1169 typedef struct hfa384x_authenticateStation_data
1171 UINT8 address
[WLAN_ADDR_LEN
];
1174 } __WLAN_ATTRIB_PACK__ hfa384x_authenticateStation_data_t
;
1176 /*-- Configuration Record: associateStation (data portion only) --*/
1177 typedef struct hfa384x_associateStation_data
1179 UINT8 address
[WLAN_ADDR_LEN
];
1182 } __WLAN_ATTRIB_PACK__ hfa384x_associateStation_data_t
;
1184 /*-- Configuration Record: ChannelInfoRequest (data portion only) --*/
1185 typedef struct hfa384x_ChannelInfoRequest_data
1188 UINT16 channelDwellTime
;
1189 } __WLAN_ATTRIB_PACK__ hfa384x_ChannelInfoRequest_data_t
;
1191 /*-- Configuration Record: WEPKeyMapping (data portion only) --*/
1192 typedef struct hfa384x_WEPKeyMapping
1194 UINT8 address
[WLAN_ADDR_LEN
];
1197 UINT8 mic_transmit_key
[4];
1198 UINT8 mic_receive_key
[4];
1199 } __WLAN_ATTRIB_PACK__ hfa384x_WEPKeyMapping_t
;
1201 /*-- Configuration Record: WPAData (data portion only) --*/
1202 typedef struct hfa384x_WPAData
1205 UINT8 data
[0]; // max 80
1206 } __WLAN_ATTRIB_PACK__ hfa384x_WPAData_t
;
1208 /*--------------------------------------------------------------------
1209 Configuration Record Structures: Behavior Parameters
1210 --------------------------------------------------------------------*/
1212 /*-- Configuration Record: TickTime --*/
1213 typedef struct hfa384x_TickTime
1216 } __WLAN_ATTRIB_PACK__ hfa384x_TickTime_t
;
1218 /*--------------------------------------------------------------------
1219 Information Record Structures: NIC Information
1220 --------------------------------------------------------------------*/
1222 /*-- Information Record: MaxLoadTime --*/
1223 typedef struct hfa384x_MaxLoadTime
1226 } __WLAN_ATTRIB_PACK__ hfa384x_MaxLoadTime_t
;
1228 /*-- Information Record: DownLoadBuffer --*/
1229 /* NOTE: The page and offset are in AUX format */
1230 typedef struct hfa384x_downloadbuffer
1235 } __WLAN_ATTRIB_PACK__ hfa384x_downloadbuffer_t
;
1237 /*-- Information Record: PRIIdentity --*/
1238 typedef struct hfa384x_PRIIdentity
1242 UINT16 PRIMajorVersion
;
1243 UINT16 PRIMinorVersion
;
1244 } __WLAN_ATTRIB_PACK__ hfa384x_PRIIdentity_t
;
1246 /*-- Information Record: PRISupRange --*/
1247 typedef struct hfa384x_PRISupRange
1254 } __WLAN_ATTRIB_PACK__ hfa384x_PRISupRange_t
;
1256 /*-- Information Record: CFIActRanges --*/
1257 typedef struct hfa384x_CFIActRanges
1264 } __WLAN_ATTRIB_PACK__ hfa384x_CFIActRanges_t
;
1266 /*-- Information Record: NICSerialNumber --*/
1267 typedef struct hfa384x_NICSerialNumber
1269 UINT8 NICSerialNumber
[12];
1270 } __WLAN_ATTRIB_PACK__ hfa384x_NICSerialNumber_t
;
1272 /*-- Information Record: NICIdentity --*/
1273 typedef struct hfa384x_NICIdentity
1277 UINT16 NICMajorVersion
;
1278 UINT16 NICMinorVersion
;
1279 } __WLAN_ATTRIB_PACK__ hfa384x_NICIdentity_t
;
1281 /*-- Information Record: MFISupRange --*/
1282 typedef struct hfa384x_MFISupRange
1289 } __WLAN_ATTRIB_PACK__ hfa384x_MFISupRange_t
;
1291 /*-- Information Record: CFISupRange --*/
1292 typedef struct hfa384x_CFISupRange
1299 } __WLAN_ATTRIB_PACK__ hfa384x_CFISupRange_t
;
1301 /*-- Information Record: BUILDSEQ:BuildSeq --*/
1302 typedef struct hfa384x_BuildSeq
{
1305 } __WLAN_ATTRIB_PACK__ hfa384x_BuildSeq_t
;
1307 /*-- Information Record: FWID --*/
1308 #define HFA384x_FWID_LEN 14
1309 typedef struct hfa384x_FWID
{
1310 UINT8 primary
[HFA384x_FWID_LEN
];
1311 UINT8 secondary
[HFA384x_FWID_LEN
];
1312 } __WLAN_ATTRIB_PACK__ hfa384x_FWID_t
;
1314 /*-- Information Record: ChannelList --*/
1315 typedef struct hfa384x_ChannelList
1318 } __WLAN_ATTRIB_PACK__ hfa384x_ChannelList_t
;
1320 /*-- Information Record: RegulatoryDomains --*/
1321 typedef struct hfa384x_RegulatoryDomains
1323 UINT8 RegulatoryDomains
[12];
1324 } __WLAN_ATTRIB_PACK__ hfa384x_RegulatoryDomains_t
;
1326 /*-- Information Record: TempType --*/
1327 typedef struct hfa384x_TempType
1330 } __WLAN_ATTRIB_PACK__ hfa384x_TempType_t
;
1332 /*-- Information Record: CIS --*/
1333 typedef struct hfa384x_CIS
1336 } __WLAN_ATTRIB_PACK__ hfa384x_CIS_t
;
1338 /*-- Information Record: STAIdentity --*/
1339 typedef struct hfa384x_STAIdentity
1343 UINT16 STAMajorVersion
;
1344 UINT16 STAMinorVersion
;
1345 } __WLAN_ATTRIB_PACK__ hfa384x_STAIdentity_t
;
1347 /*-- Information Record: STASupRange --*/
1348 typedef struct hfa384x_STASupRange
1355 } __WLAN_ATTRIB_PACK__ hfa384x_STASupRange_t
;
1357 /*-- Information Record: MFIActRanges --*/
1358 typedef struct hfa384x_MFIActRanges
1365 } __WLAN_ATTRIB_PACK__ hfa384x_MFIActRanges_t
;
1367 /*--------------------------------------------------------------------
1368 Information Record Structures: NIC Information
1369 --------------------------------------------------------------------*/
1371 /*-- Information Record: PortStatus --*/
1372 typedef struct hfa384x_PortStatus
1375 } __WLAN_ATTRIB_PACK__ hfa384x_PortStatus_t
;
1377 #define HFA384x_PSTATUS_DISABLED ((UINT16)1)
1378 #define HFA384x_PSTATUS_SEARCHING ((UINT16)2)
1379 #define HFA384x_PSTATUS_CONN_IBSS ((UINT16)3)
1380 #define HFA384x_PSTATUS_CONN_ESS ((UINT16)4)
1381 #define HFA384x_PSTATUS_OUTOFRANGE ((UINT16)5)
1382 #define HFA384x_PSTATUS_CONN_WDS ((UINT16)6)
1384 /*-- Information Record: CurrentSSID --*/
1385 typedef struct hfa384x_CurrentSSID
1387 UINT8 CurrentSSID
[34];
1388 } __WLAN_ATTRIB_PACK__ hfa384x_CurrentSSID_t
;
1390 /*-- Information Record: CurrentBSSID --*/
1391 typedef struct hfa384x_CurrentBSSID
1393 UINT8 CurrentBSSID
[6];
1394 } __WLAN_ATTRIB_PACK__ hfa384x_CurrentBSSID_t
;
1396 /*-- Information Record: commsquality --*/
1397 typedef struct hfa384x_commsquality
1402 } __WLAN_ATTRIB_PACK__ hfa384x_commsquality_t
;
1404 /*-- Information Record: dmbcommsquality --*/
1405 typedef struct hfa384x_dbmcommsquality
1407 UINT16 CQdbm_currBSS
;
1408 UINT16 ASLdbm_currBSS
;
1409 UINT16 ANLdbm_currFC
;
1410 } __WLAN_ATTRIB_PACK__ hfa384x_dbmcommsquality_t
;
1412 /*-- Information Record: CurrentTxRate --*/
1413 typedef struct hfa384x_CurrentTxRate
1415 UINT16 CurrentTxRate
;
1416 } __WLAN_ATTRIB_PACK__ hfa384x_CurrentTxRate_t
;
1418 /*-- Information Record: CurrentBeaconInterval --*/
1419 typedef struct hfa384x_CurrentBeaconInterval
1421 UINT16 CurrentBeaconInterval
;
1422 } __WLAN_ATTRIB_PACK__ hfa384x_CurrentBeaconInterval_t
;
1424 /*-- Information Record: CurrentScaleThresholds --*/
1425 typedef struct hfa384x_CurrentScaleThresholds
1427 UINT16 EnergyDetectThreshold
;
1428 UINT16 CarrierDetectThreshold
;
1429 UINT16 DeferDetectThreshold
;
1430 UINT16 CellSearchThreshold
; /* Stations only */
1431 UINT16 DeadSpotThreshold
; /* Stations only */
1432 } __WLAN_ATTRIB_PACK__ hfa384x_CurrentScaleThresholds_t
;
1434 /*-- Information Record: ProtocolRspTime --*/
1435 typedef struct hfa384x_ProtocolRspTime
1437 UINT16 ProtocolRspTime
;
1438 } __WLAN_ATTRIB_PACK__ hfa384x_ProtocolRspTime_t
;
1440 /*-- Information Record: ShortRetryLimit --*/
1441 typedef struct hfa384x_ShortRetryLimit
1443 UINT16 ShortRetryLimit
;
1444 } __WLAN_ATTRIB_PACK__ hfa384x_ShortRetryLimit_t
;
1446 /*-- Information Record: LongRetryLimit --*/
1447 typedef struct hfa384x_LongRetryLimit
1449 UINT16 LongRetryLimit
;
1450 } __WLAN_ATTRIB_PACK__ hfa384x_LongRetryLimit_t
;
1452 /*-- Information Record: MaxTransmitLifetime --*/
1453 typedef struct hfa384x_MaxTransmitLifetime
1455 UINT16 MaxTransmitLifetime
;
1456 } __WLAN_ATTRIB_PACK__ hfa384x_MaxTransmitLifetime_t
;
1458 /*-- Information Record: MaxReceiveLifetime --*/
1459 typedef struct hfa384x_MaxReceiveLifetime
1461 UINT16 MaxReceiveLifetime
;
1462 } __WLAN_ATTRIB_PACK__ hfa384x_MaxReceiveLifetime_t
;
1464 /*-- Information Record: CFPollable --*/
1465 typedef struct hfa384x_CFPollable
1468 } __WLAN_ATTRIB_PACK__ hfa384x_CFPollable_t
;
1470 /*-- Information Record: AuthenticationAlgorithms --*/
1471 typedef struct hfa384x_AuthenticationAlgorithms
1473 UINT16 AuthenticationType
;
1475 } __WLAN_ATTRIB_PACK__ hfa384x_AuthenticationAlgorithms_t
;
1477 /*-- Information Record: AuthenticationAlgorithms
1479 typedef struct hfa384x_AuthenticationAlgorithms_data
1481 UINT16 AuthenticationType
;
1483 } __WLAN_ATTRIB_PACK__ hfa384x_AuthenticationAlgorithms_data_t
;
1485 /*-- Information Record: PrivacyOptionImplemented --*/
1486 typedef struct hfa384x_PrivacyOptionImplemented
1488 UINT16 PrivacyOptionImplemented
;
1489 } __WLAN_ATTRIB_PACK__ hfa384x_PrivacyOptionImplemented_t
;
1491 /*-- Information Record: OwnMACAddress --*/
1492 typedef struct hfa384x_OwnMACAddress
1494 UINT8 OwnMACAddress
[6];
1495 } __WLAN_ATTRIB_PACK__ hfa384x_OwnMACAddress_t
;
1497 /*-- Information Record: PCFInfo --*/
1498 typedef struct hfa384x_PCFInfo
1500 UINT16 MediumOccupancyLimit
;
1502 UINT16 CFPMaxDuration
;
1504 } __WLAN_ATTRIB_PACK__ hfa384x_PCFInfo_t
;
1506 /*-- Information Record: PCFInfo (data portion only) --*/
1507 typedef struct hfa384x_PCFInfo_data
1509 UINT16 MediumOccupancyLimit
;
1511 UINT16 CFPMaxDuration
;
1513 } __WLAN_ATTRIB_PACK__ hfa384x_PCFInfo_data_t
;
1515 /*--------------------------------------------------------------------
1516 Information Record Structures: Modem Information Records
1517 --------------------------------------------------------------------*/
1519 /*-- Information Record: PHYType --*/
1520 typedef struct hfa384x_PHYType
1523 } __WLAN_ATTRIB_PACK__ hfa384x_PHYType_t
;
1525 /*-- Information Record: CurrentChannel --*/
1526 typedef struct hfa384x_CurrentChannel
1528 UINT16 CurrentChannel
;
1529 } __WLAN_ATTRIB_PACK__ hfa384x_CurrentChannel_t
;
1531 /*-- Information Record: CurrentPowerState --*/
1532 typedef struct hfa384x_CurrentPowerState
1534 UINT16 CurrentPowerState
;
1535 } __WLAN_ATTRIB_PACK__ hfa384x_CurrentPowerState_t
;
1537 /*-- Information Record: CCAMode --*/
1538 typedef struct hfa384x_CCAMode
1541 } __WLAN_ATTRIB_PACK__ hfa384x_CCAMode_t
;
1543 /*-- Information Record: SupportedDataRates --*/
1544 typedef struct hfa384x_SupportedDataRates
1546 UINT8 SupportedDataRates
[10];
1547 } __WLAN_ATTRIB_PACK__ hfa384x_SupportedDataRates_t
;
1549 /*-- Information Record: LFOStatus --*/
1550 typedef struct hfa384x_LFOStatus
1555 } __WLAN_ATTRIB_PACK__ hfa384x_LFOStatus_t
;
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
1563 /*-- Information Record: LEDControl --*/
1564 typedef struct hfa384x_LEDControl
1566 UINT16 searching_on
;
1567 UINT16 searching_off
;
1571 } __WLAN_ATTRIB_PACK__ hfa384x_LEDControl_t
;
1573 /*--------------------------------------------------------------------
1574 FRAME DESCRIPTORS AND FRAME STRUCTURES
1576 FRAME DESCRIPTORS: Offsets
1578 ----------------------------------------------------------------------
1579 Control Info (offset 44-51)
1580 --------------------------------------------------------------------*/
1581 #define HFA384x_FD_STATUS_OFF ((UINT16)0x44)
1582 #define HFA384x_FD_TIME_OFF ((UINT16)0x46)
1583 #define HFA384x_FD_SWSUPPORT_OFF ((UINT16)0x4A)
1584 #define HFA384x_FD_SILENCE_OFF ((UINT16)0x4A)
1585 #define HFA384x_FD_SIGNAL_OFF ((UINT16)0x4B)
1586 #define HFA384x_FD_RATE_OFF ((UINT16)0x4C)
1587 #define HFA384x_FD_RXFLOW_OFF ((UINT16)0x4D)
1588 #define HFA384x_FD_RESERVED_OFF ((UINT16)0x4E)
1589 #define HFA384x_FD_TXCONTROL_OFF ((UINT16)0x50)
1590 /*--------------------------------------------------------------------
1591 802.11 Header (offset 52-6B)
1592 --------------------------------------------------------------------*/
1593 #define HFA384x_FD_FRAMECONTROL_OFF ((UINT16)0x52)
1594 #define HFA384x_FD_DURATIONID_OFF ((UINT16)0x54)
1595 #define HFA384x_FD_ADDRESS1_OFF ((UINT16)0x56)
1596 #define HFA384x_FD_ADDRESS2_OFF ((UINT16)0x5C)
1597 #define HFA384x_FD_ADDRESS3_OFF ((UINT16)0x62)
1598 #define HFA384x_FD_SEQCONTROL_OFF ((UINT16)0x68)
1599 #define HFA384x_FD_ADDRESS4_OFF ((UINT16)0x6A)
1600 #define HFA384x_FD_DATALEN_OFF ((UINT16)0x70)
1601 /*--------------------------------------------------------------------
1602 802.3 Header (offset 72-7F)
1603 --------------------------------------------------------------------*/
1604 #define HFA384x_FD_DESTADDRESS_OFF ((UINT16)0x72)
1605 #define HFA384x_FD_SRCADDRESS_OFF ((UINT16)0x78)
1606 #define HFA384x_FD_DATALENGTH_OFF ((UINT16)0x7E)
1608 /*--------------------------------------------------------------------
1609 FRAME STRUCTURES: Communication Frames
1610 ----------------------------------------------------------------------
1611 Communication Frames: Transmit Frames
1612 --------------------------------------------------------------------*/
1613 /*-- Communication Frame: Transmit Frame Structure --*/
1614 typedef struct hfa384x_tx_frame
1620 UINT8 tx_retrycount
;
1624 /*-- 802.11 Header Information --*/
1626 UINT16 frame_control
;
1631 UINT16 sequence_control
;
1633 UINT16 data_len
; /* little endian format */
1635 /*-- 802.3 Header Information --*/
1639 UINT16 data_length
; /* big endian format */
1640 } __WLAN_ATTRIB_PACK__ hfa384x_tx_frame_t
;
1641 /*--------------------------------------------------------------------
1642 Communication Frames: Field Masks for Transmit Frames
1643 --------------------------------------------------------------------*/
1644 /*-- Status Field --*/
1645 #define HFA384x_TXSTATUS_ACKERR ((UINT16)BIT5)
1646 #define HFA384x_TXSTATUS_FORMERR ((UINT16)BIT3)
1647 #define HFA384x_TXSTATUS_DISCON ((UINT16)BIT2)
1648 #define HFA384x_TXSTATUS_AGEDERR ((UINT16)BIT1)
1649 #define HFA384x_TXSTATUS_RETRYERR ((UINT16)BIT0)
1650 /*-- Transmit Control Field --*/
1651 #define HFA384x_TX_CFPOLL ((UINT16)BIT12)
1652 #define HFA384x_TX_PRST ((UINT16)BIT11)
1653 #define HFA384x_TX_MACPORT ((UINT16)(BIT10 | BIT9 | BIT8))
1654 #define HFA384x_TX_NOENCRYPT ((UINT16)BIT7)
1655 #define HFA384x_TX_RETRYSTRAT ((UINT16)(BIT6 | BIT5))
1656 #define HFA384x_TX_STRUCTYPE ((UINT16)(BIT4 | BIT3))
1657 #define HFA384x_TX_TXEX ((UINT16)BIT2)
1658 #define HFA384x_TX_TXOK ((UINT16)BIT1)
1659 /*--------------------------------------------------------------------
1660 Communication Frames: Test/Get/Set Field Values for Transmit Frames
1661 --------------------------------------------------------------------*/
1662 /*-- Status Field --*/
1663 #define HFA384x_TXSTATUS_ISERROR(v) \
1665 (HFA384x_TXSTATUS_ACKERR|HFA384x_TXSTATUS_FORMERR|\
1666 HFA384x_TXSTATUS_DISCON|HFA384x_TXSTATUS_AGEDERR|\
1667 HFA384x_TXSTATUS_RETRYERR))
1669 #define HFA384x_TXSTATUS_ISACKERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_ACKERR))
1670 #define HFA384x_TXSTATUS_ISFORMERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_FORMERR))
1671 #define HFA384x_TXSTATUS_ISDISCON(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_DISCON))
1672 #define HFA384x_TXSTATUS_ISAGEDERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_AGEDERR))
1673 #define HFA384x_TXSTATUS_ISRETRYERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_RETRYERR))
1675 #define HFA384x_TX_GET(v,m,s) ((((UINT16)(v))&((UINT16)(m)))>>((UINT16)(s)))
1676 #define HFA384x_TX_SET(v,m,s) ((((UINT16)(v))<<((UINT16)(s)))&((UINT16)(m)))
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 /*--------------------------------------------------------------------
1695 Communication Frames: Receive Frames
1696 --------------------------------------------------------------------*/
1697 /*-- Communication Frame: Receive Frame Structure --*/
1698 typedef struct hfa384x_rx_frame
1700 /*-- MAC rx descriptor (hfa384x byte order) --*/
1710 /*-- 802.11 Header Information (802.11 byte order) --*/
1711 UINT16 frame_control
;
1716 UINT16 sequence_control
;
1718 UINT16 data_len
; /* hfa384x (little endian) format */
1720 /*-- 802.3 Header Information --*/
1723 UINT16 data_length
; /* IEEE? (big endian) format */
1724 } __WLAN_ATTRIB_PACK__ hfa384x_rx_frame_t
;
1725 /*--------------------------------------------------------------------
1726 Communication Frames: Field Masks for Receive Frames
1727 --------------------------------------------------------------------*/
1728 /*-- Offsets --------*/
1729 #define HFA384x_RX_DATA_LEN_OFF ((UINT16)44)
1730 #define HFA384x_RX_80211HDR_OFF ((UINT16)14)
1731 #define HFA384x_RX_DATA_OFF ((UINT16)60)
1733 /*-- Status Fields --*/
1734 #define HFA384x_RXSTATUS_MSGTYPE ((UINT16)(BIT15 | BIT14 | BIT13))
1735 #define HFA384x_RXSTATUS_MACPORT ((UINT16)(BIT10 | BIT9 | BIT8))
1736 #define HFA384x_RXSTATUS_UNDECR ((UINT16)BIT1)
1737 #define HFA384x_RXSTATUS_FCSERR ((UINT16)BIT0)
1738 /*--------------------------------------------------------------------
1739 Communication Frames: Test/Get/Set Field Values for Receive Frames
1740 --------------------------------------------------------------------*/
1741 #define HFA384x_RXSTATUS_MSGTYPE_GET(value) ((UINT16)((((UINT16)(value)) & HFA384x_RXSTATUS_MSGTYPE) >> 13))
1742 #define HFA384x_RXSTATUS_MSGTYPE_SET(value) ((UINT16)(((UINT16)(value)) << 13))
1743 #define HFA384x_RXSTATUS_MACPORT_GET(value) ((UINT16)((((UINT16)(value)) & HFA384x_RXSTATUS_MACPORT) >> 8))
1744 #define HFA384x_RXSTATUS_MACPORT_SET(value) ((UINT16)(((UINT16)(value)) << 8))
1745 #define HFA384x_RXSTATUS_ISUNDECR(value) ((UINT16)(((UINT16)(value)) & HFA384x_RXSTATUS_UNDECR))
1746 #define HFA384x_RXSTATUS_ISFCSERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_RXSTATUS_FCSERR))
1747 /*--------------------------------------------------------------------
1748 FRAME STRUCTURES: Information Types and Information Frame Structures
1749 ----------------------------------------------------------------------
1751 --------------------------------------------------------------------*/
1752 #define HFA384x_IT_HANDOVERADDR ((UINT16)0xF000UL)
1753 #define HFA384x_IT_HANDOVERDEAUTHADDRESS ((UINT16)0xF001UL)//AP 1.3.7
1754 #define HFA384x_IT_COMMTALLIES ((UINT16)0xF100UL)
1755 #define HFA384x_IT_SCANRESULTS ((UINT16)0xF101UL)
1756 #define HFA384x_IT_CHINFORESULTS ((UINT16)0xF102UL)
1757 #define HFA384x_IT_HOSTSCANRESULTS ((UINT16)0xF103UL)
1758 #define HFA384x_IT_LINKSTATUS ((UINT16)0xF200UL)
1759 #define HFA384x_IT_ASSOCSTATUS ((UINT16)0xF201UL)
1760 #define HFA384x_IT_AUTHREQ ((UINT16)0xF202UL)
1761 #define HFA384x_IT_PSUSERCNT ((UINT16)0xF203UL)
1762 #define HFA384x_IT_KEYIDCHANGED ((UINT16)0xF204UL)
1763 #define HFA384x_IT_ASSOCREQ ((UINT16)0xF205UL)
1764 #define HFA384x_IT_MICFAILURE ((UINT16)0xF206UL)
1766 /*--------------------------------------------------------------------
1767 Information Frames Structures
1768 ----------------------------------------------------------------------
1769 Information Frames: Notification Frame Structures
1770 --------------------------------------------------------------------*/
1771 /*-- Notification Frame,MAC Mgmt: Handover Address --*/
1772 typedef struct hfa384x_HandoverAddr
1776 UINT8 handover_addr
[WLAN_BSSID_LEN
];
1777 } __WLAN_ATTRIB_PACK__ hfa384x_HandoverAddr_t
;
1779 /*-- Inquiry Frame, Diagnose: Communication Tallies --*/
1780 typedef struct hfa384x_CommTallies16
1782 UINT16 txunicastframes
;
1783 UINT16 txmulticastframes
;
1785 UINT16 txunicastoctets
;
1786 UINT16 txmulticastoctets
;
1787 UINT16 txdeferredtrans
;
1788 UINT16 txsingleretryframes
;
1789 UINT16 txmultipleretryframes
;
1790 UINT16 txretrylimitexceeded
;
1792 UINT16 rxunicastframes
;
1793 UINT16 rxmulticastframes
;
1795 UINT16 rxunicastoctets
;
1796 UINT16 rxmulticastoctets
;
1798 UINT16 rxdiscardsnobuffer
;
1799 UINT16 txdiscardswrongsa
;
1800 UINT16 rxdiscardswepundecr
;
1801 UINT16 rxmsginmsgfrag
;
1802 UINT16 rxmsginbadmsgfrag
;
1803 } __WLAN_ATTRIB_PACK__ hfa384x_CommTallies16_t
;
1805 typedef struct hfa384x_CommTallies32
1807 UINT32 txunicastframes
;
1808 UINT32 txmulticastframes
;
1810 UINT32 txunicastoctets
;
1811 UINT32 txmulticastoctets
;
1812 UINT32 txdeferredtrans
;
1813 UINT32 txsingleretryframes
;
1814 UINT32 txmultipleretryframes
;
1815 UINT32 txretrylimitexceeded
;
1817 UINT32 rxunicastframes
;
1818 UINT32 rxmulticastframes
;
1820 UINT32 rxunicastoctets
;
1821 UINT32 rxmulticastoctets
;
1823 UINT32 rxdiscardsnobuffer
;
1824 UINT32 txdiscardswrongsa
;
1825 UINT32 rxdiscardswepundecr
;
1826 UINT32 rxmsginmsgfrag
;
1827 UINT32 rxmsginbadmsgfrag
;
1828 } __WLAN_ATTRIB_PACK__ hfa384x_CommTallies32_t
;
1830 /*-- Inquiry Frame, Diagnose: Scan Results & Subfields--*/
1831 typedef struct hfa384x_ScanResultSub
1836 UINT8 bssid
[WLAN_BSSID_LEN
];
1839 hfa384x_bytestr32_t ssid
;
1840 UINT8 supprates
[10]; /* 802.11 info element */
1841 UINT16 proberesp_rate
;
1842 } __WLAN_ATTRIB_PACK__ hfa384x_ScanResultSub_t
;
1844 typedef struct hfa384x_ScanResult
1848 hfa384x_ScanResultSub_t
1849 result
[HFA384x_SCANRESULT_MAX
];
1850 } __WLAN_ATTRIB_PACK__ hfa384x_ScanResult_t
;
1852 /*-- Inquiry Frame, Diagnose: ChInfo Results & Subfields--*/
1853 typedef struct hfa384x_ChInfoResultSub
1859 } __WLAN_ATTRIB_PACK__ hfa384x_ChInfoResultSub_t
;
1861 #define HFA384x_CHINFORESULT_BSSACTIVE BIT0
1862 #define HFA384x_CHINFORESULT_PCFACTIVE BIT1
1864 typedef struct hfa384x_ChInfoResult
1866 UINT16 scanchannels
;
1867 hfa384x_ChInfoResultSub_t
1868 result
[HFA384x_CHINFORESULT_MAX
];
1869 } __WLAN_ATTRIB_PACK__ hfa384x_ChInfoResult_t
;
1871 /*-- Inquiry Frame, Diagnose: Host Scan Results & Subfields--*/
1872 typedef struct hfa384x_HScanResultSub
1877 UINT8 bssid
[WLAN_BSSID_LEN
];
1880 hfa384x_bytestr32_t ssid
;
1881 UINT8 supprates
[10]; /* 802.11 info element */
1882 UINT16 proberesp_rate
;
1884 } __WLAN_ATTRIB_PACK__ hfa384x_HScanResultSub_t
;
1886 typedef struct hfa384x_HScanResult
1890 hfa384x_HScanResultSub_t
1891 result
[HFA384x_HSCANRESULT_MAX
];
1892 } __WLAN_ATTRIB_PACK__ hfa384x_HScanResult_t
;
1894 /*-- Unsolicited Frame, MAC Mgmt: LinkStatus --*/
1896 #define HFA384x_LINK_NOTCONNECTED ((UINT16)0)
1897 #define HFA384x_LINK_CONNECTED ((UINT16)1)
1898 #define HFA384x_LINK_DISCONNECTED ((UINT16)2)
1899 #define HFA384x_LINK_AP_CHANGE ((UINT16)3)
1900 #define HFA384x_LINK_AP_OUTOFRANGE ((UINT16)4)
1901 #define HFA384x_LINK_AP_INRANGE ((UINT16)5)
1902 #define HFA384x_LINK_ASSOCFAIL ((UINT16)6)
1904 typedef struct hfa384x_LinkStatus
1907 } __WLAN_ATTRIB_PACK__ hfa384x_LinkStatus_t
;
1910 /*-- Unsolicited Frame, MAC Mgmt: AssociationStatus (--*/
1912 #define HFA384x_ASSOCSTATUS_STAASSOC ((UINT16)1)
1913 #define HFA384x_ASSOCSTATUS_REASSOC ((UINT16)2)
1914 #define HFA384x_ASSOCSTATUS_DISASSOC ((UINT16)3)
1915 #define HFA384x_ASSOCSTATUS_ASSOCFAIL ((UINT16)4)
1916 #define HFA384x_ASSOCSTATUS_AUTHFAIL ((UINT16)5)
1918 typedef struct hfa384x_AssocStatus
1921 UINT8 sta_addr
[WLAN_ADDR_LEN
];
1922 /* old_ap_addr is only valid if assocstatus == 2 */
1923 UINT8 old_ap_addr
[WLAN_ADDR_LEN
];
1926 } __WLAN_ATTRIB_PACK__ hfa384x_AssocStatus_t
;
1928 /*-- Unsolicited Frame, MAC Mgmt: AuthRequest (AP Only) --*/
1930 typedef struct hfa384x_AuthRequest
1932 UINT8 sta_addr
[WLAN_ADDR_LEN
];
1934 } __WLAN_ATTRIB_PACK__ hfa384x_AuthReq_t
;
1936 /*-- Unsolicited Frame, MAC Mgmt: AssocRequest (AP Only) --*/
1938 typedef struct hfa384x_AssocRequest
1940 UINT8 sta_addr
[WLAN_ADDR_LEN
];
1943 } __WLAN_ATTRIB_PACK__ hfa384x_AssocReq_t
;
1946 #define HFA384x_ASSOCREQ_TYPE_ASSOC 0
1947 #define HFA384x_ASSOCREQ_TYPE_REASSOC 1
1949 /*-- Unsolicited Frame, MAC Mgmt: MIC Failure (AP Only) --*/
1951 typedef struct hfa384x_MicFailure
1953 UINT8 sender
[WLAN_ADDR_LEN
];
1954 UINT8 dest
[WLAN_ADDR_LEN
];
1955 } __WLAN_ATTRIB_PACK__ hfa384x_MicFailure_t
;
1957 /*-- Unsolicited Frame, MAC Mgmt: PSUserCount (AP Only) --*/
1959 typedef struct hfa384x_PSUserCount
1962 } __WLAN_ATTRIB_PACK__ hfa384x_PSUserCount_t
;
1964 typedef struct hfa384x_KeyIDChanged
1966 UINT8 sta_addr
[WLAN_ADDR_LEN
];
1968 } __WLAN_ATTRIB_PACK__ hfa384x_KeyIDChanged_t
;
1970 /*-- Collection of all Inf frames ---------------*/
1971 typedef union hfa384x_infodata
{
1972 hfa384x_CommTallies16_t commtallies16
;
1973 hfa384x_CommTallies32_t commtallies32
;
1974 hfa384x_ScanResult_t scanresult
;
1975 hfa384x_ChInfoResult_t chinforesult
;
1976 hfa384x_HScanResult_t hscanresult
;
1977 hfa384x_LinkStatus_t linkstatus
;
1978 hfa384x_AssocStatus_t assocstatus
;
1979 hfa384x_AuthReq_t authreq
;
1980 hfa384x_PSUserCount_t psusercnt
;
1981 hfa384x_KeyIDChanged_t keyidchanged
;
1982 } __WLAN_ATTRIB_PACK__ hfa384x_infodata_t
;
1984 typedef struct hfa384x_InfFrame
1988 hfa384x_infodata_t info
;
1989 } __WLAN_ATTRIB_PACK__ hfa384x_InfFrame_t
;
1991 #if (WLAN_HOSTIF == WLAN_USB)
1992 /*--------------------------------------------------------------------
1993 USB Packet structures and constants.
1994 --------------------------------------------------------------------*/
1996 /* Should be sent to the ctrlout endpoint */
1997 #define HFA384x_USB_ENBULKIN 6
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
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
2020 /*------------------------------------*/
2021 /* Request (bulk OUT) packet contents */
2023 typedef struct hfa384x_usb_txfrm
{
2024 hfa384x_tx_frame_t desc
;
2025 UINT8 data
[WLAN_DATA_MAXLEN
];
2026 } __WLAN_ATTRIB_PACK__ hfa384x_usb_txfrm_t
;
2028 typedef struct hfa384x_usb_cmdreq
{
2035 } __WLAN_ATTRIB_PACK__ hfa384x_usb_cmdreq_t
;
2037 typedef struct hfa384x_usb_wridreq
{
2041 UINT8 data
[HFA384x_RIDDATA_MAXLEN
];
2042 } __WLAN_ATTRIB_PACK__ hfa384x_usb_wridreq_t
;
2044 typedef struct hfa384x_usb_rridreq
{
2049 } __WLAN_ATTRIB_PACK__ hfa384x_usb_rridreq_t
;
2051 typedef struct hfa384x_usb_wmemreq
{
2056 UINT8 data
[HFA384x_USB_RWMEM_MAXLEN
];
2057 } __WLAN_ATTRIB_PACK__ hfa384x_usb_wmemreq_t
;
2059 typedef struct hfa384x_usb_rmemreq
{
2065 } __WLAN_ATTRIB_PACK__ hfa384x_usb_rmemreq_t
;
2067 /*------------------------------------*/
2068 /* Response (bulk IN) packet contents */
2070 typedef struct hfa384x_usb_rxfrm
{
2071 hfa384x_rx_frame_t desc
;
2072 UINT8 data
[WLAN_DATA_MAXLEN
];
2073 } __WLAN_ATTRIB_PACK__ hfa384x_usb_rxfrm_t
;
2075 typedef struct hfa384x_usb_infofrm
{
2077 hfa384x_InfFrame_t info
;
2078 } __WLAN_ATTRIB_PACK__ hfa384x_usb_infofrm_t
;
2080 typedef struct hfa384x_usb_statusresp
{
2086 } __WLAN_ATTRIB_PACK__ hfa384x_usb_cmdresp_t
;
2088 typedef hfa384x_usb_cmdresp_t hfa384x_usb_wridresp_t
;
2090 typedef struct hfa384x_usb_rridresp
{
2094 UINT8 data
[HFA384x_RIDDATA_MAXLEN
];
2095 } __WLAN_ATTRIB_PACK__ hfa384x_usb_rridresp_t
;
2097 typedef hfa384x_usb_cmdresp_t hfa384x_usb_wmemresp_t
;
2099 typedef struct hfa384x_usb_rmemresp
{
2102 UINT8 data
[HFA384x_USB_RWMEM_MAXLEN
];
2103 } __WLAN_ATTRIB_PACK__ hfa384x_usb_rmemresp_t
;
2105 typedef struct hfa384x_usb_bufavail
{
2108 } __WLAN_ATTRIB_PACK__ hfa384x_usb_bufavail_t
;
2110 typedef struct hfa384x_usb_error
{
2113 } __WLAN_ATTRIB_PACK__ hfa384x_usb_error_t
;
2115 /*----------------------------------------------------------*/
2116 /* Unions for packaging all the known packet types together */
2118 typedef union hfa384x_usbout
{
2120 hfa384x_usb_txfrm_t txfrm
;
2121 hfa384x_usb_cmdreq_t cmdreq
;
2122 hfa384x_usb_wridreq_t wridreq
;
2123 hfa384x_usb_rridreq_t rridreq
;
2124 hfa384x_usb_wmemreq_t wmemreq
;
2125 hfa384x_usb_rmemreq_t rmemreq
;
2126 } __WLAN_ATTRIB_PACK__ hfa384x_usbout_t
;
2128 typedef union hfa384x_usbin
{
2130 hfa384x_usb_rxfrm_t rxfrm
;
2131 hfa384x_usb_txfrm_t txfrm
;
2132 hfa384x_usb_infofrm_t infofrm
;
2133 hfa384x_usb_cmdresp_t cmdresp
;
2134 hfa384x_usb_wridresp_t wridresp
;
2135 hfa384x_usb_rridresp_t rridresp
;
2136 hfa384x_usb_wmemresp_t wmemresp
;
2137 hfa384x_usb_rmemresp_t rmemresp
;
2138 hfa384x_usb_bufavail_t bufavail
;
2139 hfa384x_usb_error_t usberror
;
2140 UINT8 boguspad
[3000];
2141 } __WLAN_ATTRIB_PACK__ hfa384x_usbin_t
;
2143 #endif /* WLAN_USB */
2145 /*--------------------------------------------------------------------
2146 PD record structures.
2147 --------------------------------------------------------------------*/
2149 typedef struct hfa384x_pdr_pcb_partnum
2152 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_pcb_partnum_t
;
2154 typedef struct hfa384x_pdr_pcb_tracenum
2157 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_pcb_tracenum_t
;
2159 typedef struct hfa384x_pdr_nic_serial
2162 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nic_serial_t
;
2164 typedef struct hfa384x_pdr_mkk_measurements
2166 double carrier_freq
;
2167 double occupied_band
;
2168 double power_density
;
2181 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mkk_measurements_t
;
2183 typedef struct hfa384x_pdr_nic_ramsize
2185 UINT8 size
[12]; /* units of KB */
2186 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nic_ramsize_t
;
2188 typedef struct hfa384x_pdr_mfisuprange
2194 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mfisuprange_t
;
2196 typedef struct hfa384x_pdr_cfisuprange
2202 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_cfisuprange_t
;
2204 typedef struct hfa384x_pdr_nicid
2210 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nicid_t
;
2213 typedef struct hfa384x_pdr_refdac_measurements
2216 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_refdac_measurements_t
;
2218 typedef struct hfa384x_pdr_vgdac_measurements
2221 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_vgdac_measurements_t
;
2223 typedef struct hfa384x_pdr_level_comp_measurements
2226 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_level_compc_measurements_t
;
2228 typedef struct hfa384x_pdr_mac_address
2231 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mac_address_t
;
2233 typedef struct hfa384x_pdr_mkk_callname
2236 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mkk_callname_t
;
2238 typedef struct hfa384x_pdr_regdomain
2242 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_regdomain_t
;
2244 typedef struct hfa384x_pdr_allowed_channel
2247 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_allowed_channel_t
;
2249 typedef struct hfa384x_pdr_default_channel
2252 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_default_channel_t
;
2254 typedef struct hfa384x_pdr_privacy_option
2257 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_privacy_option_t
;
2259 typedef struct hfa384x_pdr_temptype
2262 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_temptype_t
;
2264 typedef struct hfa384x_pdr_refdac_setup
2266 UINT16 ch_value
[14];
2267 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_refdac_setup_t
;
2269 typedef struct hfa384x_pdr_vgdac_setup
2271 UINT16 ch_value
[14];
2272 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_vgdac_setup_t
;
2274 typedef struct hfa384x_pdr_level_comp_setup
2276 UINT16 ch_value
[14];
2277 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_level_comp_setup_t
;
2279 typedef struct hfa384x_pdr_trimdac_setup
2283 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_trimdac_setup_t
;
2285 typedef struct hfa384x_pdr_ifr_setting
2288 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_ifr_setting_t
;
2290 typedef struct hfa384x_pdr_rfr_setting
2293 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_rfr_setting_t
;
2295 typedef struct hfa384x_pdr_hfa3861_baseline
2298 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_baseline_t
;
2300 typedef struct hfa384x_pdr_hfa3861_shadow
2303 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_shadow_t
;
2305 typedef struct hfa384x_pdr_hfa3861_ifrf
2308 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_ifrf_t
;
2310 typedef struct hfa384x_pdr_hfa3861_chcalsp
2313 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_chcalsp_t
;
2315 typedef struct hfa384x_pdr_hfa3861_chcali
2318 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_chcali_t
;
2320 typedef struct hfa384x_pdr_hfa3861_nic_config
2322 UINT16 config_bitmap
;
2323 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nic_config_t
;
2325 typedef struct hfa384x_pdr_hfo_delay
2328 } __WLAN_ATTRIB_PACK__ hfa384x_hfo_delay_t
;
2330 typedef struct hfa384x_pdr_hfa3861_manf_testsp
2333 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_manf_testsp_t
;
2335 typedef struct hfa384x_pdr_hfa3861_manf_testi
2338 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_manf_testi_t
;
2340 typedef struct hfa384x_end_of_pda
2343 } __WLAN_ATTRIB_PACK__ hfa384x_pdr_end_of_pda_t
;
2345 typedef struct hfa384x_pdrec
2347 UINT16 len
; /* in words */
2350 hfa384x_pdr_pcb_partnum_t pcb_partnum
;
2351 hfa384x_pdr_pcb_tracenum_t pcb_tracenum
;
2352 hfa384x_pdr_nic_serial_t nic_serial
;
2353 hfa384x_pdr_mkk_measurements_t mkk_measurements
;
2354 hfa384x_pdr_nic_ramsize_t nic_ramsize
;
2355 hfa384x_pdr_mfisuprange_t mfisuprange
;
2356 hfa384x_pdr_cfisuprange_t cfisuprange
;
2357 hfa384x_pdr_nicid_t nicid
;
2358 hfa384x_pdr_refdac_measurements_t refdac_measurements
;
2359 hfa384x_pdr_vgdac_measurements_t vgdac_measurements
;
2360 hfa384x_pdr_level_compc_measurements_t level_compc_measurements
;
2361 hfa384x_pdr_mac_address_t mac_address
;
2362 hfa384x_pdr_mkk_callname_t mkk_callname
;
2363 hfa384x_pdr_regdomain_t regdomain
;
2364 hfa384x_pdr_allowed_channel_t allowed_channel
;
2365 hfa384x_pdr_default_channel_t default_channel
;
2366 hfa384x_pdr_privacy_option_t privacy_option
;
2367 hfa384x_pdr_temptype_t temptype
;
2368 hfa384x_pdr_refdac_setup_t refdac_setup
;
2369 hfa384x_pdr_vgdac_setup_t vgdac_setup
;
2370 hfa384x_pdr_level_comp_setup_t level_comp_setup
;
2371 hfa384x_pdr_trimdac_setup_t trimdac_setup
;
2372 hfa384x_pdr_ifr_setting_t ifr_setting
;
2373 hfa384x_pdr_rfr_setting_t rfr_setting
;
2374 hfa384x_pdr_hfa3861_baseline_t hfa3861_baseline
;
2375 hfa384x_pdr_hfa3861_shadow_t hfa3861_shadow
;
2376 hfa384x_pdr_hfa3861_ifrf_t hfa3861_ifrf
;
2377 hfa384x_pdr_hfa3861_chcalsp_t hfa3861_chcalsp
;
2378 hfa384x_pdr_hfa3861_chcali_t hfa3861_chcali
;
2379 hfa384x_pdr_nic_config_t nic_config
;
2380 hfa384x_hfo_delay_t hfo_delay
;
2381 hfa384x_pdr_hfa3861_manf_testsp_t hfa3861_manf_testsp
;
2382 hfa384x_pdr_hfa3861_manf_testi_t hfa3861_manf_testi
;
2383 hfa384x_pdr_end_of_pda_t end_of_pda
;
2386 } __WLAN_ATTRIB_PACK__ hfa384x_pdrec_t
;
2390 /*--------------------------------------------------------------------
2391 --- MAC state structure, argument to all functions --
2392 --- Also, a collection of support types --
2393 --------------------------------------------------------------------*/
2394 typedef struct hfa384x_statusresult
2400 } hfa384x_cmdresult_t
;
2402 #if (WLAN_HOSTIF == WLAN_USB)
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.
2408 /* The following hfa384x_* structures are arguments to
2409 * the usercb() for the different CTLX types.
2411 typedef hfa384x_cmdresult_t hfa384x_wridresult_t
;
2412 typedef hfa384x_cmdresult_t hfa384x_wmemresult_t
;
2414 typedef struct hfa384x_rridresult
2417 const void *riddata
;
2419 } hfa384x_rridresult_t
;
2422 CTLX_START
= 0, /* Start state, not queued */
2424 CTLX_COMPLETE
, /* CTLX successfully completed */
2425 CTLX_REQ_FAILED
, /* OUT URB completed w/ error */
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 */
2432 typedef enum ctlx_state CTLX_STATE
;
2434 struct hfa384x_usbctlx
;
2437 typedef void (*ctlx_cmdcb_t
)( struct hfa384x
*, const struct hfa384x_usbctlx
* );
2439 typedef void (*ctlx_usercb_t
)(
2444 typedef struct hfa384x_usbctlx
2446 struct list_head list
;
2449 hfa384x_usbout_t outbuf
; /* pkt buf for OUT */
2450 hfa384x_usbin_t inbuf
; /* pkt buf for IN(a copy) */
2452 CTLX_STATE state
; /* Tracks running state */
2454 struct completion done
;
2455 volatile int reapable
; /* Food for the reaper task */
2457 ctlx_cmdcb_t cmdcb
; /* Async command callback */
2458 ctlx_usercb_t usercb
; /* Async user callback, */
2459 void *usercb_data
; /* at CTLX completion */
2461 int variant
; /* Identifies cmd variant */
2462 } hfa384x_usbctlx_t
;
2464 typedef struct hfa384x_usbctlxq
2467 struct list_head pending
;
2468 struct list_head active
;
2469 struct list_head completing
;
2470 struct list_head reapable
;
2471 } hfa384x_usbctlxq_t
;
2474 typedef struct hfa484x_metacmd
2482 #if 0 //XXX cmd irq stuff
2483 UINT16 bulkid
; /* what RID/FID to copy down. */
2484 int bulklen
; /* how much to copy from BAP */
2485 char *bulkdata
; /* And to where? */
2488 hfa384x_cmdresult_t result
;
2489 } hfa384x_metacmd_t
;
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. */
2495 #define MM_SAT_PCF (BIT14)
2496 #define MM_GCSD_PCF (BIT15)
2497 #define MM_GCSD_PCF_EB (BIT14 | BIT15)
2499 #define WLAN_STATE_STOPPED 0 /* Network is not active. */
2500 #define WLAN_STATE_STARTED 1 /* Network has been started. */
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. */
2509 /* XXX These are going away ASAP */
2510 typedef struct prism2sta_authlist
2513 UINT8 addr
[WLAN_AUTH_MAX
][WLAN_ADDR_LEN
];
2514 UINT8 assoc
[WLAN_AUTH_MAX
];
2515 } prism2sta_authlist_t
;
2517 typedef struct prism2sta_accesslist
2521 UINT8 addr
[WLAN_ACCESS_MAX
][WLAN_ADDR_LEN
];
2523 UINT8 addr1
[WLAN_ACCESS_MAX
][WLAN_ADDR_LEN
];
2524 } prism2sta_accesslist_t
;
2526 typedef struct hfa384x
2528 #if (WLAN_HOSTIF != WLAN_USB)
2529 /* Resource config */
2531 char __iomem
*membase
;
2534 /* USB support data */
2535 struct usb_device
*usb
;
2537 struct sk_buff
*rx_urb_skb
;
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
;
2545 struct timer_list throttle
;
2547 struct tasklet_struct reaper_bh
;
2548 struct tasklet_struct completion_bh
;
2550 struct work_struct usb_work
;
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
2560 unsigned short req_timer_done
:1;
2561 unsigned short resp_timer_done
:1;
2567 #if (WLAN_HOSTIF == WLAN_PCMCIA)
2568 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,16)
2569 struct pcmcia_device
*pdev
;
2581 wait_queue_head_t cmdq
; /* wait queue itself */
2583 /* Controller state */
2586 UINT8 port_enabled
[HFA384x_NUMPORTS_MAX
];
2587 #if (WLAN_HOSTIF != WLAN_USB)
2592 /* Download support */
2594 hfa384x_downloadbuffer_t bufinfo
;
2597 #if (WLAN_HOSTIF != WLAN_USB)
2599 volatile int cmdflag
; /* wait queue flag */
2600 hfa384x_metacmd_t
*cmddata
; /* for our async callback */
2604 struct tasklet_struct bap_tasklet
;
2606 /* MAC buffer ids */
2610 UINT16 txfid_queue
[HFA384x_DRVR_FIDSTACKLEN_MAX
];
2612 struct semaphore infofid_sem
;
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 */
2620 wlandevice_t
*wlandev
;
2621 /* Timer to allow for the deferred processing of linkstatus messages */
2622 struct work_struct link_bh
;
2624 struct work_struct commsqual_bh
;
2625 hfa384x_commsquality_t qual
;
2626 struct timer_list commsqual_timer
;
2629 UINT16 link_status_new
;
2630 struct sk_buff_head authq
;
2632 /* And here we have stuff that used to be in priv */
2634 /* State variables */
2635 UINT presniff_port_type
;
2636 UINT16 presniff_wepflags
;
2637 UINT32 dot11_desired_bss_type
;
2638 int ap
; /* AP flag: 0 - Station, 1 - Access Point. */
2642 /* Group Addresses - right now, there are up to a total
2643 of MAX_GRP_ADDR group addresses */
2644 UINT8 dot11_grp_addr
[MAX_GRP_ADDR
][WLAN_ADDR_LEN
];
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
;
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
;
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 */
2668 UINT32 psusercount
; /* Power save user count. */
2669 hfa384x_CommTallies32_t tallies
; /* Communication tallies. */
2670 UINT8 comment
[WLAN_COMMENT_MAX
+1]; /* User comment */
2672 /* Channel Info request results (AP only) */
2676 hfa384x_ChInfoResult_t results
;
2679 hfa384x_InfFrame_t
*scanresults
;
2682 prism2sta_authlist_t authlist
; /* Authenticated station list. */
2683 UINT accessmode
; /* Access mode. */
2684 prism2sta_accesslist_t allow
; /* Allowed station list. */
2685 prism2sta_accesslist_t deny
; /* Denied station list. */
2689 /*=============================================================*/
2690 /*--- Function Declarations -----------------------------------*/
2691 /*=============================================================*/
2692 #if (WLAN_HOSTIF == WLAN_USB)
2696 struct usb_device
*usb
);
2703 UINT8 __iomem
*membase
);
2706 void hfa384x_destroy(hfa384x_t
*hw
);
2709 hfa384x_interrupt(int irq
, void *dev_id PT_REGS
);
2711 hfa384x_corereset( hfa384x_t
*hw
, int holdtime
, int settletime
, int genesis
);
2713 hfa384x_drvr_chinforesults( hfa384x_t
*hw
);
2715 hfa384x_drvr_commtallies( hfa384x_t
*hw
);
2717 hfa384x_drvr_disable(hfa384x_t
*hw
, UINT16 macport
);
2719 hfa384x_drvr_enable(hfa384x_t
*hw
, UINT16 macport
);
2721 hfa384x_drvr_flashdl_enable(hfa384x_t
*hw
);
2723 hfa384x_drvr_flashdl_disable(hfa384x_t
*hw
);
2725 hfa384x_drvr_flashdl_write(hfa384x_t
*hw
, UINT32 daddr
, void* buf
, UINT32 len
);
2727 hfa384x_drvr_getconfig(hfa384x_t
*hw
, UINT16 rid
, void *buf
, UINT16 len
);
2729 hfa384x_drvr_handover( hfa384x_t
*hw
, UINT8
*addr
);
2731 hfa384x_drvr_hostscanresults( hfa384x_t
*hw
);
2733 hfa384x_drvr_low_level(hfa384x_t
*hw
, hfa384x_metacmd_t
*cmd
);
2735 hfa384x_drvr_mmi_read(hfa384x_t
*hw
, UINT32 address
, UINT32
*result
);
2737 hfa384x_drvr_mmi_write(hfa384x_t
*hw
, UINT32 address
, UINT32 data
);
2739 hfa384x_drvr_ramdl_enable(hfa384x_t
*hw
, UINT32 exeaddr
);
2741 hfa384x_drvr_ramdl_disable(hfa384x_t
*hw
);
2743 hfa384x_drvr_ramdl_write(hfa384x_t
*hw
, UINT32 daddr
, void* buf
, UINT32 len
);
2745 hfa384x_drvr_readpda(hfa384x_t
*hw
, void *buf
, UINT len
);
2747 hfa384x_drvr_scanresults( hfa384x_t
*hw
);
2750 hfa384x_drvr_setconfig(hfa384x_t
*hw
, UINT16 rid
, void *buf
, UINT16 len
);
2753 hfa384x_drvr_getconfig16(hfa384x_t
*hw
, UINT16 rid
, void *val
)
2756 result
= hfa384x_drvr_getconfig(hw
, rid
, val
, sizeof(UINT16
));
2757 if ( result
== 0 ) {
2758 *((UINT16
*)val
) = hfa384x2host_16(*((UINT16
*)val
));
2764 hfa384x_drvr_getconfig32(hfa384x_t
*hw
, UINT16 rid
, void *val
)
2768 result
= hfa384x_drvr_getconfig(hw
, rid
, val
, sizeof(UINT32
));
2769 if ( result
== 0 ) {
2770 *((UINT32
*)val
) = hfa384x2host_32(*((UINT32
*)val
));
2777 hfa384x_drvr_setconfig16(hfa384x_t
*hw
, UINT16 rid
, UINT16 val
)
2779 UINT16 value
= host2hfa384x_16(val
);
2780 return hfa384x_drvr_setconfig(hw
, rid
, &value
, sizeof(value
));
2784 hfa384x_drvr_setconfig32(hfa384x_t
*hw
, UINT16 rid
, UINT32 val
)
2786 UINT32 value
= host2hfa384x_32(val
);
2787 return hfa384x_drvr_setconfig(hw
, rid
, &value
, sizeof(value
));
2790 #if (WLAN_HOSTIF == WLAN_USB)
2792 hfa384x_drvr_getconfig_async(hfa384x_t
*hw
,
2794 ctlx_usercb_t usercb
,
2798 hfa384x_drvr_setconfig_async(hfa384x_t
*hw
,
2802 ctlx_usercb_t usercb
,
2806 hfa384x_drvr_setconfig_async(hfa384x_t
*hw
, UINT16 rid
, void *buf
, UINT16 len
,
2807 void *ptr1
, void *ptr2
)
2811 return hfa384x_drvr_setconfig(hw
, rid
, buf
, len
);
2816 hfa384x_drvr_setconfig16_async(hfa384x_t
*hw
, UINT16 rid
, UINT16 val
)
2818 UINT16 value
= host2hfa384x_16(val
);
2819 return hfa384x_drvr_setconfig_async(hw
, rid
, &value
, sizeof(value
),
2824 hfa384x_drvr_setconfig32_async(hfa384x_t
*hw
, UINT16 rid
, UINT32 val
)
2826 UINT32 value
= host2hfa384x_32(val
);
2827 return hfa384x_drvr_setconfig_async(hw
, rid
, &value
, sizeof(value
),
2833 hfa384x_drvr_start(hfa384x_t
*hw
);
2835 hfa384x_drvr_stop(hfa384x_t
*hw
);
2837 hfa384x_drvr_txframe(hfa384x_t
*hw
, struct sk_buff
*skb
, p80211_hdr_t
*p80211_hdr
, p80211_metawep_t
*p80211_wep
);
2839 hfa384x_tx_timeout(wlandevice_t
*wlandev
);
2842 hfa384x_cmd_initialize(hfa384x_t
*hw
);
2844 hfa384x_cmd_enable(hfa384x_t
*hw
, UINT16 macport
);
2846 hfa384x_cmd_disable(hfa384x_t
*hw
, UINT16 macport
);
2848 hfa384x_cmd_diagnose(hfa384x_t
*hw
);
2850 hfa384x_cmd_allocate(hfa384x_t
*hw
, UINT16 len
);
2852 hfa384x_cmd_transmit(hfa384x_t
*hw
, UINT16 reclaim
, UINT16 qos
, UINT16 fid
);
2854 hfa384x_cmd_clearpersist(hfa384x_t
*hw
, UINT16 fid
);
2856 hfa384x_cmd_notify(hfa384x_t
*hw
, UINT16 reclaim
, UINT16 fid
, void *buf
, UINT16 len
);
2858 hfa384x_cmd_inquire(hfa384x_t
*hw
, UINT16 fid
);
2860 hfa384x_cmd_access(hfa384x_t
*hw
, UINT16 write
, UINT16 rid
, void *buf
, UINT16 len
);
2862 hfa384x_cmd_monitor(hfa384x_t
*hw
, UINT16 enable
);
2864 hfa384x_cmd_download(
2871 hfa384x_cmd_aux_enable(hfa384x_t
*hw
, int force
);
2873 hfa384x_cmd_aux_disable(hfa384x_t
*hw
);
2875 hfa384x_copy_from_bap(
2883 hfa384x_copy_to_bap(
2891 hfa384x_copy_from_aux(
2898 hfa384x_copy_to_aux(
2905 #if (WLAN_HOSTIF != WLAN_USB)
2908 HFA384x is a LITTLE ENDIAN part.
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.
2914 static inline UINT16
2915 __hfa384x_getreg(hfa384x_t
*hw
, UINT reg
);
2918 __hfa384x_setreg(hfa384x_t
*hw
, UINT16 val
, UINT reg
);
2920 static inline UINT16
2921 __hfa384x_getreg_noswap(hfa384x_t
*hw
, UINT reg
);
2924 __hfa384x_setreg_noswap(hfa384x_t
*hw
, UINT16 val
, UINT reg
);
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
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
2938 /*----------------------------------------------------------------
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!!!!!!
2946 * hw MAC part structure
2947 * reg Register identifier (offset for I/O based i/f)
2950 * Value from the register in HOST ORDER!!!!
2951 ----------------------------------------------------------------*/
2952 static inline UINT16
2953 __hfa384x_getreg(hfa384x_t
*hw
, UINT reg
)
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
));
2963 /*----------------------------------------------------------------
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!!!!!!
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)
2977 ----------------------------------------------------------------*/
2979 __hfa384x_setreg(hfa384x_t
*hw
, UINT16 val
, UINT reg
)
2981 #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
2982 wlan_outw_cpu_to_le16( val
, hw
->iobase
+ reg
);
2984 #elif (WLAN_HOSTIF == WLAN_PCI)
2985 writew(__cpu_to_le16(val
), hw
->membase
+ reg
);
2991 /*----------------------------------------------------------------
2992 * hfa384x_getreg_noswap
2994 * Retrieve the value of one of the MAC registers. Done here
2995 * because different PRISM2 MAC parts use different buses and such.
2998 * hw MAC part structure
2999 * reg Register identifier (offset for I/O based i/f)
3002 * Value from the register.
3003 ----------------------------------------------------------------*/
3004 static inline UINT16
3005 __hfa384x_getreg_noswap(hfa384x_t
*hw
, UINT reg
)
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
);
3015 /*----------------------------------------------------------------
3016 * hfa384x_setreg_noswap
3018 * Set the value of one of the MAC registers. Done here
3019 * because different PRISM2 MAC parts use different buses and such.
3022 * hw MAC part structure
3023 * val Value to put in the register
3024 * reg Register identifier (offset for I/O based i/f)
3028 ----------------------------------------------------------------*/
3030 __hfa384x_setreg_noswap(hfa384x_t
*hw
, UINT16 val
, UINT reg
)
3032 #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX))
3033 wlan_outw( val
, hw
->iobase
+ reg
);
3035 #elif (WLAN_HOSTIF == WLAN_PCI)
3036 writew(val
, hw
->membase
+ reg
);
3042 static inline void hfa384x_events_all(hfa384x_t
*hw
)
3047 | HFA384x_INTEN_CMD_SET(1)
3054 static inline void hfa384x_events_nobap(hfa384x_t
*hw
)
3057 (HFA384x_INT_NORMAL
& ~HFA384x_INT_BAP_OP
)
3059 | HFA384x_INTEN_CMD_SET(1)
3066 #endif /* WLAN_HOSTIF != WLAN_USB */
3067 #endif /* __KERNEL__ */
3069 #endif /* _HFA384x_H */