100b3ed16SGreg Kroah-Hartman /* hfa384x.h 200b3ed16SGreg Kroah-Hartman * 300b3ed16SGreg Kroah-Hartman * Defines the constants and data structures for the hfa384x 400b3ed16SGreg Kroah-Hartman * 500b3ed16SGreg Kroah-Hartman * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved. 600b3ed16SGreg Kroah-Hartman * -------------------------------------------------------------------- 700b3ed16SGreg Kroah-Hartman * 800b3ed16SGreg Kroah-Hartman * linux-wlan 900b3ed16SGreg Kroah-Hartman * 1000b3ed16SGreg Kroah-Hartman * The contents of this file are subject to the Mozilla Public 1100b3ed16SGreg Kroah-Hartman * License Version 1.1 (the "License"); you may not use this file 1200b3ed16SGreg Kroah-Hartman * except in compliance with the License. You may obtain a copy of 1300b3ed16SGreg Kroah-Hartman * the License at http://www.mozilla.org/MPL/ 1400b3ed16SGreg Kroah-Hartman * 1500b3ed16SGreg Kroah-Hartman * Software distributed under the License is distributed on an "AS 1600b3ed16SGreg Kroah-Hartman * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 1700b3ed16SGreg Kroah-Hartman * implied. See the License for the specific language governing 1800b3ed16SGreg Kroah-Hartman * rights and limitations under the License. 1900b3ed16SGreg Kroah-Hartman * 2000b3ed16SGreg Kroah-Hartman * Alternatively, the contents of this file may be used under the 2100b3ed16SGreg Kroah-Hartman * terms of the GNU Public License version 2 (the "GPL"), in which 2200b3ed16SGreg Kroah-Hartman * case the provisions of the GPL are applicable instead of the 2300b3ed16SGreg Kroah-Hartman * above. If you wish to allow the use of your version of this file 2400b3ed16SGreg Kroah-Hartman * only under the terms of the GPL and not to allow others to use 2500b3ed16SGreg Kroah-Hartman * your version of this file under the MPL, indicate your decision 2600b3ed16SGreg Kroah-Hartman * by deleting the provisions above and replace them with the notice 2700b3ed16SGreg Kroah-Hartman * and other provisions required by the GPL. If you do not delete 2800b3ed16SGreg Kroah-Hartman * the provisions above, a recipient may use your version of this 2900b3ed16SGreg Kroah-Hartman * file under either the MPL or the GPL. 3000b3ed16SGreg Kroah-Hartman * 3100b3ed16SGreg Kroah-Hartman * -------------------------------------------------------------------- 3200b3ed16SGreg Kroah-Hartman * 3300b3ed16SGreg Kroah-Hartman * Inquiries regarding the linux-wlan Open Source project can be 3400b3ed16SGreg Kroah-Hartman * made directly to: 3500b3ed16SGreg Kroah-Hartman * 3600b3ed16SGreg Kroah-Hartman * AbsoluteValue Systems Inc. 3700b3ed16SGreg Kroah-Hartman * info@linux-wlan.com 3800b3ed16SGreg Kroah-Hartman * http://www.linux-wlan.com 3900b3ed16SGreg Kroah-Hartman * 4000b3ed16SGreg Kroah-Hartman * -------------------------------------------------------------------- 4100b3ed16SGreg Kroah-Hartman * 4200b3ed16SGreg Kroah-Hartman * Portions of the development of this software were funded by 4300b3ed16SGreg Kroah-Hartman * Intersil Corporation as part of PRISM(R) chipset product development. 4400b3ed16SGreg Kroah-Hartman * 4500b3ed16SGreg Kroah-Hartman * -------------------------------------------------------------------- 4600b3ed16SGreg Kroah-Hartman * 4700b3ed16SGreg Kroah-Hartman * [Implementation and usage notes] 4800b3ed16SGreg Kroah-Hartman * 4900b3ed16SGreg Kroah-Hartman * [References] 5000b3ed16SGreg Kroah-Hartman * CW10 Programmer's Manual v1.5 5100b3ed16SGreg Kroah-Hartman * IEEE 802.11 D10.0 5200b3ed16SGreg Kroah-Hartman * 5300b3ed16SGreg Kroah-Hartman * -------------------------------------------------------------------- 5400b3ed16SGreg Kroah-Hartman */ 5500b3ed16SGreg Kroah-Hartman 5600b3ed16SGreg Kroah-Hartman #ifndef _HFA384x_H 5700b3ed16SGreg Kroah-Hartman #define _HFA384x_H 5800b3ed16SGreg Kroah-Hartman 5900b3ed16SGreg Kroah-Hartman /*=============================================================*/ 6000b3ed16SGreg Kroah-Hartman #define HFA384x_FIRMWARE_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) 6100b3ed16SGreg Kroah-Hartman 6200b3ed16SGreg Kroah-Hartman #define HFA384x_LEVEL_TO_dBm(v) (0x100 + (v) * 100 / 255 - 100) 6300b3ed16SGreg Kroah-Hartman 6400b3ed16SGreg Kroah-Hartman /*------ Constants --------------------------------------------*/ 6500b3ed16SGreg Kroah-Hartman /*--- Mins & Maxs -----------------------------------*/ 6600b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_ALLOC_LEN_MIN ((UINT16)4) 6700b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_ALLOC_LEN_MAX ((UINT16)2400) 6800b3ed16SGreg Kroah-Hartman #define HFA384x_BAP_DATALEN_MAX ((UINT16)4096) 6900b3ed16SGreg Kroah-Hartman #define HFA384x_BAP_OFFSET_MAX ((UINT16)4096) 7000b3ed16SGreg Kroah-Hartman #define HFA384x_PORTID_MAX ((UINT16)7) 7100b3ed16SGreg Kroah-Hartman #define HFA384x_NUMPORTS_MAX ((UINT16)(HFA384x_PORTID_MAX+1)) 7200b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_LEN_MAX ((UINT16)512) /* in bytes, from EK */ 7300b3ed16SGreg Kroah-Hartman #define HFA384x_PDA_RECS_MAX ((UINT16)200) /* a guess */ 7400b3ed16SGreg Kroah-Hartman #define HFA384x_PDA_LEN_MAX ((UINT16)1024) /* in bytes, from EK */ 7500b3ed16SGreg Kroah-Hartman #define HFA384x_SCANRESULT_MAX ((UINT16)31) 7600b3ed16SGreg Kroah-Hartman #define HFA384x_HSCANRESULT_MAX ((UINT16)31) 7700b3ed16SGreg Kroah-Hartman #define HFA384x_CHINFORESULT_MAX ((UINT16)16) 7800b3ed16SGreg Kroah-Hartman #define HFA384x_DRVR_FIDSTACKLEN_MAX (10) 7900b3ed16SGreg Kroah-Hartman #define HFA384x_DRVR_TXBUF_MAX (sizeof(hfa384x_tx_frame_t) + \ 8000b3ed16SGreg Kroah-Hartman WLAN_DATA_MAXLEN - \ 8100b3ed16SGreg Kroah-Hartman WLAN_WEP_IV_LEN - \ 8200b3ed16SGreg Kroah-Hartman WLAN_WEP_ICV_LEN + 2) 8300b3ed16SGreg Kroah-Hartman #define HFA384x_DRVR_MAGIC (0x4a2d) 8400b3ed16SGreg Kroah-Hartman #define HFA384x_INFODATA_MAXLEN (sizeof(hfa384x_infodata_t)) 8500b3ed16SGreg Kroah-Hartman #define HFA384x_INFOFRM_MAXLEN (sizeof(hfa384x_InfFrame_t)) 8600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_GUESSING_MAXLEN 2048 /* I'm not really sure */ 8700b3ed16SGreg Kroah-Hartman #define HFA384x_RIDDATA_MAXLEN HFA384x_RID_GUESSING_MAXLEN 8800b3ed16SGreg Kroah-Hartman #define HFA384x_USB_RWMEM_MAXLEN 2048 8900b3ed16SGreg Kroah-Hartman 9000b3ed16SGreg Kroah-Hartman /*--- Support Constants -----------------------------*/ 9100b3ed16SGreg Kroah-Hartman #define HFA384x_BAP_PROC ((UINT16)0) 9200b3ed16SGreg Kroah-Hartman #define HFA384x_BAP_INT ((UINT16)1) 9300b3ed16SGreg Kroah-Hartman #define HFA384x_PORTTYPE_IBSS ((UINT16)0) 9400b3ed16SGreg Kroah-Hartman #define HFA384x_PORTTYPE_BSS ((UINT16)1) 9500b3ed16SGreg Kroah-Hartman #define HFA384x_PORTTYPE_WDS ((UINT16)2) 9600b3ed16SGreg Kroah-Hartman #define HFA384x_PORTTYPE_PSUEDOIBSS ((UINT16)3) 9700b3ed16SGreg Kroah-Hartman #define HFA384x_PORTTYPE_HOSTAP ((UINT16)6) 9800b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_PRIVINVOKED ((UINT16)BIT0) 9900b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_EXCLUDE ((UINT16)BIT1) 10000b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_DISABLE_TXCRYPT ((UINT16)BIT4) 10100b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_DISABLE_RXCRYPT ((UINT16)BIT7) 10200b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_DISALLOW_MIXED ((UINT16)BIT11) 10300b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_IV_INTERVAL1 ((UINT16)0) 10400b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_IV_INTERVAL10 ((UINT16)BIT5) 10500b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_IV_INTERVAL50 ((UINT16)BIT6) 10600b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_IV_INTERVAL100 ((UINT16)(BIT5 | BIT6)) 10700b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_FIRMWARE_WPA ((UINT16)BIT8) 10800b3ed16SGreg Kroah-Hartman #define HFA384x_WEPFLAGS_HOST_MIC ((UINT16)BIT9) 10900b3ed16SGreg Kroah-Hartman #define HFA384x_ROAMMODE_FWSCAN_FWROAM ((UINT16)1) 11000b3ed16SGreg Kroah-Hartman #define HFA384x_ROAMMODE_FWSCAN_HOSTROAM ((UINT16)2) 11100b3ed16SGreg Kroah-Hartman #define HFA384x_ROAMMODE_HOSTSCAN_HOSTROAM ((UINT16)3) 11200b3ed16SGreg Kroah-Hartman #define HFA384x_PORTSTATUS_DISABLED ((UINT16)1) 11300b3ed16SGreg Kroah-Hartman #define HFA384x_PORTSTATUS_INITSRCH ((UINT16)2) 11400b3ed16SGreg Kroah-Hartman #define HFA384x_PORTSTATUS_CONN_IBSS ((UINT16)3) 11500b3ed16SGreg Kroah-Hartman #define HFA384x_PORTSTATUS_CONN_ESS ((UINT16)4) 11600b3ed16SGreg Kroah-Hartman #define HFA384x_PORTSTATUS_OOR_ESS ((UINT16)5) 11700b3ed16SGreg Kroah-Hartman #define HFA384x_PORTSTATUS_CONN_WDS ((UINT16)6) 11800b3ed16SGreg Kroah-Hartman #define HFA384x_PORTSTATUS_HOSTAP ((UINT16)8) 11900b3ed16SGreg Kroah-Hartman #define HFA384x_RATEBIT_1 ((UINT16)1) 12000b3ed16SGreg Kroah-Hartman #define HFA384x_RATEBIT_2 ((UINT16)2) 12100b3ed16SGreg Kroah-Hartman #define HFA384x_RATEBIT_5dot5 ((UINT16)4) 12200b3ed16SGreg Kroah-Hartman #define HFA384x_RATEBIT_11 ((UINT16)8) 12300b3ed16SGreg Kroah-Hartman 12400b3ed16SGreg Kroah-Hartman /*--- Just some symbolic names for legibility -------*/ 12500b3ed16SGreg Kroah-Hartman #define HFA384x_TXCMD_NORECL ((UINT16)0) 12600b3ed16SGreg Kroah-Hartman #define HFA384x_TXCMD_RECL ((UINT16)1) 12700b3ed16SGreg Kroah-Hartman 12800b3ed16SGreg Kroah-Hartman /*--- MAC Internal memory constants and macros ------*/ 12900b3ed16SGreg Kroah-Hartman /* masks and macros used to manipulate MAC internal memory addresses. */ 13000b3ed16SGreg Kroah-Hartman /* MAC internal memory addresses are 23 bit quantities. The MAC uses 13100b3ed16SGreg Kroah-Hartman * a paged address space where the upper 16 bits are the page number 13200b3ed16SGreg Kroah-Hartman * and the lower 7 bits are the offset. There are various Host API 13300b3ed16SGreg Kroah-Hartman * elements that require two 16-bit quantities to specify a MAC 13400b3ed16SGreg Kroah-Hartman * internal memory address. Unfortunately, some of the API's use a 13500b3ed16SGreg Kroah-Hartman * page/offset format where the offset value is JUST the lower seven 13600b3ed16SGreg Kroah-Hartman * bits and the page is the remaining 16 bits. Some of the API's 13700b3ed16SGreg Kroah-Hartman * assume that the 23 bit address has been split at the 16th bit. We 13800b3ed16SGreg Kroah-Hartman * refer to these two formats as AUX format and CMD format. The 13900b3ed16SGreg Kroah-Hartman * macros below help handle some of this. 14000b3ed16SGreg Kroah-Hartman */ 14100b3ed16SGreg Kroah-Hartman 14200b3ed16SGreg Kroah-Hartman /* Handy constant */ 14300b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_AUX_OFF_MAX ((UINT16)0x007f) 14400b3ed16SGreg Kroah-Hartman 14500b3ed16SGreg Kroah-Hartman /* Mask bits for discarding unwanted pieces in a flat address */ 14600b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_FLAT_AUX_PAGE_MASK (0x007fff80) 14700b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_FLAT_AUX_OFF_MASK (0x0000007f) 14800b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_FLAT_CMD_PAGE_MASK (0xffff0000) 14900b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_FLAT_CMD_OFF_MASK (0x0000ffff) 15000b3ed16SGreg Kroah-Hartman 15100b3ed16SGreg Kroah-Hartman /* Mask bits for discarding unwanted pieces in AUX format 16-bit address parts */ 15200b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_AUX_PAGE_MASK (0xffff) 15300b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_AUX_OFF_MASK (0x007f) 15400b3ed16SGreg Kroah-Hartman 15500b3ed16SGreg Kroah-Hartman /* Mask bits for discarding unwanted pieces in CMD format 16-bit address parts */ 15600b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_CMD_PAGE_MASK (0x007f) 15700b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_CMD_OFF_MASK (0xffff) 15800b3ed16SGreg Kroah-Hartman 15900b3ed16SGreg Kroah-Hartman /* Make a 32-bit flat address from AUX format 16-bit page and offset */ 16000b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_AUX_MKFLAT(p,o) \ 16100b3ed16SGreg Kroah-Hartman (((UINT32)(((UINT16)(p))&HFA384x_ADDR_AUX_PAGE_MASK)) <<7) | \ 16200b3ed16SGreg Kroah-Hartman ((UINT32)(((UINT16)(o))&HFA384x_ADDR_AUX_OFF_MASK)) 16300b3ed16SGreg Kroah-Hartman 16400b3ed16SGreg Kroah-Hartman /* Make a 32-bit flat address from CMD format 16-bit page and offset */ 16500b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_CMD_MKFLAT(p,o) \ 16600b3ed16SGreg Kroah-Hartman (((UINT32)(((UINT16)(p))&HFA384x_ADDR_CMD_PAGE_MASK)) <<16) | \ 16700b3ed16SGreg Kroah-Hartman ((UINT32)(((UINT16)(o))&HFA384x_ADDR_CMD_OFF_MASK)) 16800b3ed16SGreg Kroah-Hartman 16900b3ed16SGreg Kroah-Hartman /* Make AUX format offset and page from a 32-bit flat address */ 17000b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_AUX_MKPAGE(f) \ 17100b3ed16SGreg Kroah-Hartman ((UINT16)((((UINT32)(f))&HFA384x_ADDR_FLAT_AUX_PAGE_MASK)>>7)) 17200b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_AUX_MKOFF(f) \ 17300b3ed16SGreg Kroah-Hartman ((UINT16)(((UINT32)(f))&HFA384x_ADDR_FLAT_AUX_OFF_MASK)) 17400b3ed16SGreg Kroah-Hartman 17500b3ed16SGreg Kroah-Hartman /* Make CMD format offset and page from a 32-bit flat address */ 17600b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_CMD_MKPAGE(f) \ 17700b3ed16SGreg Kroah-Hartman ((UINT16)((((UINT32)(f))&HFA384x_ADDR_FLAT_CMD_PAGE_MASK)>>16)) 17800b3ed16SGreg Kroah-Hartman #define HFA384x_ADDR_CMD_MKOFF(f) \ 17900b3ed16SGreg Kroah-Hartman ((UINT16)(((UINT32)(f))&HFA384x_ADDR_FLAT_CMD_OFF_MASK)) 18000b3ed16SGreg Kroah-Hartman 18100b3ed16SGreg Kroah-Hartman /*--- Aux register masks/tests ----------------------*/ 18200b3ed16SGreg Kroah-Hartman /* Some of the upper bits of the AUX offset register are used to */ 18300b3ed16SGreg Kroah-Hartman /* select address space. */ 18400b3ed16SGreg Kroah-Hartman #define HFA384x_AUX_CTL_EXTDS (0x00) 18500b3ed16SGreg Kroah-Hartman #define HFA384x_AUX_CTL_NV (0x01) 18600b3ed16SGreg Kroah-Hartman #define HFA384x_AUX_CTL_PHY (0x02) 18700b3ed16SGreg Kroah-Hartman #define HFA384x_AUX_CTL_ICSRAM (0x03) 18800b3ed16SGreg Kroah-Hartman 18900b3ed16SGreg Kroah-Hartman /* Make AUX register offset and page values from a flat address */ 19000b3ed16SGreg Kroah-Hartman #define HFA384x_AUX_MKOFF(f, c) \ 19100b3ed16SGreg Kroah-Hartman (HFA384x_ADDR_AUX_MKOFF(f) | (((UINT16)(c))<<12)) 19200b3ed16SGreg Kroah-Hartman #define HFA384x_AUX_MKPAGE(f) HFA384x_ADDR_AUX_MKPAGE(f) 19300b3ed16SGreg Kroah-Hartman 19400b3ed16SGreg Kroah-Hartman 19500b3ed16SGreg Kroah-Hartman /*--- Controller Memory addresses -------------------*/ 19600b3ed16SGreg Kroah-Hartman #define HFA3842_PDA_BASE (0x007f0000UL) 19700b3ed16SGreg Kroah-Hartman #define HFA3841_PDA_BASE (0x003f0000UL) 19800b3ed16SGreg Kroah-Hartman #define HFA3841_PDA_BOGUS_BASE (0x00390000UL) 19900b3ed16SGreg Kroah-Hartman 20000b3ed16SGreg Kroah-Hartman /*--- Driver Download states -----------------------*/ 20100b3ed16SGreg Kroah-Hartman #define HFA384x_DLSTATE_DISABLED 0 20200b3ed16SGreg Kroah-Hartman #define HFA384x_DLSTATE_RAMENABLED 1 20300b3ed16SGreg Kroah-Hartman #define HFA384x_DLSTATE_FLASHENABLED 2 20400b3ed16SGreg Kroah-Hartman #define HFA384x_DLSTATE_FLASHWRITTEN 3 20500b3ed16SGreg Kroah-Hartman #define HFA384x_DLSTATE_FLASHWRITEPENDING 4 20600b3ed16SGreg Kroah-Hartman #define HFA384x_DLSTATE_GENESIS 5 20700b3ed16SGreg Kroah-Hartman 20800b3ed16SGreg Kroah-Hartman /*--- Register I/O offsets --------------------------*/ 20900b3ed16SGreg Kroah-Hartman #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX)) 21000b3ed16SGreg Kroah-Hartman 21100b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_OFF (0x00) 21200b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM0_OFF (0x02) 21300b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM1_OFF (0x04) 21400b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM2_OFF (0x06) 21500b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_OFF (0x08) 21600b3ed16SGreg Kroah-Hartman #define HFA384x_RESP0_OFF (0x0A) 21700b3ed16SGreg Kroah-Hartman #define HFA384x_RESP1_OFF (0x0C) 21800b3ed16SGreg Kroah-Hartman #define HFA384x_RESP2_OFF (0x0E) 21900b3ed16SGreg Kroah-Hartman #define HFA384x_INFOFID_OFF (0x10) 22000b3ed16SGreg Kroah-Hartman #define HFA384x_RXFID_OFF (0x20) 22100b3ed16SGreg Kroah-Hartman #define HFA384x_ALLOCFID_OFF (0x22) 22200b3ed16SGreg Kroah-Hartman #define HFA384x_TXCOMPLFID_OFF (0x24) 22300b3ed16SGreg Kroah-Hartman #define HFA384x_SELECT0_OFF (0x18) 22400b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET0_OFF (0x1C) 22500b3ed16SGreg Kroah-Hartman #define HFA384x_DATA0_OFF (0x36) 22600b3ed16SGreg Kroah-Hartman #define HFA384x_SELECT1_OFF (0x1A) 22700b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET1_OFF (0x1E) 22800b3ed16SGreg Kroah-Hartman #define HFA384x_DATA1_OFF (0x38) 22900b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_OFF (0x30) 23000b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_OFF (0x32) 23100b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_OFF (0x34) 23200b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_OFF (0x14) 23300b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT0_OFF (0x28) 23400b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT1_OFF (0x2A) 23500b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT2_OFF (0x2C) 23600b3ed16SGreg Kroah-Hartman #define HFA384x_AUXPAGE_OFF (0x3A) 23700b3ed16SGreg Kroah-Hartman #define HFA384x_AUXOFFSET_OFF (0x3C) 23800b3ed16SGreg Kroah-Hartman #define HFA384x_AUXDATA_OFF (0x3E) 23900b3ed16SGreg Kroah-Hartman 24000b3ed16SGreg Kroah-Hartman #elif (WLAN_HOSTIF == WLAN_PCI || WLAN_HOSTIF == WLAN_USB) 24100b3ed16SGreg Kroah-Hartman 24200b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_OFF (0x00) 24300b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM0_OFF (0x04) 24400b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM1_OFF (0x08) 24500b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM2_OFF (0x0c) 24600b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_OFF (0x10) 24700b3ed16SGreg Kroah-Hartman #define HFA384x_RESP0_OFF (0x14) 24800b3ed16SGreg Kroah-Hartman #define HFA384x_RESP1_OFF (0x18) 24900b3ed16SGreg Kroah-Hartman #define HFA384x_RESP2_OFF (0x1c) 25000b3ed16SGreg Kroah-Hartman #define HFA384x_INFOFID_OFF (0x20) 25100b3ed16SGreg Kroah-Hartman #define HFA384x_RXFID_OFF (0x40) 25200b3ed16SGreg Kroah-Hartman #define HFA384x_ALLOCFID_OFF (0x44) 25300b3ed16SGreg Kroah-Hartman #define HFA384x_TXCOMPLFID_OFF (0x48) 25400b3ed16SGreg Kroah-Hartman #define HFA384x_SELECT0_OFF (0x30) 25500b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET0_OFF (0x38) 25600b3ed16SGreg Kroah-Hartman #define HFA384x_DATA0_OFF (0x6c) 25700b3ed16SGreg Kroah-Hartman #define HFA384x_SELECT1_OFF (0x34) 25800b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET1_OFF (0x3c) 25900b3ed16SGreg Kroah-Hartman #define HFA384x_DATA1_OFF (0x70) 26000b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_OFF (0x60) 26100b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_OFF (0x64) 26200b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_OFF (0x68) 26300b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_OFF (0x28) 26400b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT0_OFF (0x50) 26500b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT1_OFF (0x54) 26600b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT2_OFF (0x58) 26700b3ed16SGreg Kroah-Hartman #define HFA384x_AUXPAGE_OFF (0x74) 26800b3ed16SGreg Kroah-Hartman #define HFA384x_AUXOFFSET_OFF (0x78) 26900b3ed16SGreg Kroah-Hartman #define HFA384x_AUXDATA_OFF (0x7c) 27000b3ed16SGreg Kroah-Hartman #define HFA384x_PCICOR_OFF (0x4c) 27100b3ed16SGreg Kroah-Hartman #define HFA384x_PCIHCR_OFF (0x5c) 27200b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M0_ADDRH_OFF (0x80) 27300b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M0_ADDRL_OFF (0x84) 27400b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M0_LEN_OFF (0x88) 27500b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M0_CTL_OFF (0x8c) 27600b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_STATUS_OFF (0x98) 27700b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M1_ADDRH_OFF (0xa0) 27800b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M1_ADDRL_OFF (0xa4) 27900b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M1_LEN_OFF (0xa8) 28000b3ed16SGreg Kroah-Hartman #define HFA384x_PCI_M1_CTL_OFF (0xac) 28100b3ed16SGreg Kroah-Hartman 28200b3ed16SGreg Kroah-Hartman #endif 28300b3ed16SGreg Kroah-Hartman 28400b3ed16SGreg Kroah-Hartman /*--- Register Field Masks --------------------------*/ 28500b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_BUSY ((UINT16)BIT15) 28600b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_AINFO ((UINT16)(BIT14 | BIT13 | BIT12 | BIT11 | BIT10 | BIT9 | BIT8)) 28700b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_MACPORT ((UINT16)(BIT10 | BIT9 | BIT8)) 28800b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_RECL ((UINT16)BIT8) 28900b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_WRITE ((UINT16)BIT8) 29000b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_PROGMODE ((UINT16)(BIT9 | BIT8)) 29100b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_CMDCODE ((UINT16)(BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0)) 29200b3ed16SGreg Kroah-Hartman 29300b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_RESULT ((UINT16)(BIT14 | BIT13 | BIT12 | BIT11 | BIT10 | BIT9 | BIT8)) 29400b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_CMDCODE ((UINT16)(BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0)) 29500b3ed16SGreg Kroah-Hartman 29600b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET_BUSY ((UINT16)BIT15) 29700b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET_ERR ((UINT16)BIT14) 29800b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET_DATAOFF ((UINT16)(BIT11 | BIT10 | BIT9 | BIT8 | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1)) 29900b3ed16SGreg Kroah-Hartman 30000b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_TICK ((UINT16)BIT15) 30100b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_WTERR ((UINT16)BIT14) 30200b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_INFDROP ((UINT16)BIT13) 30300b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_INFO ((UINT16)BIT7) 30400b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_DTIM ((UINT16)BIT5) 30500b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_CMD ((UINT16)BIT4) 30600b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ALLOC ((UINT16)BIT3) 30700b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_TXEXC ((UINT16)BIT2) 30800b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_TX ((UINT16)BIT1) 30900b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_RX ((UINT16)BIT0) 31000b3ed16SGreg Kroah-Hartman 31100b3ed16SGreg Kroah-Hartman #define HFA384x_INT_BAP_OP (HFA384x_EVSTAT_INFO|HFA384x_EVSTAT_RX|HFA384x_EVSTAT_TX|HFA384x_EVSTAT_TXEXC) 31200b3ed16SGreg Kroah-Hartman 31300b3ed16SGreg Kroah-Hartman #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) 31400b3ed16SGreg Kroah-Hartman 31500b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_TICK ((UINT16)BIT15) 31600b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_WTERR ((UINT16)BIT14) 31700b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_INFDROP ((UINT16)BIT13) 31800b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_INFO ((UINT16)BIT7) 31900b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_DTIM ((UINT16)BIT5) 32000b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_CMD ((UINT16)BIT4) 32100b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ALLOC ((UINT16)BIT3) 32200b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_TXEXC ((UINT16)BIT2) 32300b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_TX ((UINT16)BIT1) 32400b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_RX ((UINT16)BIT0) 32500b3ed16SGreg Kroah-Hartman 32600b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_TICK ((UINT16)BIT15) 32700b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_WTERR ((UINT16)BIT14) 32800b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_INFDROP ((UINT16)BIT13) 32900b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_INFO ((UINT16)BIT7) 33000b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_DTIM ((UINT16)BIT5) 33100b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_CMD ((UINT16)BIT4) 33200b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ALLOC ((UINT16)BIT3) 33300b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_TXEXC ((UINT16)BIT2) 33400b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_TX ((UINT16)BIT1) 33500b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_RX ((UINT16)BIT0) 33600b3ed16SGreg Kroah-Hartman 33700b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_AUXEN ((UINT16)(BIT15 | BIT14)) 33800b3ed16SGreg Kroah-Hartman 33900b3ed16SGreg Kroah-Hartman 34000b3ed16SGreg Kroah-Hartman /*--- Command Code Constants --------------------------*/ 34100b3ed16SGreg Kroah-Hartman /*--- Controller Commands --------------------------*/ 34200b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_INIT ((UINT16)0x00) 34300b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_ENABLE ((UINT16)0x01) 34400b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_DISABLE ((UINT16)0x02) 34500b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_DIAG ((UINT16)0x03) 34600b3ed16SGreg Kroah-Hartman 34700b3ed16SGreg Kroah-Hartman /*--- Buffer Mgmt Commands --------------------------*/ 34800b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_ALLOC ((UINT16)0x0A) 34900b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_TX ((UINT16)0x0B) 35000b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_CLRPRST ((UINT16)0x12) 35100b3ed16SGreg Kroah-Hartman 35200b3ed16SGreg Kroah-Hartman /*--- Regulate Commands --------------------------*/ 35300b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_NOTIFY ((UINT16)0x10) 35400b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_INQ ((UINT16)0x11) 35500b3ed16SGreg Kroah-Hartman 35600b3ed16SGreg Kroah-Hartman /*--- Configure Commands --------------------------*/ 35700b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_ACCESS ((UINT16)0x21) 35800b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_DOWNLD ((UINT16)0x22) 35900b3ed16SGreg Kroah-Hartman 36000b3ed16SGreg Kroah-Hartman /*--- Debugging Commands -----------------------------*/ 36100b3ed16SGreg Kroah-Hartman #define HFA384x_CMDCODE_MONITOR ((UINT16)(0x38)) 36200b3ed16SGreg Kroah-Hartman #define HFA384x_MONITOR_ENABLE ((UINT16)(0x0b)) 36300b3ed16SGreg Kroah-Hartman #define HFA384x_MONITOR_DISABLE ((UINT16)(0x0f)) 36400b3ed16SGreg Kroah-Hartman 36500b3ed16SGreg Kroah-Hartman /*--- Result Codes --------------------------*/ 36600b3ed16SGreg Kroah-Hartman #define HFA384x_SUCCESS ((UINT16)(0x00)) 36700b3ed16SGreg Kroah-Hartman #define HFA384x_CARD_FAIL ((UINT16)(0x01)) 36800b3ed16SGreg Kroah-Hartman #define HFA384x_NO_BUFF ((UINT16)(0x05)) 36900b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_ERR ((UINT16)(0x7F)) 37000b3ed16SGreg Kroah-Hartman 37100b3ed16SGreg Kroah-Hartman /*--- Programming Modes -------------------------- 37200b3ed16SGreg Kroah-Hartman MODE 0: Disable programming 37300b3ed16SGreg Kroah-Hartman MODE 1: Enable volatile memory programming 37400b3ed16SGreg Kroah-Hartman MODE 2: Enable non-volatile memory programming 37500b3ed16SGreg Kroah-Hartman MODE 3: Program non-volatile memory section 37600b3ed16SGreg Kroah-Hartman --------------------------------------------------*/ 37700b3ed16SGreg Kroah-Hartman #define HFA384x_PROGMODE_DISABLE ((UINT16)0x00) 37800b3ed16SGreg Kroah-Hartman #define HFA384x_PROGMODE_RAM ((UINT16)0x01) 37900b3ed16SGreg Kroah-Hartman #define HFA384x_PROGMODE_NV ((UINT16)0x02) 38000b3ed16SGreg Kroah-Hartman #define HFA384x_PROGMODE_NVWRITE ((UINT16)0x03) 38100b3ed16SGreg Kroah-Hartman 38200b3ed16SGreg Kroah-Hartman /*--- AUX register enable --------------------------*/ 38300b3ed16SGreg Kroah-Hartman #define HFA384x_AUXPW0 ((UINT16)0xfe01) 38400b3ed16SGreg Kroah-Hartman #define HFA384x_AUXPW1 ((UINT16)0xdc23) 38500b3ed16SGreg Kroah-Hartman #define HFA384x_AUXPW2 ((UINT16)0xba45) 38600b3ed16SGreg Kroah-Hartman 38700b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_AUX_ISDISABLED ((UINT16)0x0000) 38800b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_AUX_ISENABLED ((UINT16)0xc000) 38900b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_AUX_DOENABLE ((UINT16)0x8000) 39000b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_AUX_DODISABLE ((UINT16)0x4000) 39100b3ed16SGreg Kroah-Hartman 39200b3ed16SGreg Kroah-Hartman /*--- Record ID Constants --------------------------*/ 39300b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 39400b3ed16SGreg Kroah-Hartman Configuration RIDs: Network Parameters, Static Configuration Entities 39500b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 39600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPORTTYPE ((UINT16)0xFC00) 39700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNMACADDR ((UINT16)0xFC01) 39800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFDESIREDSSID ((UINT16)0xFC02) 39900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNCHANNEL ((UINT16)0xFC03) 40000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNSSID ((UINT16)0xFC04) 40100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNATIMWIN ((UINT16)0xFC05) 40200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFSYSSCALE ((UINT16)0xFC06) 40300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMAXDATALEN ((UINT16)0xFC07) 40400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR ((UINT16)0xFC08) 40500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPMENABLED ((UINT16)0xFC09) 40600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPMEPS ((UINT16)0xFC0A) 40700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMULTICASTRX ((UINT16)0xFC0B) 40800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMAXSLEEPDUR ((UINT16)0xFC0C) 40900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPMHOLDDUR ((UINT16)0xFC0D) 41000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNNAME ((UINT16)0xFC0E) 41100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNDTIMPER ((UINT16)0xFC10) 41200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR1 ((UINT16)0xFC11) 41300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR2 ((UINT16)0xFC12) 41400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR3 ((UINT16)0xFC13) 41500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR4 ((UINT16)0xFC14) 41600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR5 ((UINT16)0xFC15) 41700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR6 ((UINT16)0xFC16) 41800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMCASTPMBUFF ((UINT16)0xFC17) 41900b3ed16SGreg Kroah-Hartman 42000b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 42100b3ed16SGreg Kroah-Hartman Configuration RID lengths: Network Params, Static Config Entities 42200b3ed16SGreg Kroah-Hartman This is the length of JUST the DATA part of the RID (does not 42300b3ed16SGreg Kroah-Hartman include the len or code fields) 42400b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 42500b3ed16SGreg Kroah-Hartman /* TODO: fill in the rest of these */ 42600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPORTTYPE_LEN ((UINT16)2) 42700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNMACADDR_LEN ((UINT16)6) 42800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFDESIREDSSID_LEN ((UINT16)34) 42900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNCHANNEL_LEN ((UINT16)2) 43000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNSSID_LEN ((UINT16)34) 43100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNATIMWIN_LEN ((UINT16)2) 43200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFSYSSCALE_LEN ((UINT16)0) 43300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMAXDATALEN_LEN ((UINT16)0) 43400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR_LEN ((UINT16)6) 43500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPMENABLED_LEN ((UINT16)0) 43600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPMEPS_LEN ((UINT16)0) 43700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMULTICASTRX_LEN ((UINT16)0) 43800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMAXSLEEPDUR_LEN ((UINT16)0) 43900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPMHOLDDUR_LEN ((UINT16)0) 44000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNNAME_LEN ((UINT16)34) 44100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFOWNDTIMPER_LEN ((UINT16)0) 44200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR1_LEN ((UINT16)6) 44300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR2_LEN ((UINT16)6) 44400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR3_LEN ((UINT16)6) 44500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR4_LEN ((UINT16)6) 44600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR5_LEN ((UINT16)6) 44700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWDSADDR6_LEN ((UINT16)6) 44800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMCASTPMBUFF_LEN ((UINT16)0) 44900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFAUTHENTICATION_LEN ((UINT16)sizeof(UINT16)) 45000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMAXSLEEPDUR_LEN ((UINT16)0) 45100b3ed16SGreg Kroah-Hartman 45200b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 45300b3ed16SGreg Kroah-Hartman Configuration RIDs: Network Parameters, Dynamic Configuration Entities 45400b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 45500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_GROUPADDR ((UINT16)0xFC80) 45600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CREATEIBSS ((UINT16)0xFC81) 45700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH ((UINT16)0xFC82) 45800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH ((UINT16)0xFC83) 45900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL ((UINT16)0xFC84) 46000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PROMISCMODE ((UINT16)0xFC85) 46100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH0 ((UINT16)0xFC90) 46200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH1 ((UINT16)0xFC91) 46300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH2 ((UINT16)0xFC92) 46400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH3 ((UINT16)0xFC93) 46500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH4 ((UINT16)0xFC94) 46600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH5 ((UINT16)0xFC95) 46700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH6 ((UINT16)0xFC96) 46800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH0 ((UINT16)0xFC97) 46900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH1 ((UINT16)0xFC98) 47000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH2 ((UINT16)0xFC99) 47100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH3 ((UINT16)0xFC9A) 47200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH4 ((UINT16)0xFC9B) 47300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH5 ((UINT16)0xFC9C) 47400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH6 ((UINT16)0xFC9D) 47500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL0 ((UINT16)0xFC9E) 47600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL1 ((UINT16)0xFC9F) 47700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL2 ((UINT16)0xFCA0) 47800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL3 ((UINT16)0xFCA1) 47900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL4 ((UINT16)0xFCA2) 48000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL5 ((UINT16)0xFCA3) 48100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL6 ((UINT16)0xFCA4) 48200b3ed16SGreg Kroah-Hartman 48300b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 48400b3ed16SGreg Kroah-Hartman Configuration RID Lengths: Network Param, Dynamic Config Entities 48500b3ed16SGreg Kroah-Hartman This is the length of JUST the DATA part of the RID (does not 48600b3ed16SGreg Kroah-Hartman include the len or code fields) 48700b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 48800b3ed16SGreg Kroah-Hartman /* TODO: fill in the rest of these */ 48900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_GROUPADDR_LEN ((UINT16)16 * WLAN_ADDR_LEN) 49000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CREATEIBSS_LEN ((UINT16)0) 49100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH_LEN ((UINT16)0) 49200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH_LEN ((UINT16)0) 49300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL_LEN ((UINT16)4) 49400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PROMISCMODE_LEN ((UINT16)2) 49500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH0_LEN ((UINT16)0) 49600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH1_LEN ((UINT16)0) 49700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH2_LEN ((UINT16)0) 49800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH3_LEN ((UINT16)0) 49900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH4_LEN ((UINT16)0) 50000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH5_LEN ((UINT16)0) 50100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FRAGTHRESH6_LEN ((UINT16)0) 50200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH0_LEN ((UINT16)0) 50300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH1_LEN ((UINT16)0) 50400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH2_LEN ((UINT16)0) 50500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH3_LEN ((UINT16)0) 50600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH4_LEN ((UINT16)0) 50700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH5_LEN ((UINT16)0) 50800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_RTSTHRESH6_LEN ((UINT16)0) 50900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL0_LEN ((UINT16)0) 51000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL1_LEN ((UINT16)0) 51100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL2_LEN ((UINT16)0) 51200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL3_LEN ((UINT16)0) 51300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL4_LEN ((UINT16)0) 51400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL5_LEN ((UINT16)0) 51500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXRATECNTL6_LEN ((UINT16)0) 51600b3ed16SGreg Kroah-Hartman 51700b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 51800b3ed16SGreg Kroah-Hartman Configuration RIDs: Behavior Parameters 51900b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 52000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_ITICKTIME ((UINT16)0xFCE0) 52100b3ed16SGreg Kroah-Hartman 52200b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 52300b3ed16SGreg Kroah-Hartman Configuration RID Lengths: Behavior Parameters 52400b3ed16SGreg Kroah-Hartman This is the length of JUST the DATA part of the RID (does not 52500b3ed16SGreg Kroah-Hartman include the len or code fields) 52600b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 52700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_ITICKTIME_LEN ((UINT16)2) 52800b3ed16SGreg Kroah-Hartman 52900b3ed16SGreg Kroah-Hartman /*---------------------------------------------------------------------- 53000b3ed16SGreg Kroah-Hartman Information RIDs: NIC Information 53100b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 53200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MAXLOADTIME ((UINT16)0xFD00) 53300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_DOWNLOADBUFFER ((UINT16)0xFD01) 53400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PRIIDENTITY ((UINT16)0xFD02) 53500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PRISUPRANGE ((UINT16)0xFD03) 53600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PRI_CFIACTRANGES ((UINT16)0xFD04) 53700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_NICSERIALNUMBER ((UINT16)0xFD0A) 53800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_NICIDENTITY ((UINT16)0xFD0B) 53900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MFISUPRANGE ((UINT16)0xFD0C) 54000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CFISUPRANGE ((UINT16)0xFD0D) 54100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CHANNELLIST ((UINT16)0xFD10) 54200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_REGULATORYDOMAINS ((UINT16)0xFD11) 54300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TEMPTYPE ((UINT16)0xFD12) 54400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CIS ((UINT16)0xFD13) 54500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_STAIDENTITY ((UINT16)0xFD20) 54600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_STASUPRANGE ((UINT16)0xFD21) 54700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_STA_MFIACTRANGES ((UINT16)0xFD22) 54800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_STA_CFIACTRANGES ((UINT16)0xFD23) 54900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_BUILDSEQ ((UINT16)0xFFFE) 55000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FWID ((UINT16)0xFFFF) 55100b3ed16SGreg Kroah-Hartman 55200b3ed16SGreg Kroah-Hartman /*---------------------------------------------------------------------- 55300b3ed16SGreg Kroah-Hartman Information RID Lengths: NIC Information 55400b3ed16SGreg Kroah-Hartman This is the length of JUST the DATA part of the RID (does not 55500b3ed16SGreg Kroah-Hartman include the len or code fields) 55600b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 55700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MAXLOADTIME_LEN ((UINT16)0) 55800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_DOWNLOADBUFFER_LEN ((UINT16)sizeof(hfa384x_downloadbuffer_t)) 55900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PRIIDENTITY_LEN ((UINT16)8) 56000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PRISUPRANGE_LEN ((UINT16)10) 56100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CFIACTRANGES_LEN ((UINT16)10) 56200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_NICSERIALNUMBER_LEN ((UINT16)12) 56300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_NICIDENTITY_LEN ((UINT16)8) 56400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MFISUPRANGE_LEN ((UINT16)10) 56500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CFISUPRANGE_LEN ((UINT16)10) 56600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CHANNELLIST_LEN ((UINT16)0) 56700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_REGULATORYDOMAINS_LEN ((UINT16)12) 56800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TEMPTYPE_LEN ((UINT16)0) 56900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CIS_LEN ((UINT16)480) 57000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_STAIDENTITY_LEN ((UINT16)8) 57100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_STASUPRANGE_LEN ((UINT16)10) 57200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MFIACTRANGES_LEN ((UINT16)10) 57300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CFIACTRANGES2_LEN ((UINT16)10) 57400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_BUILDSEQ_LEN ((UINT16)sizeof(hfa384x_BuildSeq_t)) 57500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_FWID_LEN ((UINT16)sizeof(hfa384x_FWID_t)) 57600b3ed16SGreg Kroah-Hartman 57700b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 57800b3ed16SGreg Kroah-Hartman Information RIDs: MAC Information 57900b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 58000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PORTSTATUS ((UINT16)0xFD40) 58100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTSSID ((UINT16)0xFD41) 58200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTBSSID ((UINT16)0xFD42) 58300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_COMMSQUALITY ((UINT16)0xFD43) 58400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE ((UINT16)0xFD44) 58500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTBCNINT ((UINT16)0xFD45) 58600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTSCALETHRESH ((UINT16)0xFD46) 58700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PROTOCOLRSPTIME ((UINT16)0xFD47) 58800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_SHORTRETRYLIMIT ((UINT16)0xFD48) 58900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_LONGRETRYLIMIT ((UINT16)0xFD49) 59000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MAXTXLIFETIME ((UINT16)0xFD4A) 59100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MAXRXLIFETIME ((UINT16)0xFD4B) 59200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CFPOLLABLE ((UINT16)0xFD4C) 59300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_AUTHALGORITHMS ((UINT16)0xFD4D) 59400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PRIVACYOPTIMP ((UINT16)0xFD4F) 59500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_DBMCOMMSQUALITY ((UINT16)0xFD51) 59600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE1 ((UINT16)0xFD80) 59700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE2 ((UINT16)0xFD81) 59800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE3 ((UINT16)0xFD82) 59900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE4 ((UINT16)0xFD83) 60000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE5 ((UINT16)0xFD84) 60100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE6 ((UINT16)0xFD85) 60200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_OWNMACADDRESS ((UINT16)0xFD86) 60300b3ed16SGreg Kroah-Hartman // #define HFA384x_RID_PCFINFO ((UINT16)0xFD87) 60400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_SCANRESULTS ((UINT16)0xFD88) // NEW 60500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_HOSTSCANRESULTS ((UINT16)0xFD89) // NEW 60600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_AUTHENTICATIONUSED ((UINT16)0xFD8A) // NEW 60700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_ASSOCIATEFAILURE ((UINT16)0xFD8D) // 1.8.0 60800b3ed16SGreg Kroah-Hartman 60900b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 61000b3ed16SGreg Kroah-Hartman Information RID Lengths: MAC Information 61100b3ed16SGreg Kroah-Hartman This is the length of JUST the DATA part of the RID (does not 61200b3ed16SGreg Kroah-Hartman include the len or code fields) 61300b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 61400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PORTSTATUS_LEN ((UINT16)0) 61500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTSSID_LEN ((UINT16)34) 61600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTBSSID_LEN ((UINT16)WLAN_BSSID_LEN) 61700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_COMMSQUALITY_LEN ((UINT16)sizeof(hfa384x_commsquality_t)) 61800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_DBMCOMMSQUALITY_LEN ((UINT16)sizeof(hfa384x_dbmcommsquality_t)) 61900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE_LEN ((UINT16)0) 62000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTBCNINT_LEN ((UINT16)0) 62100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_STACURSCALETHRESH_LEN ((UINT16)12) 62200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_APCURSCALETHRESH_LEN ((UINT16)6) 62300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PROTOCOLRSPTIME_LEN ((UINT16)0) 62400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_SHORTRETRYLIMIT_LEN ((UINT16)0) 62500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_LONGRETRYLIMIT_LEN ((UINT16)0) 62600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MAXTXLIFETIME_LEN ((UINT16)0) 62700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MAXRXLIFETIME_LEN ((UINT16)0) 62800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CFPOLLABLE_LEN ((UINT16)0) 62900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_AUTHALGORITHMS_LEN ((UINT16)4) 63000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PRIVACYOPTIMP_LEN ((UINT16)0) 63100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE1_LEN ((UINT16)0) 63200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE2_LEN ((UINT16)0) 63300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE3_LEN ((UINT16)0) 63400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE4_LEN ((UINT16)0) 63500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE5_LEN ((UINT16)0) 63600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTTXRATE6_LEN ((UINT16)0) 63700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_OWNMACADDRESS_LEN ((UINT16)6) 63800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PCFINFO_LEN ((UINT16)6) 63900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFAPPCFINFO_LEN ((UINT16)sizeof(hfa384x_PCFInfo_data_t)) 64000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_SCANREQUEST_LEN ((UINT16)sizeof(hfa384x_ScanRequest_data_t)) 64100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_JOINREQUEST_LEN ((UINT16)sizeof(hfa384x_JoinRequest_data_t)) 64200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_AUTHENTICATESTA_LEN ((UINT16)sizeof(hfa384x_authenticateStation_data_t)) 64300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CHANNELINFOREQUEST_LEN ((UINT16)sizeof(hfa384x_ChannelInfoRequest_data_t)) 64400b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 64500b3ed16SGreg Kroah-Hartman Information RIDs: Modem Information 64600b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 64700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PHYTYPE ((UINT16)0xFDC0) 64800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTCHANNEL ((UINT16)0xFDC1) 64900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTPOWERSTATE ((UINT16)0xFDC2) 65000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CCAMODE ((UINT16)0xFDC3) 65100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_SUPPORTEDDATARATES ((UINT16)0xFDC6) 65200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_LFOSTATUS ((UINT16)0xFDC7) // 1.7.1 65300b3ed16SGreg Kroah-Hartman 65400b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 65500b3ed16SGreg Kroah-Hartman Information RID Lengths: Modem Information 65600b3ed16SGreg Kroah-Hartman This is the length of JUST the DATA part of the RID (does not 65700b3ed16SGreg Kroah-Hartman include the len or code fields) 65800b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 65900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_PHYTYPE_LEN ((UINT16)0) 66000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTCHANNEL_LEN ((UINT16)0) 66100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CURRENTPOWERSTATE_LEN ((UINT16)0) 66200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CCAMODE_LEN ((UINT16)0) 66300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_SUPPORTEDDATARATES_LEN ((UINT16)10) 66400b3ed16SGreg Kroah-Hartman 66500b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 66600b3ed16SGreg Kroah-Hartman API ENHANCEMENTS (NOT ALREADY IMPLEMENTED) 66700b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 66800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPDEFAULTKEYID ((UINT16)0xFC23) 66900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPDEFAULTKEY0 ((UINT16)0xFC24) 67000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPDEFAULTKEY1 ((UINT16)0xFC25) 67100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPDEFAULTKEY2 ((UINT16)0xFC26) 67200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPDEFAULTKEY3 ((UINT16)0xFC27) 67300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPFLAGS ((UINT16)0xFC28) 67400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPKEYMAPTABLE ((UINT16)0xFC29) 67500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFAUTHENTICATION ((UINT16)0xFC2A) 67600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFMAXASSOCSTATIONS ((UINT16)0xFC2B) 67700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFTXCONTROL ((UINT16)0xFC2C) 67800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFROAMINGMODE ((UINT16)0xFC2D) 67900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFHOSTAUTHASSOC ((UINT16)0xFC2E) 68000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFRCVCRCERROR ((UINT16)0xFC30) 68100b3ed16SGreg Kroah-Hartman // #define HFA384x_RID_CNFMMLIFE ((UINT16)0xFC31) 68200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFALTRETRYCNT ((UINT16)0xFC32) 68300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFAPBCNINT ((UINT16)0xFC33) 68400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFAPPCFINFO ((UINT16)0xFC34) 68500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFSTAPCFINFO ((UINT16)0xFC35) 68600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPRIORITYQUSAGE ((UINT16)0xFC37) 68700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFTIMCTRL ((UINT16)0xFC40) 68800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFTHIRTY2TALLY ((UINT16)0xFC42) 68900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFENHSECURITY ((UINT16)0xFC43) 69000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFDBMADJUST ((UINT16)0xFC46) // NEW 69100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWPADATA ((UINT16)0xFC48) // 1.7.0 69200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPROPOGATIONDELAY ((UINT16)0xFC49) // 1.7.6 69300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFSHORTPREAMBLE ((UINT16)0xFCB0) 69400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFEXCLONGPREAMBLE ((UINT16)0xFCB1) 69500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFAUTHRSPTIMEOUT ((UINT16)0xFCB2) 69600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFBASICRATES ((UINT16)0xFCB3) 69700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFSUPPRATES ((UINT16)0xFCB4) 69800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFFALLBACKCTRL ((UINT16)0xFCB5) // NEW 69900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_WEPKEYSTATUS ((UINT16)0xFCB6) // NEW 70000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_WEPKEYMAPINDEX ((UINT16)0xFCB7) // NEW 70100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_BROADCASTKEYID ((UINT16)0xFCB8) // NEW 70200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_ENTSECFLAGEYID ((UINT16)0xFCB9) // NEW 70300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPASSIVESCANCTRL ((UINT16)0xFCBA) // NEW STA 70400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWPAHANDLING ((UINT16)0xFCBB) // 1.7.0 70500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MDCCONTROL ((UINT16)0xFCBC) // 1.7.0/1.4.0 70600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_MDCCOUNTRY ((UINT16)0xFCBD) // 1.7.0/1.4.0 70700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_TXPOWERMAX ((UINT16)0xFCBE) // 1.7.0/1.4.0 70800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFLFOENBLED ((UINT16)0xFCBF) // 1.6.3 70900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CAPINFO ((UINT16)0xFCC0) // 1.7.0/1.3.7 71000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_LISTENINTERVAL ((UINT16)0xFCC1) // 1.7.0/1.3.7 71100b3ed16SGreg Kroah-Hartman #define HFA384x_RID_DIVERSITYENABLED ((UINT16)0xFCC2) // 1.7.0/1.3.7 71200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_LED_CONTROL ((UINT16)0xFCC4) // 1.7.6 71300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_HFO_DELAY ((UINT16)0xFCC5) // 1.7.6 71400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_DISSALOWEDBSSID ((UINT16)0xFCC6) // 1.8.0 71500b3ed16SGreg Kroah-Hartman #define HFA384x_RID_SCANREQUEST ((UINT16)0xFCE1) 71600b3ed16SGreg Kroah-Hartman #define HFA384x_RID_JOINREQUEST ((UINT16)0xFCE2) 71700b3ed16SGreg Kroah-Hartman #define HFA384x_RID_AUTHENTICATESTA ((UINT16)0xFCE3) 71800b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CHANNELINFOREQUEST ((UINT16)0xFCE4) 71900b3ed16SGreg Kroah-Hartman #define HFA384x_RID_HOSTSCAN ((UINT16)0xFCE5) // NEW STA 72000b3ed16SGreg Kroah-Hartman #define HFA384x_RID_ASSOCIATESTA ((UINT16)0xFCE6) 72100b3ed16SGreg Kroah-Hartman 72200b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEPDEFAULTKEY_LEN ((UINT16)6) 72300b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFWEP128DEFAULTKEY_LEN ((UINT16)14) 72400b3ed16SGreg Kroah-Hartman #define HFA384x_RID_CNFPRIOQUSAGE_LEN ((UINT16)4) 72500b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 72600b3ed16SGreg Kroah-Hartman PD Record codes 72700b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 72800b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_PCB_PARTNUM ((UINT16)0x0001) 72900b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_PDAVER ((UINT16)0x0002) 73000b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_NIC_SERIAL ((UINT16)0x0003) 73100b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_MKK_MEASUREMENTS ((UINT16)0x0004) 73200b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_NIC_RAMSIZE ((UINT16)0x0005) 73300b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_MFISUPRANGE ((UINT16)0x0006) 73400b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_CFISUPRANGE ((UINT16)0x0007) 73500b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_NICID ((UINT16)0x0008) 73600b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_REFDAC_MEASUREMENTS ((UINT16)0x0010) 73700b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_VGDAC_MEASUREMENTS ((UINT16)0x0020) 73800b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_LEVEL_COMP_MEASUREMENTS ((UINT16)0x0030) 73900b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_MODEM_TRIMDAC_MEASUREMENTS ((UINT16)0x0040) 74000b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_COREGA_HACK ((UINT16)0x00ff) 74100b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_MAC_ADDRESS ((UINT16)0x0101) 74200b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_MKK_CALLNAME ((UINT16)0x0102) 74300b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_REGDOMAIN ((UINT16)0x0103) 74400b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_ALLOWED_CHANNEL ((UINT16)0x0104) 74500b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_DEFAULT_CHANNEL ((UINT16)0x0105) 74600b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_PRIVACY_OPTION ((UINT16)0x0106) 74700b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_TEMPTYPE ((UINT16)0x0107) 74800b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_REFDAC_SETUP ((UINT16)0x0110) 74900b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_VGDAC_SETUP ((UINT16)0x0120) 75000b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_LEVEL_COMP_SETUP ((UINT16)0x0130) 75100b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_TRIMDAC_SETUP ((UINT16)0x0140) 75200b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_IFR_SETTING ((UINT16)0x0200) 75300b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_RFR_SETTING ((UINT16)0x0201) 75400b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFA3861_BASELINE ((UINT16)0x0202) 75500b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFA3861_SHADOW ((UINT16)0x0203) 75600b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFA3861_IFRF ((UINT16)0x0204) 75700b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFA3861_CHCALSP ((UINT16)0x0300) 75800b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFA3861_CHCALI ((UINT16)0x0301) 75900b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_MAX_TX_POWER ((UINT16)0x0302) 76000b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_MASTER_CHAN_LIST ((UINT16)0x0303) 76100b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_3842_NIC_CONFIG ((UINT16)0x0400) 76200b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_USB_ID ((UINT16)0x0401) 76300b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_PCI_ID ((UINT16)0x0402) 76400b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_PCI_IFCONF ((UINT16)0x0403) 76500b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_PCI_PMCONF ((UINT16)0x0404) 76600b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_RFENRGY ((UINT16)0x0406) 76700b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_USB_POWER_TYPE ((UINT16)0x0407) 76800b3ed16SGreg Kroah-Hartman //#define HFA384x_PDR_UNKNOWN408 ((UINT16)0x0408) 76900b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_USB_MAX_POWER ((UINT16)0x0409) 77000b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_USB_MANUFACTURER ((UINT16)0x0410) 77100b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_USB_PRODUCT ((UINT16)0x0411) 77200b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_ANT_DIVERSITY ((UINT16)0x0412) 77300b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFO_DELAY ((UINT16)0x0413) 77400b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_SCALE_THRESH ((UINT16)0x0414) 77500b3ed16SGreg Kroah-Hartman 77600b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFA3861_MANF_TESTSP ((UINT16)0x0900) 77700b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_HFA3861_MANF_TESTI ((UINT16)0x0901) 77800b3ed16SGreg Kroah-Hartman #define HFA384x_PDR_END_OF_PDA ((UINT16)0x0000) 77900b3ed16SGreg Kroah-Hartman 78000b3ed16SGreg Kroah-Hartman 78100b3ed16SGreg Kroah-Hartman /*=============================================================*/ 78200b3ed16SGreg Kroah-Hartman /*------ Macros -----------------------------------------------*/ 78300b3ed16SGreg Kroah-Hartman 78400b3ed16SGreg Kroah-Hartman /*--- Register ID macros ------------------------*/ 78500b3ed16SGreg Kroah-Hartman 78600b3ed16SGreg Kroah-Hartman #define HFA384x_CMD HFA384x_CMD_OFF 78700b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM0 HFA384x_PARAM0_OFF 78800b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM1 HFA384x_PARAM1_OFF 78900b3ed16SGreg Kroah-Hartman #define HFA384x_PARAM2 HFA384x_PARAM2_OFF 79000b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS HFA384x_STATUS_OFF 79100b3ed16SGreg Kroah-Hartman #define HFA384x_RESP0 HFA384x_RESP0_OFF 79200b3ed16SGreg Kroah-Hartman #define HFA384x_RESP1 HFA384x_RESP1_OFF 79300b3ed16SGreg Kroah-Hartman #define HFA384x_RESP2 HFA384x_RESP2_OFF 79400b3ed16SGreg Kroah-Hartman #define HFA384x_INFOFID HFA384x_INFOFID_OFF 79500b3ed16SGreg Kroah-Hartman #define HFA384x_RXFID HFA384x_RXFID_OFF 79600b3ed16SGreg Kroah-Hartman #define HFA384x_ALLOCFID HFA384x_ALLOCFID_OFF 79700b3ed16SGreg Kroah-Hartman #define HFA384x_TXCOMPLFID HFA384x_TXCOMPLFID_OFF 79800b3ed16SGreg Kroah-Hartman #define HFA384x_SELECT0 HFA384x_SELECT0_OFF 79900b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET0 HFA384x_OFFSET0_OFF 80000b3ed16SGreg Kroah-Hartman #define HFA384x_DATA0 HFA384x_DATA0_OFF 80100b3ed16SGreg Kroah-Hartman #define HFA384x_SELECT1 HFA384x_SELECT1_OFF 80200b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET1 HFA384x_OFFSET1_OFF 80300b3ed16SGreg Kroah-Hartman #define HFA384x_DATA1 HFA384x_DATA1_OFF 80400b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT HFA384x_EVSTAT_OFF 80500b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN HFA384x_INTEN_OFF 80600b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK HFA384x_EVACK_OFF 80700b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL HFA384x_CONTROL_OFF 80800b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT0 HFA384x_SWSUPPORT0_OFF 80900b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT1 HFA384x_SWSUPPORT1_OFF 81000b3ed16SGreg Kroah-Hartman #define HFA384x_SWSUPPORT2 HFA384x_SWSUPPORT2_OFF 81100b3ed16SGreg Kroah-Hartman #define HFA384x_AUXPAGE HFA384x_AUXPAGE_OFF 81200b3ed16SGreg Kroah-Hartman #define HFA384x_AUXOFFSET HFA384x_AUXOFFSET_OFF 81300b3ed16SGreg Kroah-Hartman #define HFA384x_AUXDATA HFA384x_AUXDATA_OFF 81400b3ed16SGreg Kroah-Hartman #define HFA384x_PCICOR HFA384x_PCICOR_OFF 81500b3ed16SGreg Kroah-Hartman #define HFA384x_PCIHCR HFA384x_PCIHCR_OFF 81600b3ed16SGreg Kroah-Hartman 81700b3ed16SGreg Kroah-Hartman 81800b3ed16SGreg Kroah-Hartman /*--- Register Test/Get/Set Field macros ------------------------*/ 81900b3ed16SGreg Kroah-Hartman 82000b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_ISBUSY(value) ((UINT16)(((UINT16)value) & HFA384x_CMD_BUSY)) 82100b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_AINFO_GET(value) ((UINT16)(((UINT16)(value) & HFA384x_CMD_AINFO) >> 8)) 82200b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_AINFO_SET(value) ((UINT16)((UINT16)(value) << 8)) 82300b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_MACPORT_GET(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_MACPORT))) 82400b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_MACPORT_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET(value)) 82500b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_ISRECL(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_RECL))) 82600b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_RECL_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET(value)) 82700b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_QOS_GET(value) ((UINT16((((UINT16)(value))&((UINT16)0x3000)) >> 12)) 82800b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_QOS_SET(value) ((UINT16)((((UINT16)(value)) << 12) & 0x3000)) 82900b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_ISWRITE(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_WRITE))) 83000b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_WRITE_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET((UINT16)value)) 83100b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_PROGMODE_GET(value) ((UINT16)(HFA384x_CMD_AINFO_GET((UINT16)(value) & HFA384x_CMD_PROGMODE))) 83200b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_PROGMODE_SET(value) ((UINT16)HFA384x_CMD_AINFO_SET((UINT16)value)) 83300b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_CMDCODE_GET(value) ((UINT16)(((UINT16)(value)) & HFA384x_CMD_CMDCODE)) 83400b3ed16SGreg Kroah-Hartman #define HFA384x_CMD_CMDCODE_SET(value) ((UINT16)(value)) 83500b3ed16SGreg Kroah-Hartman 83600b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_RESULT_GET(value) ((UINT16)((((UINT16)(value)) & HFA384x_STATUS_RESULT) >> 8)) 83700b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_RESULT_SET(value) (((UINT16)(value)) << 8) 83800b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_CMDCODE_GET(value) (((UINT16)(value)) & HFA384x_STATUS_CMDCODE) 83900b3ed16SGreg Kroah-Hartman #define HFA384x_STATUS_CMDCODE_SET(value) ((UINT16)(value)) 84000b3ed16SGreg Kroah-Hartman 84100b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET_ISBUSY(value) ((UINT16)(((UINT16)(value)) & HFA384x_OFFSET_BUSY)) 84200b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET_ISERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_OFFSET_ERR)) 84300b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET_DATAOFF_GET(value) ((UINT16)(((UINT16)(value)) & HFA384x_OFFSET_DATAOFF)) 84400b3ed16SGreg Kroah-Hartman #define HFA384x_OFFSET_DATAOFF_SET(value) ((UINT16)(value)) 84500b3ed16SGreg Kroah-Hartman 84600b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISTICK(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_TICK)) 84700b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISWTERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_WTERR)) 84800b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISINFDROP(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_INFDROP)) 84900b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_INFO)) 85000b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_DTIM)) 85100b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_CMD)) 85200b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_ALLOC)) 85300b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISTXEXC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_TXEXC)) 85400b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISTX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_TX)) 85500b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISRX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_RX)) 85600b3ed16SGreg Kroah-Hartman 85700b3ed16SGreg Kroah-Hartman #define HFA384x_EVSTAT_ISBAP_OP(value) ((UINT16)(((UINT16)(value)) & HFA384x_INT_BAP_OP)) 85800b3ed16SGreg Kroah-Hartman 85900b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISTICK(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_TICK)) 86000b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_TICK_SET(value) ((UINT16)(((UINT16)(value)) << 15)) 86100b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISWTERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_WTERR)) 86200b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_WTERR_SET(value) ((UINT16)(((UINT16)(value)) << 14)) 86300b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISINFDROP(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_INFDROP)) 86400b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_INFDROP_SET(value) ((UINT16)(((UINT16)(value)) << 13)) 86500b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_INFO)) 86600b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_INFO_SET(value) ((UINT16)(((UINT16)(value)) << 7)) 86700b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_DTIM)) 86800b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_DTIM_SET(value) ((UINT16)(((UINT16)(value)) << 5)) 86900b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_CMD)) 87000b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_CMD_SET(value) ((UINT16)(((UINT16)(value)) << 4)) 87100b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_ALLOC)) 87200b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ALLOC_SET(value) ((UINT16)(((UINT16)(value)) << 3)) 87300b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISTXEXC(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_TXEXC)) 87400b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_TXEXC_SET(value) ((UINT16)(((UINT16)(value)) << 2)) 87500b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISTX(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_TX)) 87600b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_TX_SET(value) ((UINT16)(((UINT16)(value)) << 1)) 87700b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_ISRX(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_RX)) 87800b3ed16SGreg Kroah-Hartman #define HFA384x_INTEN_RX_SET(value) ((UINT16)(((UINT16)(value)) << 0)) 87900b3ed16SGreg Kroah-Hartman 88000b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISTICK(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_TICK)) 88100b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_TICK_SET(value) ((UINT16)(((UINT16)(value)) << 15)) 88200b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISWTERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_WTERR)) 88300b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_WTERR_SET(value) ((UINT16)(((UINT16)(value)) << 14)) 88400b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISINFDROP(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_INFDROP)) 88500b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_INFDROP_SET(value) ((UINT16)(((UINT16)(value)) << 13)) 88600b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_INFO)) 88700b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_INFO_SET(value) ((UINT16)(((UINT16)(value)) << 7)) 88800b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_DTIM)) 88900b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_DTIM_SET(value) ((UINT16)(((UINT16)(value)) << 5)) 89000b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_CMD)) 89100b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_CMD_SET(value) ((UINT16)(((UINT16)(value)) << 4)) 89200b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_ALLOC)) 89300b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ALLOC_SET(value) ((UINT16)(((UINT16)(value)) << 3)) 89400b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISTXEXC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_TXEXC)) 89500b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_TXEXC_SET(value) ((UINT16)(((UINT16)(value)) << 2)) 89600b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISTX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_TX)) 89700b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_TX_SET(value) ((UINT16)(((UINT16)(value)) << 1)) 89800b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_ISRX(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_RX)) 89900b3ed16SGreg Kroah-Hartman #define HFA384x_EVACK_RX_SET(value) ((UINT16)(((UINT16)(value)) << 0)) 90000b3ed16SGreg Kroah-Hartman 90100b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_AUXEN_SET(value) ((UINT16)(((UINT16)(value)) << 14)) 90200b3ed16SGreg Kroah-Hartman #define HFA384x_CONTROL_AUXEN_GET(value) ((UINT16)(((UINT16)(value)) >> 14)) 90300b3ed16SGreg Kroah-Hartman 90400b3ed16SGreg Kroah-Hartman /* Byte Order */ 90500b3ed16SGreg Kroah-Hartman #ifdef __KERNEL__ 90600b3ed16SGreg Kroah-Hartman #define hfa384x2host_16(n) (__le16_to_cpu((UINT16)(n))) 90700b3ed16SGreg Kroah-Hartman #define hfa384x2host_32(n) (__le32_to_cpu((UINT32)(n))) 90800b3ed16SGreg Kroah-Hartman #define host2hfa384x_16(n) (__cpu_to_le16((UINT16)(n))) 90900b3ed16SGreg Kroah-Hartman #define host2hfa384x_32(n) (__cpu_to_le32((UINT32)(n))) 91000b3ed16SGreg Kroah-Hartman #endif 91100b3ed16SGreg Kroah-Hartman 91200b3ed16SGreg Kroah-Hartman /* Host Maintained State Info */ 91300b3ed16SGreg Kroah-Hartman #define HFA384x_STATE_PREINIT 0 91400b3ed16SGreg Kroah-Hartman #define HFA384x_STATE_INIT 1 91500b3ed16SGreg Kroah-Hartman #define HFA384x_STATE_RUNNING 2 91600b3ed16SGreg Kroah-Hartman 91700b3ed16SGreg Kroah-Hartman /*=============================================================*/ 91800b3ed16SGreg Kroah-Hartman /*------ Types and their related constants --------------------*/ 91900b3ed16SGreg Kroah-Hartman 92000b3ed16SGreg Kroah-Hartman #define HFA384x_HOSTAUTHASSOC_HOSTAUTH BIT0 92100b3ed16SGreg Kroah-Hartman #define HFA384x_HOSTAUTHASSOC_HOSTASSOC BIT1 92200b3ed16SGreg Kroah-Hartman 92300b3ed16SGreg Kroah-Hartman #define HFA384x_WHAHANDLING_DISABLED 0 92400b3ed16SGreg Kroah-Hartman #define HFA384x_WHAHANDLING_PASSTHROUGH BIT1 92500b3ed16SGreg Kroah-Hartman 92600b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------*/ 92700b3ed16SGreg Kroah-Hartman /* Commonly used basic types */ 92800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_bytestr 92900b3ed16SGreg Kroah-Hartman { 93000b3ed16SGreg Kroah-Hartman UINT16 len; 93100b3ed16SGreg Kroah-Hartman UINT8 data[0]; 93200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_bytestr_t; 93300b3ed16SGreg Kroah-Hartman 93400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_bytestr32 93500b3ed16SGreg Kroah-Hartman { 93600b3ed16SGreg Kroah-Hartman UINT16 len; 93700b3ed16SGreg Kroah-Hartman UINT8 data[32]; 93800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_bytestr32_t; 93900b3ed16SGreg Kroah-Hartman 94000b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 94100b3ed16SGreg Kroah-Hartman Configuration Record Structures: 94200b3ed16SGreg Kroah-Hartman Network Parameters, Static Configuration Entities 94300b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 94400b3ed16SGreg Kroah-Hartman /* Prototype structure: all configuration record structures start with 94500b3ed16SGreg Kroah-Hartman these members */ 94600b3ed16SGreg Kroah-Hartman 94700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_record 94800b3ed16SGreg Kroah-Hartman { 94900b3ed16SGreg Kroah-Hartman UINT16 reclen; 95000b3ed16SGreg Kroah-Hartman UINT16 rid; 95100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_rec_t; 95200b3ed16SGreg Kroah-Hartman 95300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_record16 95400b3ed16SGreg Kroah-Hartman { 95500b3ed16SGreg Kroah-Hartman UINT16 reclen; 95600b3ed16SGreg Kroah-Hartman UINT16 rid; 95700b3ed16SGreg Kroah-Hartman UINT16 val; 95800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_rec16_t; 95900b3ed16SGreg Kroah-Hartman 96000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_record32 96100b3ed16SGreg Kroah-Hartman { 96200b3ed16SGreg Kroah-Hartman UINT16 reclen; 96300b3ed16SGreg Kroah-Hartman UINT16 rid; 96400b3ed16SGreg Kroah-Hartman UINT32 val; 96500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_rec32; 96600b3ed16SGreg Kroah-Hartman 96700b3ed16SGreg Kroah-Hartman /*-- Hardware/Firmware Component Information ----------*/ 96800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_compident 96900b3ed16SGreg Kroah-Hartman { 97000b3ed16SGreg Kroah-Hartman UINT16 id; 97100b3ed16SGreg Kroah-Hartman UINT16 variant; 97200b3ed16SGreg Kroah-Hartman UINT16 major; 97300b3ed16SGreg Kroah-Hartman UINT16 minor; 97400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_compident_t; 97500b3ed16SGreg Kroah-Hartman 97600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_caplevel 97700b3ed16SGreg Kroah-Hartman { 97800b3ed16SGreg Kroah-Hartman UINT16 role; 97900b3ed16SGreg Kroah-Hartman UINT16 id; 98000b3ed16SGreg Kroah-Hartman UINT16 variant; 98100b3ed16SGreg Kroah-Hartman UINT16 bottom; 98200b3ed16SGreg Kroah-Hartman UINT16 top; 98300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_caplevel_t; 98400b3ed16SGreg Kroah-Hartman 98500b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfPortType --*/ 98600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfPortType 98700b3ed16SGreg Kroah-Hartman { 98800b3ed16SGreg Kroah-Hartman UINT16 cnfPortType; 98900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfPortType_t; 99000b3ed16SGreg Kroah-Hartman 99100b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfOwnMACAddress --*/ 99200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfOwnMACAddress 99300b3ed16SGreg Kroah-Hartman { 99400b3ed16SGreg Kroah-Hartman UINT8 cnfOwnMACAddress[6]; 99500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnMACAddress_t; 99600b3ed16SGreg Kroah-Hartman 99700b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfDesiredSSID --*/ 99800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfDesiredSSID 99900b3ed16SGreg Kroah-Hartman { 100000b3ed16SGreg Kroah-Hartman UINT8 cnfDesiredSSID[34]; 100100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfDesiredSSID_t; 100200b3ed16SGreg Kroah-Hartman 100300b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfOwnChannel --*/ 100400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfOwnChannel 100500b3ed16SGreg Kroah-Hartman { 100600b3ed16SGreg Kroah-Hartman UINT16 cnfOwnChannel; 100700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnChannel_t; 100800b3ed16SGreg Kroah-Hartman 100900b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfOwnSSID --*/ 101000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfOwnSSID 101100b3ed16SGreg Kroah-Hartman { 101200b3ed16SGreg Kroah-Hartman UINT8 cnfOwnSSID[34]; 101300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnSSID_t; 101400b3ed16SGreg Kroah-Hartman 101500b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfOwnATIMWindow --*/ 101600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfOwnATIMWindow 101700b3ed16SGreg Kroah-Hartman { 101800b3ed16SGreg Kroah-Hartman UINT16 cnfOwnATIMWindow; 101900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnATIMWindow_t; 102000b3ed16SGreg Kroah-Hartman 102100b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfSystemScale --*/ 102200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfSystemScale 102300b3ed16SGreg Kroah-Hartman { 102400b3ed16SGreg Kroah-Hartman UINT16 cnfSystemScale; 102500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfSystemScale_t; 102600b3ed16SGreg Kroah-Hartman 102700b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfMaxDataLength --*/ 102800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfMaxDataLength 102900b3ed16SGreg Kroah-Hartman { 103000b3ed16SGreg Kroah-Hartman UINT16 cnfMaxDataLength; 103100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfMaxDataLength_t; 103200b3ed16SGreg Kroah-Hartman 103300b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfWDSAddress --*/ 103400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfWDSAddress 103500b3ed16SGreg Kroah-Hartman { 103600b3ed16SGreg Kroah-Hartman UINT8 cnfWDSAddress[6]; 103700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfWDSAddress_t; 103800b3ed16SGreg Kroah-Hartman 103900b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfPMEnabled --*/ 104000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfPMEnabled 104100b3ed16SGreg Kroah-Hartman { 104200b3ed16SGreg Kroah-Hartman UINT16 cnfPMEnabled; 104300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfPMEnabled_t; 104400b3ed16SGreg Kroah-Hartman 104500b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfPMEPS --*/ 104600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfPMEPS 104700b3ed16SGreg Kroah-Hartman { 104800b3ed16SGreg Kroah-Hartman UINT16 cnfPMEPS; 104900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfPMEPS_t; 105000b3ed16SGreg Kroah-Hartman 105100b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfMulticastReceive --*/ 105200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfMulticastReceive 105300b3ed16SGreg Kroah-Hartman { 105400b3ed16SGreg Kroah-Hartman UINT16 cnfMulticastReceive; 105500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfMulticastReceive_t; 105600b3ed16SGreg Kroah-Hartman 105700b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfAuthentication --*/ 105800b3ed16SGreg Kroah-Hartman #define HFA384x_CNFAUTHENTICATION_OPENSYSTEM 0x0001 105900b3ed16SGreg Kroah-Hartman #define HFA384x_CNFAUTHENTICATION_SHAREDKEY 0x0002 106000b3ed16SGreg Kroah-Hartman #define HFA384x_CNFAUTHENTICATION_LEAP 0x0004 106100b3ed16SGreg Kroah-Hartman 106200b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfMaxSleepDuration --*/ 106300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfMaxSleepDuration 106400b3ed16SGreg Kroah-Hartman { 106500b3ed16SGreg Kroah-Hartman UINT16 cnfMaxSleepDuration; 106600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfMaxSleepDuration_t; 106700b3ed16SGreg Kroah-Hartman 106800b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfPMHoldoverDuration --*/ 106900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfPMHoldoverDuration 107000b3ed16SGreg Kroah-Hartman { 107100b3ed16SGreg Kroah-Hartman UINT16 cnfPMHoldoverDuration; 107200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfPMHoldoverDuration_t; 107300b3ed16SGreg Kroah-Hartman 107400b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfOwnName --*/ 107500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfOwnName 107600b3ed16SGreg Kroah-Hartman { 107700b3ed16SGreg Kroah-Hartman UINT8 cnfOwnName[34]; 107800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnName_t; 107900b3ed16SGreg Kroah-Hartman 108000b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfOwnDTIMPeriod --*/ 108100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfOwnDTIMPeriod 108200b3ed16SGreg Kroah-Hartman { 108300b3ed16SGreg Kroah-Hartman UINT16 cnfOwnDTIMPeriod; 108400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfOwnDTIMPeriod_t; 108500b3ed16SGreg Kroah-Hartman 108600b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfWDSAddress --*/ 108700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfWDSAddressN 108800b3ed16SGreg Kroah-Hartman { 108900b3ed16SGreg Kroah-Hartman UINT8 cnfWDSAddress[6]; 109000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfWDSAddressN_t; 109100b3ed16SGreg Kroah-Hartman 109200b3ed16SGreg Kroah-Hartman /*-- Configuration Record: cnfMulticastPMBuffering --*/ 109300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_cnfMulticastPMBuffering 109400b3ed16SGreg Kroah-Hartman { 109500b3ed16SGreg Kroah-Hartman UINT16 cnfMulticastPMBuffering; 109600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_cnfMulticastPMBuffering_t; 109700b3ed16SGreg Kroah-Hartman 109800b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 109900b3ed16SGreg Kroah-Hartman Configuration Record Structures: 110000b3ed16SGreg Kroah-Hartman Network Parameters, Dynamic Configuration Entities 110100b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 110200b3ed16SGreg Kroah-Hartman 110300b3ed16SGreg Kroah-Hartman /*-- Configuration Record: GroupAddresses --*/ 110400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_GroupAddresses 110500b3ed16SGreg Kroah-Hartman { 110600b3ed16SGreg Kroah-Hartman UINT8 MACAddress[16][6]; 110700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_GroupAddresses_t; 110800b3ed16SGreg Kroah-Hartman 110900b3ed16SGreg Kroah-Hartman /*-- Configuration Record: CreateIBSS --*/ 111000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CreateIBSS 111100b3ed16SGreg Kroah-Hartman { 111200b3ed16SGreg Kroah-Hartman UINT16 CreateIBSS; 111300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CreateIBSS_t; 111400b3ed16SGreg Kroah-Hartman 111500b3ed16SGreg Kroah-Hartman #define HFA384x_CREATEIBSS_JOINCREATEIBSS 0 111600b3ed16SGreg Kroah-Hartman #define HFA384x_CREATEIBSS_JOINESS_JOINCREATEIBSS 1 111700b3ed16SGreg Kroah-Hartman #define HFA384x_CREATEIBSS_JOINIBSS 2 111800b3ed16SGreg Kroah-Hartman #define HFA384x_CREATEIBSS_JOINESS_JOINIBSS 3 111900b3ed16SGreg Kroah-Hartman 112000b3ed16SGreg Kroah-Hartman /*-- Configuration Record: FragmentationThreshold --*/ 112100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_FragmentationThreshold 112200b3ed16SGreg Kroah-Hartman { 112300b3ed16SGreg Kroah-Hartman UINT16 FragmentationThreshold; 112400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_FragmentationThreshold_t; 112500b3ed16SGreg Kroah-Hartman 112600b3ed16SGreg Kroah-Hartman /*-- Configuration Record: RTSThreshold --*/ 112700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_RTSThreshold 112800b3ed16SGreg Kroah-Hartman { 112900b3ed16SGreg Kroah-Hartman UINT16 RTSThreshold; 113000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_RTSThreshold_t; 113100b3ed16SGreg Kroah-Hartman 113200b3ed16SGreg Kroah-Hartman /*-- Configuration Record: TxRateControl --*/ 113300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_TxRateControl 113400b3ed16SGreg Kroah-Hartman { 113500b3ed16SGreg Kroah-Hartman UINT16 TxRateControl; 113600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_TxRateControl_t; 113700b3ed16SGreg Kroah-Hartman 113800b3ed16SGreg Kroah-Hartman /*-- Configuration Record: PromiscuousMode --*/ 113900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PromiscuousMode 114000b3ed16SGreg Kroah-Hartman { 114100b3ed16SGreg Kroah-Hartman UINT16 PromiscuousMode; 114200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PromiscuousMode_t; 114300b3ed16SGreg Kroah-Hartman 114400b3ed16SGreg Kroah-Hartman /*-- Configuration Record: ScanRequest (data portion only) --*/ 114500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ScanRequest_data 114600b3ed16SGreg Kroah-Hartman { 114700b3ed16SGreg Kroah-Hartman UINT16 channelList; 114800b3ed16SGreg Kroah-Hartman UINT16 txRate; 114900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ScanRequest_data_t; 115000b3ed16SGreg Kroah-Hartman 115100b3ed16SGreg Kroah-Hartman /*-- Configuration Record: HostScanRequest (data portion only) --*/ 115200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_HostScanRequest_data 115300b3ed16SGreg Kroah-Hartman { 115400b3ed16SGreg Kroah-Hartman UINT16 channelList; 115500b3ed16SGreg Kroah-Hartman UINT16 txRate; 115600b3ed16SGreg Kroah-Hartman hfa384x_bytestr32_t ssid; 115700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_HostScanRequest_data_t; 115800b3ed16SGreg Kroah-Hartman 115900b3ed16SGreg Kroah-Hartman /*-- Configuration Record: JoinRequest (data portion only) --*/ 116000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_JoinRequest_data 116100b3ed16SGreg Kroah-Hartman { 116200b3ed16SGreg Kroah-Hartman UINT8 bssid[WLAN_BSSID_LEN]; 116300b3ed16SGreg Kroah-Hartman UINT16 channel; 116400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_JoinRequest_data_t; 116500b3ed16SGreg Kroah-Hartman 116600b3ed16SGreg Kroah-Hartman /*-- Configuration Record: authenticateStation (data portion only) --*/ 116700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_authenticateStation_data 116800b3ed16SGreg Kroah-Hartman { 116900b3ed16SGreg Kroah-Hartman UINT8 address[WLAN_ADDR_LEN]; 117000b3ed16SGreg Kroah-Hartman UINT16 status; 117100b3ed16SGreg Kroah-Hartman UINT16 algorithm; 117200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_authenticateStation_data_t; 117300b3ed16SGreg Kroah-Hartman 117400b3ed16SGreg Kroah-Hartman /*-- Configuration Record: associateStation (data portion only) --*/ 117500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_associateStation_data 117600b3ed16SGreg Kroah-Hartman { 117700b3ed16SGreg Kroah-Hartman UINT8 address[WLAN_ADDR_LEN]; 117800b3ed16SGreg Kroah-Hartman UINT16 status; 117900b3ed16SGreg Kroah-Hartman UINT16 type; 118000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_associateStation_data_t; 118100b3ed16SGreg Kroah-Hartman 118200b3ed16SGreg Kroah-Hartman /*-- Configuration Record: ChannelInfoRequest (data portion only) --*/ 118300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ChannelInfoRequest_data 118400b3ed16SGreg Kroah-Hartman { 118500b3ed16SGreg Kroah-Hartman UINT16 channelList; 118600b3ed16SGreg Kroah-Hartman UINT16 channelDwellTime; 118700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ChannelInfoRequest_data_t; 118800b3ed16SGreg Kroah-Hartman 118900b3ed16SGreg Kroah-Hartman /*-- Configuration Record: WEPKeyMapping (data portion only) --*/ 119000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_WEPKeyMapping 119100b3ed16SGreg Kroah-Hartman { 119200b3ed16SGreg Kroah-Hartman UINT8 address[WLAN_ADDR_LEN]; 119300b3ed16SGreg Kroah-Hartman UINT16 key_index; 119400b3ed16SGreg Kroah-Hartman UINT8 key[16]; 119500b3ed16SGreg Kroah-Hartman UINT8 mic_transmit_key[4]; 119600b3ed16SGreg Kroah-Hartman UINT8 mic_receive_key[4]; 119700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_WEPKeyMapping_t; 119800b3ed16SGreg Kroah-Hartman 119900b3ed16SGreg Kroah-Hartman /*-- Configuration Record: WPAData (data portion only) --*/ 120000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_WPAData 120100b3ed16SGreg Kroah-Hartman { 120200b3ed16SGreg Kroah-Hartman UINT16 datalen; 120300b3ed16SGreg Kroah-Hartman UINT8 data[0]; // max 80 120400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_WPAData_t; 120500b3ed16SGreg Kroah-Hartman 120600b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 120700b3ed16SGreg Kroah-Hartman Configuration Record Structures: Behavior Parameters 120800b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 120900b3ed16SGreg Kroah-Hartman 121000b3ed16SGreg Kroah-Hartman /*-- Configuration Record: TickTime --*/ 121100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_TickTime 121200b3ed16SGreg Kroah-Hartman { 121300b3ed16SGreg Kroah-Hartman UINT16 TickTime; 121400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_TickTime_t; 121500b3ed16SGreg Kroah-Hartman 121600b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 121700b3ed16SGreg Kroah-Hartman Information Record Structures: NIC Information 121800b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 121900b3ed16SGreg Kroah-Hartman 122000b3ed16SGreg Kroah-Hartman /*-- Information Record: MaxLoadTime --*/ 122100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_MaxLoadTime 122200b3ed16SGreg Kroah-Hartman { 122300b3ed16SGreg Kroah-Hartman UINT16 MaxLoadTime; 122400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_MaxLoadTime_t; 122500b3ed16SGreg Kroah-Hartman 122600b3ed16SGreg Kroah-Hartman /*-- Information Record: DownLoadBuffer --*/ 122700b3ed16SGreg Kroah-Hartman /* NOTE: The page and offset are in AUX format */ 122800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_downloadbuffer 122900b3ed16SGreg Kroah-Hartman { 123000b3ed16SGreg Kroah-Hartman UINT16 page; 123100b3ed16SGreg Kroah-Hartman UINT16 offset; 123200b3ed16SGreg Kroah-Hartman UINT16 len; 123300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_downloadbuffer_t; 123400b3ed16SGreg Kroah-Hartman 123500b3ed16SGreg Kroah-Hartman /*-- Information Record: PRIIdentity --*/ 123600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PRIIdentity 123700b3ed16SGreg Kroah-Hartman { 123800b3ed16SGreg Kroah-Hartman UINT16 PRICompID; 123900b3ed16SGreg Kroah-Hartman UINT16 PRIVariant; 124000b3ed16SGreg Kroah-Hartman UINT16 PRIMajorVersion; 124100b3ed16SGreg Kroah-Hartman UINT16 PRIMinorVersion; 124200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PRIIdentity_t; 124300b3ed16SGreg Kroah-Hartman 124400b3ed16SGreg Kroah-Hartman /*-- Information Record: PRISupRange --*/ 124500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PRISupRange 124600b3ed16SGreg Kroah-Hartman { 124700b3ed16SGreg Kroah-Hartman UINT16 PRIRole; 124800b3ed16SGreg Kroah-Hartman UINT16 PRIID; 124900b3ed16SGreg Kroah-Hartman UINT16 PRIVariant; 125000b3ed16SGreg Kroah-Hartman UINT16 PRIBottom; 125100b3ed16SGreg Kroah-Hartman UINT16 PRITop; 125200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PRISupRange_t; 125300b3ed16SGreg Kroah-Hartman 125400b3ed16SGreg Kroah-Hartman /*-- Information Record: CFIActRanges --*/ 125500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CFIActRanges 125600b3ed16SGreg Kroah-Hartman { 125700b3ed16SGreg Kroah-Hartman UINT16 CFIRole; 125800b3ed16SGreg Kroah-Hartman UINT16 CFIID; 125900b3ed16SGreg Kroah-Hartman UINT16 CFIVariant; 126000b3ed16SGreg Kroah-Hartman UINT16 CFIBottom; 126100b3ed16SGreg Kroah-Hartman UINT16 CFITop; 126200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CFIActRanges_t; 126300b3ed16SGreg Kroah-Hartman 126400b3ed16SGreg Kroah-Hartman /*-- Information Record: NICSerialNumber --*/ 126500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_NICSerialNumber 126600b3ed16SGreg Kroah-Hartman { 126700b3ed16SGreg Kroah-Hartman UINT8 NICSerialNumber[12]; 126800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_NICSerialNumber_t; 126900b3ed16SGreg Kroah-Hartman 127000b3ed16SGreg Kroah-Hartman /*-- Information Record: NICIdentity --*/ 127100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_NICIdentity 127200b3ed16SGreg Kroah-Hartman { 127300b3ed16SGreg Kroah-Hartman UINT16 NICCompID; 127400b3ed16SGreg Kroah-Hartman UINT16 NICVariant; 127500b3ed16SGreg Kroah-Hartman UINT16 NICMajorVersion; 127600b3ed16SGreg Kroah-Hartman UINT16 NICMinorVersion; 127700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_NICIdentity_t; 127800b3ed16SGreg Kroah-Hartman 127900b3ed16SGreg Kroah-Hartman /*-- Information Record: MFISupRange --*/ 128000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_MFISupRange 128100b3ed16SGreg Kroah-Hartman { 128200b3ed16SGreg Kroah-Hartman UINT16 MFIRole; 128300b3ed16SGreg Kroah-Hartman UINT16 MFIID; 128400b3ed16SGreg Kroah-Hartman UINT16 MFIVariant; 128500b3ed16SGreg Kroah-Hartman UINT16 MFIBottom; 128600b3ed16SGreg Kroah-Hartman UINT16 MFITop; 128700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_MFISupRange_t; 128800b3ed16SGreg Kroah-Hartman 128900b3ed16SGreg Kroah-Hartman /*-- Information Record: CFISupRange --*/ 129000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CFISupRange 129100b3ed16SGreg Kroah-Hartman { 129200b3ed16SGreg Kroah-Hartman UINT16 CFIRole; 129300b3ed16SGreg Kroah-Hartman UINT16 CFIID; 129400b3ed16SGreg Kroah-Hartman UINT16 CFIVariant; 129500b3ed16SGreg Kroah-Hartman UINT16 CFIBottom; 129600b3ed16SGreg Kroah-Hartman UINT16 CFITop; 129700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CFISupRange_t; 129800b3ed16SGreg Kroah-Hartman 129900b3ed16SGreg Kroah-Hartman /*-- Information Record: BUILDSEQ:BuildSeq --*/ 130000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_BuildSeq { 130100b3ed16SGreg Kroah-Hartman UINT16 primary; 130200b3ed16SGreg Kroah-Hartman UINT16 secondary; 130300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_BuildSeq_t; 130400b3ed16SGreg Kroah-Hartman 130500b3ed16SGreg Kroah-Hartman /*-- Information Record: FWID --*/ 130600b3ed16SGreg Kroah-Hartman #define HFA384x_FWID_LEN 14 130700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_FWID { 130800b3ed16SGreg Kroah-Hartman UINT8 primary[HFA384x_FWID_LEN]; 130900b3ed16SGreg Kroah-Hartman UINT8 secondary[HFA384x_FWID_LEN]; 131000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_FWID_t; 131100b3ed16SGreg Kroah-Hartman 131200b3ed16SGreg Kroah-Hartman /*-- Information Record: ChannelList --*/ 131300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ChannelList 131400b3ed16SGreg Kroah-Hartman { 131500b3ed16SGreg Kroah-Hartman UINT16 ChannelList; 131600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ChannelList_t; 131700b3ed16SGreg Kroah-Hartman 131800b3ed16SGreg Kroah-Hartman /*-- Information Record: RegulatoryDomains --*/ 131900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_RegulatoryDomains 132000b3ed16SGreg Kroah-Hartman { 132100b3ed16SGreg Kroah-Hartman UINT8 RegulatoryDomains[12]; 132200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_RegulatoryDomains_t; 132300b3ed16SGreg Kroah-Hartman 132400b3ed16SGreg Kroah-Hartman /*-- Information Record: TempType --*/ 132500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_TempType 132600b3ed16SGreg Kroah-Hartman { 132700b3ed16SGreg Kroah-Hartman UINT16 TempType; 132800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_TempType_t; 132900b3ed16SGreg Kroah-Hartman 133000b3ed16SGreg Kroah-Hartman /*-- Information Record: CIS --*/ 133100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CIS 133200b3ed16SGreg Kroah-Hartman { 133300b3ed16SGreg Kroah-Hartman UINT8 CIS[480]; 133400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CIS_t; 133500b3ed16SGreg Kroah-Hartman 133600b3ed16SGreg Kroah-Hartman /*-- Information Record: STAIdentity --*/ 133700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_STAIdentity 133800b3ed16SGreg Kroah-Hartman { 133900b3ed16SGreg Kroah-Hartman UINT16 STACompID; 134000b3ed16SGreg Kroah-Hartman UINT16 STAVariant; 134100b3ed16SGreg Kroah-Hartman UINT16 STAMajorVersion; 134200b3ed16SGreg Kroah-Hartman UINT16 STAMinorVersion; 134300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_STAIdentity_t; 134400b3ed16SGreg Kroah-Hartman 134500b3ed16SGreg Kroah-Hartman /*-- Information Record: STASupRange --*/ 134600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_STASupRange 134700b3ed16SGreg Kroah-Hartman { 134800b3ed16SGreg Kroah-Hartman UINT16 STARole; 134900b3ed16SGreg Kroah-Hartman UINT16 STAID; 135000b3ed16SGreg Kroah-Hartman UINT16 STAVariant; 135100b3ed16SGreg Kroah-Hartman UINT16 STABottom; 135200b3ed16SGreg Kroah-Hartman UINT16 STATop; 135300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_STASupRange_t; 135400b3ed16SGreg Kroah-Hartman 135500b3ed16SGreg Kroah-Hartman /*-- Information Record: MFIActRanges --*/ 135600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_MFIActRanges 135700b3ed16SGreg Kroah-Hartman { 135800b3ed16SGreg Kroah-Hartman UINT16 MFIRole; 135900b3ed16SGreg Kroah-Hartman UINT16 MFIID; 136000b3ed16SGreg Kroah-Hartman UINT16 MFIVariant; 136100b3ed16SGreg Kroah-Hartman UINT16 MFIBottom; 136200b3ed16SGreg Kroah-Hartman UINT16 MFITop; 136300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_MFIActRanges_t; 136400b3ed16SGreg Kroah-Hartman 136500b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 136600b3ed16SGreg Kroah-Hartman Information Record Structures: NIC Information 136700b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 136800b3ed16SGreg Kroah-Hartman 136900b3ed16SGreg Kroah-Hartman /*-- Information Record: PortStatus --*/ 137000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PortStatus 137100b3ed16SGreg Kroah-Hartman { 137200b3ed16SGreg Kroah-Hartman UINT16 PortStatus; 137300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PortStatus_t; 137400b3ed16SGreg Kroah-Hartman 137500b3ed16SGreg Kroah-Hartman #define HFA384x_PSTATUS_DISABLED ((UINT16)1) 137600b3ed16SGreg Kroah-Hartman #define HFA384x_PSTATUS_SEARCHING ((UINT16)2) 137700b3ed16SGreg Kroah-Hartman #define HFA384x_PSTATUS_CONN_IBSS ((UINT16)3) 137800b3ed16SGreg Kroah-Hartman #define HFA384x_PSTATUS_CONN_ESS ((UINT16)4) 137900b3ed16SGreg Kroah-Hartman #define HFA384x_PSTATUS_OUTOFRANGE ((UINT16)5) 138000b3ed16SGreg Kroah-Hartman #define HFA384x_PSTATUS_CONN_WDS ((UINT16)6) 138100b3ed16SGreg Kroah-Hartman 138200b3ed16SGreg Kroah-Hartman /*-- Information Record: CurrentSSID --*/ 138300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CurrentSSID 138400b3ed16SGreg Kroah-Hartman { 138500b3ed16SGreg Kroah-Hartman UINT8 CurrentSSID[34]; 138600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CurrentSSID_t; 138700b3ed16SGreg Kroah-Hartman 138800b3ed16SGreg Kroah-Hartman /*-- Information Record: CurrentBSSID --*/ 138900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CurrentBSSID 139000b3ed16SGreg Kroah-Hartman { 139100b3ed16SGreg Kroah-Hartman UINT8 CurrentBSSID[6]; 139200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CurrentBSSID_t; 139300b3ed16SGreg Kroah-Hartman 139400b3ed16SGreg Kroah-Hartman /*-- Information Record: commsquality --*/ 139500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_commsquality 139600b3ed16SGreg Kroah-Hartman { 139700b3ed16SGreg Kroah-Hartman UINT16 CQ_currBSS; 139800b3ed16SGreg Kroah-Hartman UINT16 ASL_currBSS; 139900b3ed16SGreg Kroah-Hartman UINT16 ANL_currFC; 140000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_commsquality_t; 140100b3ed16SGreg Kroah-Hartman 140200b3ed16SGreg Kroah-Hartman /*-- Information Record: dmbcommsquality --*/ 140300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_dbmcommsquality 140400b3ed16SGreg Kroah-Hartman { 140500b3ed16SGreg Kroah-Hartman UINT16 CQdbm_currBSS; 140600b3ed16SGreg Kroah-Hartman UINT16 ASLdbm_currBSS; 140700b3ed16SGreg Kroah-Hartman UINT16 ANLdbm_currFC; 140800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_dbmcommsquality_t; 140900b3ed16SGreg Kroah-Hartman 141000b3ed16SGreg Kroah-Hartman /*-- Information Record: CurrentTxRate --*/ 141100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CurrentTxRate 141200b3ed16SGreg Kroah-Hartman { 141300b3ed16SGreg Kroah-Hartman UINT16 CurrentTxRate; 141400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CurrentTxRate_t; 141500b3ed16SGreg Kroah-Hartman 141600b3ed16SGreg Kroah-Hartman /*-- Information Record: CurrentBeaconInterval --*/ 141700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CurrentBeaconInterval 141800b3ed16SGreg Kroah-Hartman { 141900b3ed16SGreg Kroah-Hartman UINT16 CurrentBeaconInterval; 142000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CurrentBeaconInterval_t; 142100b3ed16SGreg Kroah-Hartman 142200b3ed16SGreg Kroah-Hartman /*-- Information Record: CurrentScaleThresholds --*/ 142300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CurrentScaleThresholds 142400b3ed16SGreg Kroah-Hartman { 142500b3ed16SGreg Kroah-Hartman UINT16 EnergyDetectThreshold; 142600b3ed16SGreg Kroah-Hartman UINT16 CarrierDetectThreshold; 142700b3ed16SGreg Kroah-Hartman UINT16 DeferDetectThreshold; 142800b3ed16SGreg Kroah-Hartman UINT16 CellSearchThreshold; /* Stations only */ 142900b3ed16SGreg Kroah-Hartman UINT16 DeadSpotThreshold; /* Stations only */ 143000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CurrentScaleThresholds_t; 143100b3ed16SGreg Kroah-Hartman 143200b3ed16SGreg Kroah-Hartman /*-- Information Record: ProtocolRspTime --*/ 143300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ProtocolRspTime 143400b3ed16SGreg Kroah-Hartman { 143500b3ed16SGreg Kroah-Hartman UINT16 ProtocolRspTime; 143600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ProtocolRspTime_t; 143700b3ed16SGreg Kroah-Hartman 143800b3ed16SGreg Kroah-Hartman /*-- Information Record: ShortRetryLimit --*/ 143900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ShortRetryLimit 144000b3ed16SGreg Kroah-Hartman { 144100b3ed16SGreg Kroah-Hartman UINT16 ShortRetryLimit; 144200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ShortRetryLimit_t; 144300b3ed16SGreg Kroah-Hartman 144400b3ed16SGreg Kroah-Hartman /*-- Information Record: LongRetryLimit --*/ 144500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_LongRetryLimit 144600b3ed16SGreg Kroah-Hartman { 144700b3ed16SGreg Kroah-Hartman UINT16 LongRetryLimit; 144800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_LongRetryLimit_t; 144900b3ed16SGreg Kroah-Hartman 145000b3ed16SGreg Kroah-Hartman /*-- Information Record: MaxTransmitLifetime --*/ 145100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_MaxTransmitLifetime 145200b3ed16SGreg Kroah-Hartman { 145300b3ed16SGreg Kroah-Hartman UINT16 MaxTransmitLifetime; 145400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_MaxTransmitLifetime_t; 145500b3ed16SGreg Kroah-Hartman 145600b3ed16SGreg Kroah-Hartman /*-- Information Record: MaxReceiveLifetime --*/ 145700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_MaxReceiveLifetime 145800b3ed16SGreg Kroah-Hartman { 145900b3ed16SGreg Kroah-Hartman UINT16 MaxReceiveLifetime; 146000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_MaxReceiveLifetime_t; 146100b3ed16SGreg Kroah-Hartman 146200b3ed16SGreg Kroah-Hartman /*-- Information Record: CFPollable --*/ 146300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CFPollable 146400b3ed16SGreg Kroah-Hartman { 146500b3ed16SGreg Kroah-Hartman UINT16 CFPollable; 146600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CFPollable_t; 146700b3ed16SGreg Kroah-Hartman 146800b3ed16SGreg Kroah-Hartman /*-- Information Record: AuthenticationAlgorithms --*/ 146900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_AuthenticationAlgorithms 147000b3ed16SGreg Kroah-Hartman { 147100b3ed16SGreg Kroah-Hartman UINT16 AuthenticationType; 147200b3ed16SGreg Kroah-Hartman UINT16 TypeEnabled; 147300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_AuthenticationAlgorithms_t; 147400b3ed16SGreg Kroah-Hartman 147500b3ed16SGreg Kroah-Hartman /*-- Information Record: AuthenticationAlgorithms 147600b3ed16SGreg Kroah-Hartman (data only --*/ 147700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_AuthenticationAlgorithms_data 147800b3ed16SGreg Kroah-Hartman { 147900b3ed16SGreg Kroah-Hartman UINT16 AuthenticationType; 148000b3ed16SGreg Kroah-Hartman UINT16 TypeEnabled; 148100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_AuthenticationAlgorithms_data_t; 148200b3ed16SGreg Kroah-Hartman 148300b3ed16SGreg Kroah-Hartman /*-- Information Record: PrivacyOptionImplemented --*/ 148400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PrivacyOptionImplemented 148500b3ed16SGreg Kroah-Hartman { 148600b3ed16SGreg Kroah-Hartman UINT16 PrivacyOptionImplemented; 148700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PrivacyOptionImplemented_t; 148800b3ed16SGreg Kroah-Hartman 148900b3ed16SGreg Kroah-Hartman /*-- Information Record: OwnMACAddress --*/ 149000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_OwnMACAddress 149100b3ed16SGreg Kroah-Hartman { 149200b3ed16SGreg Kroah-Hartman UINT8 OwnMACAddress[6]; 149300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_OwnMACAddress_t; 149400b3ed16SGreg Kroah-Hartman 149500b3ed16SGreg Kroah-Hartman /*-- Information Record: PCFInfo --*/ 149600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PCFInfo 149700b3ed16SGreg Kroah-Hartman { 149800b3ed16SGreg Kroah-Hartman UINT16 MediumOccupancyLimit; 149900b3ed16SGreg Kroah-Hartman UINT16 CFPPeriod; 150000b3ed16SGreg Kroah-Hartman UINT16 CFPMaxDuration; 150100b3ed16SGreg Kroah-Hartman UINT16 CFPFlags; 150200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PCFInfo_t; 150300b3ed16SGreg Kroah-Hartman 150400b3ed16SGreg Kroah-Hartman /*-- Information Record: PCFInfo (data portion only) --*/ 150500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PCFInfo_data 150600b3ed16SGreg Kroah-Hartman { 150700b3ed16SGreg Kroah-Hartman UINT16 MediumOccupancyLimit; 150800b3ed16SGreg Kroah-Hartman UINT16 CFPPeriod; 150900b3ed16SGreg Kroah-Hartman UINT16 CFPMaxDuration; 151000b3ed16SGreg Kroah-Hartman UINT16 CFPFlags; 151100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PCFInfo_data_t; 151200b3ed16SGreg Kroah-Hartman 151300b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 151400b3ed16SGreg Kroah-Hartman Information Record Structures: Modem Information Records 151500b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 151600b3ed16SGreg Kroah-Hartman 151700b3ed16SGreg Kroah-Hartman /*-- Information Record: PHYType --*/ 151800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PHYType 151900b3ed16SGreg Kroah-Hartman { 152000b3ed16SGreg Kroah-Hartman UINT16 PHYType; 152100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PHYType_t; 152200b3ed16SGreg Kroah-Hartman 152300b3ed16SGreg Kroah-Hartman /*-- Information Record: CurrentChannel --*/ 152400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CurrentChannel 152500b3ed16SGreg Kroah-Hartman { 152600b3ed16SGreg Kroah-Hartman UINT16 CurrentChannel; 152700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CurrentChannel_t; 152800b3ed16SGreg Kroah-Hartman 152900b3ed16SGreg Kroah-Hartman /*-- Information Record: CurrentPowerState --*/ 153000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CurrentPowerState 153100b3ed16SGreg Kroah-Hartman { 153200b3ed16SGreg Kroah-Hartman UINT16 CurrentPowerState; 153300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CurrentPowerState_t; 153400b3ed16SGreg Kroah-Hartman 153500b3ed16SGreg Kroah-Hartman /*-- Information Record: CCAMode --*/ 153600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CCAMode 153700b3ed16SGreg Kroah-Hartman { 153800b3ed16SGreg Kroah-Hartman UINT16 CCAMode; 153900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CCAMode_t; 154000b3ed16SGreg Kroah-Hartman 154100b3ed16SGreg Kroah-Hartman /*-- Information Record: SupportedDataRates --*/ 154200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_SupportedDataRates 154300b3ed16SGreg Kroah-Hartman { 154400b3ed16SGreg Kroah-Hartman UINT8 SupportedDataRates[10]; 154500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_SupportedDataRates_t; 154600b3ed16SGreg Kroah-Hartman 154700b3ed16SGreg Kroah-Hartman /*-- Information Record: LFOStatus --*/ 154800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_LFOStatus 154900b3ed16SGreg Kroah-Hartman { 155000b3ed16SGreg Kroah-Hartman UINT16 TestResults; 155100b3ed16SGreg Kroah-Hartman UINT16 LFOResult; 155200b3ed16SGreg Kroah-Hartman UINT16 VRHFOResult; 155300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_LFOStatus_t; 155400b3ed16SGreg Kroah-Hartman 155500b3ed16SGreg Kroah-Hartman #define HFA384x_TESTRESULT_ALLPASSED BIT0 155600b3ed16SGreg Kroah-Hartman #define HFA384x_TESTRESULT_LFO_FAIL BIT1 155700b3ed16SGreg Kroah-Hartman #define HFA384x_TESTRESULT_VR_HF0_FAIL BIT2 155800b3ed16SGreg Kroah-Hartman #define HFA384x_HOST_FIRM_COORDINATE BIT7 155900b3ed16SGreg Kroah-Hartman #define HFA384x_TESTRESULT_COORDINATE BIT15 156000b3ed16SGreg Kroah-Hartman 156100b3ed16SGreg Kroah-Hartman /*-- Information Record: LEDControl --*/ 156200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_LEDControl 156300b3ed16SGreg Kroah-Hartman { 156400b3ed16SGreg Kroah-Hartman UINT16 searching_on; 156500b3ed16SGreg Kroah-Hartman UINT16 searching_off; 156600b3ed16SGreg Kroah-Hartman UINT16 assoc_on; 156700b3ed16SGreg Kroah-Hartman UINT16 assoc_off; 156800b3ed16SGreg Kroah-Hartman UINT16 activity; 156900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_LEDControl_t; 157000b3ed16SGreg Kroah-Hartman 157100b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 157200b3ed16SGreg Kroah-Hartman FRAME DESCRIPTORS AND FRAME STRUCTURES 157300b3ed16SGreg Kroah-Hartman 157400b3ed16SGreg Kroah-Hartman FRAME DESCRIPTORS: Offsets 157500b3ed16SGreg Kroah-Hartman 157600b3ed16SGreg Kroah-Hartman ---------------------------------------------------------------------- 157700b3ed16SGreg Kroah-Hartman Control Info (offset 44-51) 157800b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 157900b3ed16SGreg Kroah-Hartman #define HFA384x_FD_STATUS_OFF ((UINT16)0x44) 158000b3ed16SGreg Kroah-Hartman #define HFA384x_FD_TIME_OFF ((UINT16)0x46) 158100b3ed16SGreg Kroah-Hartman #define HFA384x_FD_SWSUPPORT_OFF ((UINT16)0x4A) 158200b3ed16SGreg Kroah-Hartman #define HFA384x_FD_SILENCE_OFF ((UINT16)0x4A) 158300b3ed16SGreg Kroah-Hartman #define HFA384x_FD_SIGNAL_OFF ((UINT16)0x4B) 158400b3ed16SGreg Kroah-Hartman #define HFA384x_FD_RATE_OFF ((UINT16)0x4C) 158500b3ed16SGreg Kroah-Hartman #define HFA384x_FD_RXFLOW_OFF ((UINT16)0x4D) 158600b3ed16SGreg Kroah-Hartman #define HFA384x_FD_RESERVED_OFF ((UINT16)0x4E) 158700b3ed16SGreg Kroah-Hartman #define HFA384x_FD_TXCONTROL_OFF ((UINT16)0x50) 158800b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 158900b3ed16SGreg Kroah-Hartman 802.11 Header (offset 52-6B) 159000b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 159100b3ed16SGreg Kroah-Hartman #define HFA384x_FD_FRAMECONTROL_OFF ((UINT16)0x52) 159200b3ed16SGreg Kroah-Hartman #define HFA384x_FD_DURATIONID_OFF ((UINT16)0x54) 159300b3ed16SGreg Kroah-Hartman #define HFA384x_FD_ADDRESS1_OFF ((UINT16)0x56) 159400b3ed16SGreg Kroah-Hartman #define HFA384x_FD_ADDRESS2_OFF ((UINT16)0x5C) 159500b3ed16SGreg Kroah-Hartman #define HFA384x_FD_ADDRESS3_OFF ((UINT16)0x62) 159600b3ed16SGreg Kroah-Hartman #define HFA384x_FD_SEQCONTROL_OFF ((UINT16)0x68) 159700b3ed16SGreg Kroah-Hartman #define HFA384x_FD_ADDRESS4_OFF ((UINT16)0x6A) 159800b3ed16SGreg Kroah-Hartman #define HFA384x_FD_DATALEN_OFF ((UINT16)0x70) 159900b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 160000b3ed16SGreg Kroah-Hartman 802.3 Header (offset 72-7F) 160100b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 160200b3ed16SGreg Kroah-Hartman #define HFA384x_FD_DESTADDRESS_OFF ((UINT16)0x72) 160300b3ed16SGreg Kroah-Hartman #define HFA384x_FD_SRCADDRESS_OFF ((UINT16)0x78) 160400b3ed16SGreg Kroah-Hartman #define HFA384x_FD_DATALENGTH_OFF ((UINT16)0x7E) 160500b3ed16SGreg Kroah-Hartman 160600b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 160700b3ed16SGreg Kroah-Hartman FRAME STRUCTURES: Communication Frames 160800b3ed16SGreg Kroah-Hartman ---------------------------------------------------------------------- 160900b3ed16SGreg Kroah-Hartman Communication Frames: Transmit Frames 161000b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 161100b3ed16SGreg Kroah-Hartman /*-- Communication Frame: Transmit Frame Structure --*/ 161200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_tx_frame 161300b3ed16SGreg Kroah-Hartman { 161400b3ed16SGreg Kroah-Hartman UINT16 status; 161500b3ed16SGreg Kroah-Hartman UINT16 reserved1; 161600b3ed16SGreg Kroah-Hartman UINT16 reserved2; 161700b3ed16SGreg Kroah-Hartman UINT32 sw_support; 161800b3ed16SGreg Kroah-Hartman UINT8 tx_retrycount; 161900b3ed16SGreg Kroah-Hartman UINT8 tx_rate; 162000b3ed16SGreg Kroah-Hartman UINT16 tx_control; 162100b3ed16SGreg Kroah-Hartman 162200b3ed16SGreg Kroah-Hartman /*-- 802.11 Header Information --*/ 162300b3ed16SGreg Kroah-Hartman 162400b3ed16SGreg Kroah-Hartman UINT16 frame_control; 162500b3ed16SGreg Kroah-Hartman UINT16 duration_id; 162600b3ed16SGreg Kroah-Hartman UINT8 address1[6]; 162700b3ed16SGreg Kroah-Hartman UINT8 address2[6]; 162800b3ed16SGreg Kroah-Hartman UINT8 address3[6]; 162900b3ed16SGreg Kroah-Hartman UINT16 sequence_control; 163000b3ed16SGreg Kroah-Hartman UINT8 address4[6]; 163100b3ed16SGreg Kroah-Hartman UINT16 data_len; /* little endian format */ 163200b3ed16SGreg Kroah-Hartman 163300b3ed16SGreg Kroah-Hartman /*-- 802.3 Header Information --*/ 163400b3ed16SGreg Kroah-Hartman 163500b3ed16SGreg Kroah-Hartman UINT8 dest_addr[6]; 163600b3ed16SGreg Kroah-Hartman UINT8 src_addr[6]; 163700b3ed16SGreg Kroah-Hartman UINT16 data_length; /* big endian format */ 163800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_tx_frame_t; 163900b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 164000b3ed16SGreg Kroah-Hartman Communication Frames: Field Masks for Transmit Frames 164100b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 164200b3ed16SGreg Kroah-Hartman /*-- Status Field --*/ 164300b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_ACKERR ((UINT16)BIT5) 164400b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_FORMERR ((UINT16)BIT3) 164500b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_DISCON ((UINT16)BIT2) 164600b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_AGEDERR ((UINT16)BIT1) 164700b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_RETRYERR ((UINT16)BIT0) 164800b3ed16SGreg Kroah-Hartman /*-- Transmit Control Field --*/ 164900b3ed16SGreg Kroah-Hartman #define HFA384x_TX_CFPOLL ((UINT16)BIT12) 165000b3ed16SGreg Kroah-Hartman #define HFA384x_TX_PRST ((UINT16)BIT11) 165100b3ed16SGreg Kroah-Hartman #define HFA384x_TX_MACPORT ((UINT16)(BIT10 | BIT9 | BIT8)) 165200b3ed16SGreg Kroah-Hartman #define HFA384x_TX_NOENCRYPT ((UINT16)BIT7) 165300b3ed16SGreg Kroah-Hartman #define HFA384x_TX_RETRYSTRAT ((UINT16)(BIT6 | BIT5)) 165400b3ed16SGreg Kroah-Hartman #define HFA384x_TX_STRUCTYPE ((UINT16)(BIT4 | BIT3)) 165500b3ed16SGreg Kroah-Hartman #define HFA384x_TX_TXEX ((UINT16)BIT2) 165600b3ed16SGreg Kroah-Hartman #define HFA384x_TX_TXOK ((UINT16)BIT1) 165700b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 165800b3ed16SGreg Kroah-Hartman Communication Frames: Test/Get/Set Field Values for Transmit Frames 165900b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 166000b3ed16SGreg Kroah-Hartman /*-- Status Field --*/ 166100b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_ISERROR(v) \ 166200b3ed16SGreg Kroah-Hartman (((UINT16)(v))&\ 166300b3ed16SGreg Kroah-Hartman (HFA384x_TXSTATUS_ACKERR|HFA384x_TXSTATUS_FORMERR|\ 166400b3ed16SGreg Kroah-Hartman HFA384x_TXSTATUS_DISCON|HFA384x_TXSTATUS_AGEDERR|\ 166500b3ed16SGreg Kroah-Hartman HFA384x_TXSTATUS_RETRYERR)) 166600b3ed16SGreg Kroah-Hartman 166700b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_ISACKERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_ACKERR)) 166800b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_ISFORMERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_FORMERR)) 166900b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_ISDISCON(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_DISCON)) 167000b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_ISAGEDERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_AGEDERR)) 167100b3ed16SGreg Kroah-Hartman #define HFA384x_TXSTATUS_ISRETRYERR(v) ((UINT16)(((UINT16)(v)) & HFA384x_TXSTATUS_RETRYERR)) 167200b3ed16SGreg Kroah-Hartman 167300b3ed16SGreg Kroah-Hartman #define HFA384x_TX_GET(v,m,s) ((((UINT16)(v))&((UINT16)(m)))>>((UINT16)(s))) 167400b3ed16SGreg Kroah-Hartman #define HFA384x_TX_SET(v,m,s) ((((UINT16)(v))<<((UINT16)(s)))&((UINT16)(m))) 167500b3ed16SGreg Kroah-Hartman 167600b3ed16SGreg Kroah-Hartman #define HFA384x_TX_CFPOLL_GET(v) HFA384x_TX_GET(v, HFA384x_TX_CFPOLL,12) 167700b3ed16SGreg Kroah-Hartman #define HFA384x_TX_CFPOLL_SET(v) HFA384x_TX_SET(v, HFA384x_TX_CFPOLL,12) 167800b3ed16SGreg Kroah-Hartman #define HFA384x_TX_PRST_GET(v) HFA384x_TX_GET(v, HFA384x_TX_PRST,11) 167900b3ed16SGreg Kroah-Hartman #define HFA384x_TX_PRST_SET(v) HFA384x_TX_SET(v, HFA384x_TX_PRST,11) 168000b3ed16SGreg Kroah-Hartman #define HFA384x_TX_MACPORT_GET(v) HFA384x_TX_GET(v, HFA384x_TX_MACPORT, 8) 168100b3ed16SGreg Kroah-Hartman #define HFA384x_TX_MACPORT_SET(v) HFA384x_TX_SET(v, HFA384x_TX_MACPORT, 8) 168200b3ed16SGreg Kroah-Hartman #define HFA384x_TX_NOENCRYPT_GET(v) HFA384x_TX_GET(v, HFA384x_TX_NOENCRYPT, 7) 168300b3ed16SGreg Kroah-Hartman #define HFA384x_TX_NOENCRYPT_SET(v) HFA384x_TX_SET(v, HFA384x_TX_NOENCRYPT, 7) 168400b3ed16SGreg Kroah-Hartman #define HFA384x_TX_RETRYSTRAT_GET(v) HFA384x_TX_GET(v, HFA384x_TX_RETRYSTRAT, 5) 168500b3ed16SGreg Kroah-Hartman #define HFA384x_TX_RETRYSTRAT_SET(v) HFA384x_TX_SET(v, HFA384x_TX_RETRYSTRAT, 5) 168600b3ed16SGreg Kroah-Hartman #define HFA384x_TX_STRUCTYPE_GET(v) HFA384x_TX_GET(v, HFA384x_TX_STRUCTYPE, 3) 168700b3ed16SGreg Kroah-Hartman #define HFA384x_TX_STRUCTYPE_SET(v) HFA384x_TX_SET(v, HFA384x_TX_STRUCTYPE, 3) 168800b3ed16SGreg Kroah-Hartman #define HFA384x_TX_TXEX_GET(v) HFA384x_TX_GET(v, HFA384x_TX_TXEX, 2) 168900b3ed16SGreg Kroah-Hartman #define HFA384x_TX_TXEX_SET(v) HFA384x_TX_SET(v, HFA384x_TX_TXEX, 2) 169000b3ed16SGreg Kroah-Hartman #define HFA384x_TX_TXOK_GET(v) HFA384x_TX_GET(v, HFA384x_TX_TXOK, 1) 169100b3ed16SGreg Kroah-Hartman #define HFA384x_TX_TXOK_SET(v) HFA384x_TX_SET(v, HFA384x_TX_TXOK, 1) 169200b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 169300b3ed16SGreg Kroah-Hartman Communication Frames: Receive Frames 169400b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 169500b3ed16SGreg Kroah-Hartman /*-- Communication Frame: Receive Frame Structure --*/ 169600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_rx_frame 169700b3ed16SGreg Kroah-Hartman { 169800b3ed16SGreg Kroah-Hartman /*-- MAC rx descriptor (hfa384x byte order) --*/ 169900b3ed16SGreg Kroah-Hartman UINT16 status; 170000b3ed16SGreg Kroah-Hartman UINT32 time; 170100b3ed16SGreg Kroah-Hartman UINT8 silence; 170200b3ed16SGreg Kroah-Hartman UINT8 signal; 170300b3ed16SGreg Kroah-Hartman UINT8 rate; 170400b3ed16SGreg Kroah-Hartman UINT8 rx_flow; 170500b3ed16SGreg Kroah-Hartman UINT16 reserved1; 170600b3ed16SGreg Kroah-Hartman UINT16 reserved2; 170700b3ed16SGreg Kroah-Hartman 170800b3ed16SGreg Kroah-Hartman /*-- 802.11 Header Information (802.11 byte order) --*/ 170900b3ed16SGreg Kroah-Hartman UINT16 frame_control; 171000b3ed16SGreg Kroah-Hartman UINT16 duration_id; 171100b3ed16SGreg Kroah-Hartman UINT8 address1[6]; 171200b3ed16SGreg Kroah-Hartman UINT8 address2[6]; 171300b3ed16SGreg Kroah-Hartman UINT8 address3[6]; 171400b3ed16SGreg Kroah-Hartman UINT16 sequence_control; 171500b3ed16SGreg Kroah-Hartman UINT8 address4[6]; 171600b3ed16SGreg Kroah-Hartman UINT16 data_len; /* hfa384x (little endian) format */ 171700b3ed16SGreg Kroah-Hartman 171800b3ed16SGreg Kroah-Hartman /*-- 802.3 Header Information --*/ 171900b3ed16SGreg Kroah-Hartman UINT8 dest_addr[6]; 172000b3ed16SGreg Kroah-Hartman UINT8 src_addr[6]; 172100b3ed16SGreg Kroah-Hartman UINT16 data_length; /* IEEE? (big endian) format */ 172200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_rx_frame_t; 172300b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 172400b3ed16SGreg Kroah-Hartman Communication Frames: Field Masks for Receive Frames 172500b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 172600b3ed16SGreg Kroah-Hartman /*-- Offsets --------*/ 172700b3ed16SGreg Kroah-Hartman #define HFA384x_RX_DATA_LEN_OFF ((UINT16)44) 172800b3ed16SGreg Kroah-Hartman #define HFA384x_RX_80211HDR_OFF ((UINT16)14) 172900b3ed16SGreg Kroah-Hartman #define HFA384x_RX_DATA_OFF ((UINT16)60) 173000b3ed16SGreg Kroah-Hartman 173100b3ed16SGreg Kroah-Hartman /*-- Status Fields --*/ 173200b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_MSGTYPE ((UINT16)(BIT15 | BIT14 | BIT13)) 173300b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_MACPORT ((UINT16)(BIT10 | BIT9 | BIT8)) 173400b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_UNDECR ((UINT16)BIT1) 173500b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_FCSERR ((UINT16)BIT0) 173600b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 173700b3ed16SGreg Kroah-Hartman Communication Frames: Test/Get/Set Field Values for Receive Frames 173800b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 173900b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_MSGTYPE_GET(value) ((UINT16)((((UINT16)(value)) & HFA384x_RXSTATUS_MSGTYPE) >> 13)) 174000b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_MSGTYPE_SET(value) ((UINT16)(((UINT16)(value)) << 13)) 174100b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_MACPORT_GET(value) ((UINT16)((((UINT16)(value)) & HFA384x_RXSTATUS_MACPORT) >> 8)) 174200b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_MACPORT_SET(value) ((UINT16)(((UINT16)(value)) << 8)) 174300b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_ISUNDECR(value) ((UINT16)(((UINT16)(value)) & HFA384x_RXSTATUS_UNDECR)) 174400b3ed16SGreg Kroah-Hartman #define HFA384x_RXSTATUS_ISFCSERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_RXSTATUS_FCSERR)) 174500b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 174600b3ed16SGreg Kroah-Hartman FRAME STRUCTURES: Information Types and Information Frame Structures 174700b3ed16SGreg Kroah-Hartman ---------------------------------------------------------------------- 174800b3ed16SGreg Kroah-Hartman Information Types 174900b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 175000b3ed16SGreg Kroah-Hartman #define HFA384x_IT_HANDOVERADDR ((UINT16)0xF000UL) 175100b3ed16SGreg Kroah-Hartman #define HFA384x_IT_HANDOVERDEAUTHADDRESS ((UINT16)0xF001UL)//AP 1.3.7 175200b3ed16SGreg Kroah-Hartman #define HFA384x_IT_COMMTALLIES ((UINT16)0xF100UL) 175300b3ed16SGreg Kroah-Hartman #define HFA384x_IT_SCANRESULTS ((UINT16)0xF101UL) 175400b3ed16SGreg Kroah-Hartman #define HFA384x_IT_CHINFORESULTS ((UINT16)0xF102UL) 175500b3ed16SGreg Kroah-Hartman #define HFA384x_IT_HOSTSCANRESULTS ((UINT16)0xF103UL) 175600b3ed16SGreg Kroah-Hartman #define HFA384x_IT_LINKSTATUS ((UINT16)0xF200UL) 175700b3ed16SGreg Kroah-Hartman #define HFA384x_IT_ASSOCSTATUS ((UINT16)0xF201UL) 175800b3ed16SGreg Kroah-Hartman #define HFA384x_IT_AUTHREQ ((UINT16)0xF202UL) 175900b3ed16SGreg Kroah-Hartman #define HFA384x_IT_PSUSERCNT ((UINT16)0xF203UL) 176000b3ed16SGreg Kroah-Hartman #define HFA384x_IT_KEYIDCHANGED ((UINT16)0xF204UL) 176100b3ed16SGreg Kroah-Hartman #define HFA384x_IT_ASSOCREQ ((UINT16)0xF205UL) 176200b3ed16SGreg Kroah-Hartman #define HFA384x_IT_MICFAILURE ((UINT16)0xF206UL) 176300b3ed16SGreg Kroah-Hartman 176400b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 176500b3ed16SGreg Kroah-Hartman Information Frames Structures 176600b3ed16SGreg Kroah-Hartman ---------------------------------------------------------------------- 176700b3ed16SGreg Kroah-Hartman Information Frames: Notification Frame Structures 176800b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 176900b3ed16SGreg Kroah-Hartman /*-- Notification Frame,MAC Mgmt: Handover Address --*/ 177000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_HandoverAddr 177100b3ed16SGreg Kroah-Hartman { 177200b3ed16SGreg Kroah-Hartman UINT16 framelen; 177300b3ed16SGreg Kroah-Hartman UINT16 infotype; 177400b3ed16SGreg Kroah-Hartman UINT8 handover_addr[WLAN_BSSID_LEN]; 177500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_HandoverAddr_t; 177600b3ed16SGreg Kroah-Hartman 177700b3ed16SGreg Kroah-Hartman /*-- Inquiry Frame, Diagnose: Communication Tallies --*/ 177800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CommTallies16 177900b3ed16SGreg Kroah-Hartman { 178000b3ed16SGreg Kroah-Hartman UINT16 txunicastframes; 178100b3ed16SGreg Kroah-Hartman UINT16 txmulticastframes; 178200b3ed16SGreg Kroah-Hartman UINT16 txfragments; 178300b3ed16SGreg Kroah-Hartman UINT16 txunicastoctets; 178400b3ed16SGreg Kroah-Hartman UINT16 txmulticastoctets; 178500b3ed16SGreg Kroah-Hartman UINT16 txdeferredtrans; 178600b3ed16SGreg Kroah-Hartman UINT16 txsingleretryframes; 178700b3ed16SGreg Kroah-Hartman UINT16 txmultipleretryframes; 178800b3ed16SGreg Kroah-Hartman UINT16 txretrylimitexceeded; 178900b3ed16SGreg Kroah-Hartman UINT16 txdiscards; 179000b3ed16SGreg Kroah-Hartman UINT16 rxunicastframes; 179100b3ed16SGreg Kroah-Hartman UINT16 rxmulticastframes; 179200b3ed16SGreg Kroah-Hartman UINT16 rxfragments; 179300b3ed16SGreg Kroah-Hartman UINT16 rxunicastoctets; 179400b3ed16SGreg Kroah-Hartman UINT16 rxmulticastoctets; 179500b3ed16SGreg Kroah-Hartman UINT16 rxfcserrors; 179600b3ed16SGreg Kroah-Hartman UINT16 rxdiscardsnobuffer; 179700b3ed16SGreg Kroah-Hartman UINT16 txdiscardswrongsa; 179800b3ed16SGreg Kroah-Hartman UINT16 rxdiscardswepundecr; 179900b3ed16SGreg Kroah-Hartman UINT16 rxmsginmsgfrag; 180000b3ed16SGreg Kroah-Hartman UINT16 rxmsginbadmsgfrag; 180100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CommTallies16_t; 180200b3ed16SGreg Kroah-Hartman 180300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_CommTallies32 180400b3ed16SGreg Kroah-Hartman { 180500b3ed16SGreg Kroah-Hartman UINT32 txunicastframes; 180600b3ed16SGreg Kroah-Hartman UINT32 txmulticastframes; 180700b3ed16SGreg Kroah-Hartman UINT32 txfragments; 180800b3ed16SGreg Kroah-Hartman UINT32 txunicastoctets; 180900b3ed16SGreg Kroah-Hartman UINT32 txmulticastoctets; 181000b3ed16SGreg Kroah-Hartman UINT32 txdeferredtrans; 181100b3ed16SGreg Kroah-Hartman UINT32 txsingleretryframes; 181200b3ed16SGreg Kroah-Hartman UINT32 txmultipleretryframes; 181300b3ed16SGreg Kroah-Hartman UINT32 txretrylimitexceeded; 181400b3ed16SGreg Kroah-Hartman UINT32 txdiscards; 181500b3ed16SGreg Kroah-Hartman UINT32 rxunicastframes; 181600b3ed16SGreg Kroah-Hartman UINT32 rxmulticastframes; 181700b3ed16SGreg Kroah-Hartman UINT32 rxfragments; 181800b3ed16SGreg Kroah-Hartman UINT32 rxunicastoctets; 181900b3ed16SGreg Kroah-Hartman UINT32 rxmulticastoctets; 182000b3ed16SGreg Kroah-Hartman UINT32 rxfcserrors; 182100b3ed16SGreg Kroah-Hartman UINT32 rxdiscardsnobuffer; 182200b3ed16SGreg Kroah-Hartman UINT32 txdiscardswrongsa; 182300b3ed16SGreg Kroah-Hartman UINT32 rxdiscardswepundecr; 182400b3ed16SGreg Kroah-Hartman UINT32 rxmsginmsgfrag; 182500b3ed16SGreg Kroah-Hartman UINT32 rxmsginbadmsgfrag; 182600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_CommTallies32_t; 182700b3ed16SGreg Kroah-Hartman 182800b3ed16SGreg Kroah-Hartman /*-- Inquiry Frame, Diagnose: Scan Results & Subfields--*/ 182900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ScanResultSub 183000b3ed16SGreg Kroah-Hartman { 183100b3ed16SGreg Kroah-Hartman UINT16 chid; 183200b3ed16SGreg Kroah-Hartman UINT16 anl; 183300b3ed16SGreg Kroah-Hartman UINT16 sl; 183400b3ed16SGreg Kroah-Hartman UINT8 bssid[WLAN_BSSID_LEN]; 183500b3ed16SGreg Kroah-Hartman UINT16 bcnint; 183600b3ed16SGreg Kroah-Hartman UINT16 capinfo; 183700b3ed16SGreg Kroah-Hartman hfa384x_bytestr32_t ssid; 183800b3ed16SGreg Kroah-Hartman UINT8 supprates[10]; /* 802.11 info element */ 183900b3ed16SGreg Kroah-Hartman UINT16 proberesp_rate; 184000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ScanResultSub_t; 184100b3ed16SGreg Kroah-Hartman 184200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ScanResult 184300b3ed16SGreg Kroah-Hartman { 184400b3ed16SGreg Kroah-Hartman UINT16 rsvd; 184500b3ed16SGreg Kroah-Hartman UINT16 scanreason; 184600b3ed16SGreg Kroah-Hartman hfa384x_ScanResultSub_t 184700b3ed16SGreg Kroah-Hartman result[HFA384x_SCANRESULT_MAX]; 184800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ScanResult_t; 184900b3ed16SGreg Kroah-Hartman 185000b3ed16SGreg Kroah-Hartman /*-- Inquiry Frame, Diagnose: ChInfo Results & Subfields--*/ 185100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ChInfoResultSub 185200b3ed16SGreg Kroah-Hartman { 185300b3ed16SGreg Kroah-Hartman UINT16 chid; 185400b3ed16SGreg Kroah-Hartman UINT16 anl; 185500b3ed16SGreg Kroah-Hartman UINT16 pnl; 185600b3ed16SGreg Kroah-Hartman UINT16 active; 185700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ChInfoResultSub_t; 185800b3ed16SGreg Kroah-Hartman 185900b3ed16SGreg Kroah-Hartman #define HFA384x_CHINFORESULT_BSSACTIVE BIT0 186000b3ed16SGreg Kroah-Hartman #define HFA384x_CHINFORESULT_PCFACTIVE BIT1 186100b3ed16SGreg Kroah-Hartman 186200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_ChInfoResult 186300b3ed16SGreg Kroah-Hartman { 186400b3ed16SGreg Kroah-Hartman UINT16 scanchannels; 186500b3ed16SGreg Kroah-Hartman hfa384x_ChInfoResultSub_t 186600b3ed16SGreg Kroah-Hartman result[HFA384x_CHINFORESULT_MAX]; 186700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_ChInfoResult_t; 186800b3ed16SGreg Kroah-Hartman 186900b3ed16SGreg Kroah-Hartman /*-- Inquiry Frame, Diagnose: Host Scan Results & Subfields--*/ 187000b3ed16SGreg Kroah-Hartman typedef struct hfa384x_HScanResultSub 187100b3ed16SGreg Kroah-Hartman { 187200b3ed16SGreg Kroah-Hartman UINT16 chid; 187300b3ed16SGreg Kroah-Hartman UINT16 anl; 187400b3ed16SGreg Kroah-Hartman UINT16 sl; 187500b3ed16SGreg Kroah-Hartman UINT8 bssid[WLAN_BSSID_LEN]; 187600b3ed16SGreg Kroah-Hartman UINT16 bcnint; 187700b3ed16SGreg Kroah-Hartman UINT16 capinfo; 187800b3ed16SGreg Kroah-Hartman hfa384x_bytestr32_t ssid; 187900b3ed16SGreg Kroah-Hartman UINT8 supprates[10]; /* 802.11 info element */ 188000b3ed16SGreg Kroah-Hartman UINT16 proberesp_rate; 188100b3ed16SGreg Kroah-Hartman UINT16 atim; 188200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_HScanResultSub_t; 188300b3ed16SGreg Kroah-Hartman 188400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_HScanResult 188500b3ed16SGreg Kroah-Hartman { 188600b3ed16SGreg Kroah-Hartman UINT16 nresult; 188700b3ed16SGreg Kroah-Hartman UINT16 rsvd; 188800b3ed16SGreg Kroah-Hartman hfa384x_HScanResultSub_t 188900b3ed16SGreg Kroah-Hartman result[HFA384x_HSCANRESULT_MAX]; 189000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_HScanResult_t; 189100b3ed16SGreg Kroah-Hartman 189200b3ed16SGreg Kroah-Hartman /*-- Unsolicited Frame, MAC Mgmt: LinkStatus --*/ 189300b3ed16SGreg Kroah-Hartman 189400b3ed16SGreg Kroah-Hartman #define HFA384x_LINK_NOTCONNECTED ((UINT16)0) 189500b3ed16SGreg Kroah-Hartman #define HFA384x_LINK_CONNECTED ((UINT16)1) 189600b3ed16SGreg Kroah-Hartman #define HFA384x_LINK_DISCONNECTED ((UINT16)2) 189700b3ed16SGreg Kroah-Hartman #define HFA384x_LINK_AP_CHANGE ((UINT16)3) 189800b3ed16SGreg Kroah-Hartman #define HFA384x_LINK_AP_OUTOFRANGE ((UINT16)4) 189900b3ed16SGreg Kroah-Hartman #define HFA384x_LINK_AP_INRANGE ((UINT16)5) 190000b3ed16SGreg Kroah-Hartman #define HFA384x_LINK_ASSOCFAIL ((UINT16)6) 190100b3ed16SGreg Kroah-Hartman 190200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_LinkStatus 190300b3ed16SGreg Kroah-Hartman { 190400b3ed16SGreg Kroah-Hartman UINT16 linkstatus; 190500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_LinkStatus_t; 190600b3ed16SGreg Kroah-Hartman 190700b3ed16SGreg Kroah-Hartman 190800b3ed16SGreg Kroah-Hartman /*-- Unsolicited Frame, MAC Mgmt: AssociationStatus (--*/ 190900b3ed16SGreg Kroah-Hartman 191000b3ed16SGreg Kroah-Hartman #define HFA384x_ASSOCSTATUS_STAASSOC ((UINT16)1) 191100b3ed16SGreg Kroah-Hartman #define HFA384x_ASSOCSTATUS_REASSOC ((UINT16)2) 191200b3ed16SGreg Kroah-Hartman #define HFA384x_ASSOCSTATUS_DISASSOC ((UINT16)3) 191300b3ed16SGreg Kroah-Hartman #define HFA384x_ASSOCSTATUS_ASSOCFAIL ((UINT16)4) 191400b3ed16SGreg Kroah-Hartman #define HFA384x_ASSOCSTATUS_AUTHFAIL ((UINT16)5) 191500b3ed16SGreg Kroah-Hartman 191600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_AssocStatus 191700b3ed16SGreg Kroah-Hartman { 191800b3ed16SGreg Kroah-Hartman UINT16 assocstatus; 191900b3ed16SGreg Kroah-Hartman UINT8 sta_addr[WLAN_ADDR_LEN]; 192000b3ed16SGreg Kroah-Hartman /* old_ap_addr is only valid if assocstatus == 2 */ 192100b3ed16SGreg Kroah-Hartman UINT8 old_ap_addr[WLAN_ADDR_LEN]; 192200b3ed16SGreg Kroah-Hartman UINT16 reason; 192300b3ed16SGreg Kroah-Hartman UINT16 reserved; 192400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_AssocStatus_t; 192500b3ed16SGreg Kroah-Hartman 192600b3ed16SGreg Kroah-Hartman /*-- Unsolicited Frame, MAC Mgmt: AuthRequest (AP Only) --*/ 192700b3ed16SGreg Kroah-Hartman 192800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_AuthRequest 192900b3ed16SGreg Kroah-Hartman { 193000b3ed16SGreg Kroah-Hartman UINT8 sta_addr[WLAN_ADDR_LEN]; 193100b3ed16SGreg Kroah-Hartman UINT16 algorithm; 193200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_AuthReq_t; 193300b3ed16SGreg Kroah-Hartman 193400b3ed16SGreg Kroah-Hartman /*-- Unsolicited Frame, MAC Mgmt: AssocRequest (AP Only) --*/ 193500b3ed16SGreg Kroah-Hartman 193600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_AssocRequest 193700b3ed16SGreg Kroah-Hartman { 193800b3ed16SGreg Kroah-Hartman UINT8 sta_addr[WLAN_ADDR_LEN]; 193900b3ed16SGreg Kroah-Hartman UINT16 type; 194000b3ed16SGreg Kroah-Hartman UINT8 wpa_data[80]; 194100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_AssocReq_t; 194200b3ed16SGreg Kroah-Hartman 194300b3ed16SGreg Kroah-Hartman 194400b3ed16SGreg Kroah-Hartman #define HFA384x_ASSOCREQ_TYPE_ASSOC 0 194500b3ed16SGreg Kroah-Hartman #define HFA384x_ASSOCREQ_TYPE_REASSOC 1 194600b3ed16SGreg Kroah-Hartman 194700b3ed16SGreg Kroah-Hartman /*-- Unsolicited Frame, MAC Mgmt: MIC Failure (AP Only) --*/ 194800b3ed16SGreg Kroah-Hartman 194900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_MicFailure 195000b3ed16SGreg Kroah-Hartman { 195100b3ed16SGreg Kroah-Hartman UINT8 sender[WLAN_ADDR_LEN]; 195200b3ed16SGreg Kroah-Hartman UINT8 dest[WLAN_ADDR_LEN]; 195300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_MicFailure_t; 195400b3ed16SGreg Kroah-Hartman 195500b3ed16SGreg Kroah-Hartman /*-- Unsolicited Frame, MAC Mgmt: PSUserCount (AP Only) --*/ 195600b3ed16SGreg Kroah-Hartman 195700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_PSUserCount 195800b3ed16SGreg Kroah-Hartman { 195900b3ed16SGreg Kroah-Hartman UINT16 usercnt; 196000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_PSUserCount_t; 196100b3ed16SGreg Kroah-Hartman 196200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_KeyIDChanged 196300b3ed16SGreg Kroah-Hartman { 196400b3ed16SGreg Kroah-Hartman UINT8 sta_addr[WLAN_ADDR_LEN]; 196500b3ed16SGreg Kroah-Hartman UINT16 keyid; 196600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_KeyIDChanged_t; 196700b3ed16SGreg Kroah-Hartman 196800b3ed16SGreg Kroah-Hartman /*-- Collection of all Inf frames ---------------*/ 196900b3ed16SGreg Kroah-Hartman typedef union hfa384x_infodata { 197000b3ed16SGreg Kroah-Hartman hfa384x_CommTallies16_t commtallies16; 197100b3ed16SGreg Kroah-Hartman hfa384x_CommTallies32_t commtallies32; 197200b3ed16SGreg Kroah-Hartman hfa384x_ScanResult_t scanresult; 197300b3ed16SGreg Kroah-Hartman hfa384x_ChInfoResult_t chinforesult; 197400b3ed16SGreg Kroah-Hartman hfa384x_HScanResult_t hscanresult; 197500b3ed16SGreg Kroah-Hartman hfa384x_LinkStatus_t linkstatus; 197600b3ed16SGreg Kroah-Hartman hfa384x_AssocStatus_t assocstatus; 197700b3ed16SGreg Kroah-Hartman hfa384x_AuthReq_t authreq; 197800b3ed16SGreg Kroah-Hartman hfa384x_PSUserCount_t psusercnt; 197900b3ed16SGreg Kroah-Hartman hfa384x_KeyIDChanged_t keyidchanged; 198000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_infodata_t; 198100b3ed16SGreg Kroah-Hartman 198200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_InfFrame 198300b3ed16SGreg Kroah-Hartman { 198400b3ed16SGreg Kroah-Hartman UINT16 framelen; 198500b3ed16SGreg Kroah-Hartman UINT16 infotype; 198600b3ed16SGreg Kroah-Hartman hfa384x_infodata_t info; 198700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_InfFrame_t; 198800b3ed16SGreg Kroah-Hartman 198900b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF == WLAN_USB) 199000b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 199100b3ed16SGreg Kroah-Hartman USB Packet structures and constants. 199200b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 199300b3ed16SGreg Kroah-Hartman 199400b3ed16SGreg Kroah-Hartman /* Should be sent to the ctrlout endpoint */ 199500b3ed16SGreg Kroah-Hartman #define HFA384x_USB_ENBULKIN 6 199600b3ed16SGreg Kroah-Hartman 199700b3ed16SGreg Kroah-Hartman /* Should be sent to the bulkout endpoint */ 199800b3ed16SGreg Kroah-Hartman #define HFA384x_USB_TXFRM 0 199900b3ed16SGreg Kroah-Hartman #define HFA384x_USB_CMDREQ 1 200000b3ed16SGreg Kroah-Hartman #define HFA384x_USB_WRIDREQ 2 200100b3ed16SGreg Kroah-Hartman #define HFA384x_USB_RRIDREQ 3 200200b3ed16SGreg Kroah-Hartman #define HFA384x_USB_WMEMREQ 4 200300b3ed16SGreg Kroah-Hartman #define HFA384x_USB_RMEMREQ 5 200400b3ed16SGreg Kroah-Hartman 200500b3ed16SGreg Kroah-Hartman /* Received from the bulkin endpoint */ 200600b3ed16SGreg Kroah-Hartman #define HFA384x_USB_ISFRM(a) (!((a) & 0x8000)) 200700b3ed16SGreg Kroah-Hartman #define HFA384x_USB_ISTXFRM(a) (((a) & 0x9000) == 0x1000) 200800b3ed16SGreg Kroah-Hartman #define HFA384x_USB_ISRXFRM(a) (!((a) & 0x9000)) 200900b3ed16SGreg Kroah-Hartman #define HFA384x_USB_INFOFRM 0x8000 201000b3ed16SGreg Kroah-Hartman #define HFA384x_USB_CMDRESP 0x8001 201100b3ed16SGreg Kroah-Hartman #define HFA384x_USB_WRIDRESP 0x8002 201200b3ed16SGreg Kroah-Hartman #define HFA384x_USB_RRIDRESP 0x8003 201300b3ed16SGreg Kroah-Hartman #define HFA384x_USB_WMEMRESP 0x8004 201400b3ed16SGreg Kroah-Hartman #define HFA384x_USB_RMEMRESP 0x8005 201500b3ed16SGreg Kroah-Hartman #define HFA384x_USB_BUFAVAIL 0x8006 201600b3ed16SGreg Kroah-Hartman #define HFA384x_USB_ERROR 0x8007 201700b3ed16SGreg Kroah-Hartman 201800b3ed16SGreg Kroah-Hartman /*------------------------------------*/ 201900b3ed16SGreg Kroah-Hartman /* Request (bulk OUT) packet contents */ 202000b3ed16SGreg Kroah-Hartman 202100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_txfrm { 202200b3ed16SGreg Kroah-Hartman hfa384x_tx_frame_t desc; 202300b3ed16SGreg Kroah-Hartman UINT8 data[WLAN_DATA_MAXLEN]; 202400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_txfrm_t; 202500b3ed16SGreg Kroah-Hartman 202600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_cmdreq { 202700b3ed16SGreg Kroah-Hartman UINT16 type; 202800b3ed16SGreg Kroah-Hartman UINT16 cmd; 202900b3ed16SGreg Kroah-Hartman UINT16 parm0; 203000b3ed16SGreg Kroah-Hartman UINT16 parm1; 203100b3ed16SGreg Kroah-Hartman UINT16 parm2; 203200b3ed16SGreg Kroah-Hartman UINT8 pad[54]; 203300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_cmdreq_t; 203400b3ed16SGreg Kroah-Hartman 203500b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_wridreq { 203600b3ed16SGreg Kroah-Hartman UINT16 type; 203700b3ed16SGreg Kroah-Hartman UINT16 frmlen; 203800b3ed16SGreg Kroah-Hartman UINT16 rid; 203900b3ed16SGreg Kroah-Hartman UINT8 data[HFA384x_RIDDATA_MAXLEN]; 204000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_wridreq_t; 204100b3ed16SGreg Kroah-Hartman 204200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_rridreq { 204300b3ed16SGreg Kroah-Hartman UINT16 type; 204400b3ed16SGreg Kroah-Hartman UINT16 frmlen; 204500b3ed16SGreg Kroah-Hartman UINT16 rid; 204600b3ed16SGreg Kroah-Hartman UINT8 pad[58]; 204700b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_rridreq_t; 204800b3ed16SGreg Kroah-Hartman 204900b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_wmemreq { 205000b3ed16SGreg Kroah-Hartman UINT16 type; 205100b3ed16SGreg Kroah-Hartman UINT16 frmlen; 205200b3ed16SGreg Kroah-Hartman UINT16 offset; 205300b3ed16SGreg Kroah-Hartman UINT16 page; 205400b3ed16SGreg Kroah-Hartman UINT8 data[HFA384x_USB_RWMEM_MAXLEN]; 205500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_wmemreq_t; 205600b3ed16SGreg Kroah-Hartman 205700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_rmemreq { 205800b3ed16SGreg Kroah-Hartman UINT16 type; 205900b3ed16SGreg Kroah-Hartman UINT16 frmlen; 206000b3ed16SGreg Kroah-Hartman UINT16 offset; 206100b3ed16SGreg Kroah-Hartman UINT16 page; 206200b3ed16SGreg Kroah-Hartman UINT8 pad[56]; 206300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_rmemreq_t; 206400b3ed16SGreg Kroah-Hartman 206500b3ed16SGreg Kroah-Hartman /*------------------------------------*/ 206600b3ed16SGreg Kroah-Hartman /* Response (bulk IN) packet contents */ 206700b3ed16SGreg Kroah-Hartman 206800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_rxfrm { 206900b3ed16SGreg Kroah-Hartman hfa384x_rx_frame_t desc; 207000b3ed16SGreg Kroah-Hartman UINT8 data[WLAN_DATA_MAXLEN]; 207100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_rxfrm_t; 207200b3ed16SGreg Kroah-Hartman 207300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_infofrm { 207400b3ed16SGreg Kroah-Hartman UINT16 type; 207500b3ed16SGreg Kroah-Hartman hfa384x_InfFrame_t info; 207600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_infofrm_t; 207700b3ed16SGreg Kroah-Hartman 207800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_statusresp { 207900b3ed16SGreg Kroah-Hartman UINT16 type; 208000b3ed16SGreg Kroah-Hartman UINT16 status; 208100b3ed16SGreg Kroah-Hartman UINT16 resp0; 208200b3ed16SGreg Kroah-Hartman UINT16 resp1; 208300b3ed16SGreg Kroah-Hartman UINT16 resp2; 208400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_cmdresp_t; 208500b3ed16SGreg Kroah-Hartman 208600b3ed16SGreg Kroah-Hartman typedef hfa384x_usb_cmdresp_t hfa384x_usb_wridresp_t; 208700b3ed16SGreg Kroah-Hartman 208800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_rridresp { 208900b3ed16SGreg Kroah-Hartman UINT16 type; 209000b3ed16SGreg Kroah-Hartman UINT16 frmlen; 209100b3ed16SGreg Kroah-Hartman UINT16 rid; 209200b3ed16SGreg Kroah-Hartman UINT8 data[HFA384x_RIDDATA_MAXLEN]; 209300b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_rridresp_t; 209400b3ed16SGreg Kroah-Hartman 209500b3ed16SGreg Kroah-Hartman typedef hfa384x_usb_cmdresp_t hfa384x_usb_wmemresp_t; 209600b3ed16SGreg Kroah-Hartman 209700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_rmemresp { 209800b3ed16SGreg Kroah-Hartman UINT16 type; 209900b3ed16SGreg Kroah-Hartman UINT16 frmlen; 210000b3ed16SGreg Kroah-Hartman UINT8 data[HFA384x_USB_RWMEM_MAXLEN]; 210100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_rmemresp_t; 210200b3ed16SGreg Kroah-Hartman 210300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_bufavail { 210400b3ed16SGreg Kroah-Hartman UINT16 type; 210500b3ed16SGreg Kroah-Hartman UINT16 frmlen; 210600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_bufavail_t; 210700b3ed16SGreg Kroah-Hartman 210800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usb_error { 210900b3ed16SGreg Kroah-Hartman UINT16 type; 211000b3ed16SGreg Kroah-Hartman UINT16 errortype; 211100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usb_error_t; 211200b3ed16SGreg Kroah-Hartman 211300b3ed16SGreg Kroah-Hartman /*----------------------------------------------------------*/ 211400b3ed16SGreg Kroah-Hartman /* Unions for packaging all the known packet types together */ 211500b3ed16SGreg Kroah-Hartman 211600b3ed16SGreg Kroah-Hartman typedef union hfa384x_usbout { 211700b3ed16SGreg Kroah-Hartman UINT16 type; 211800b3ed16SGreg Kroah-Hartman hfa384x_usb_txfrm_t txfrm; 211900b3ed16SGreg Kroah-Hartman hfa384x_usb_cmdreq_t cmdreq; 212000b3ed16SGreg Kroah-Hartman hfa384x_usb_wridreq_t wridreq; 212100b3ed16SGreg Kroah-Hartman hfa384x_usb_rridreq_t rridreq; 212200b3ed16SGreg Kroah-Hartman hfa384x_usb_wmemreq_t wmemreq; 212300b3ed16SGreg Kroah-Hartman hfa384x_usb_rmemreq_t rmemreq; 212400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usbout_t; 212500b3ed16SGreg Kroah-Hartman 212600b3ed16SGreg Kroah-Hartman typedef union hfa384x_usbin { 212700b3ed16SGreg Kroah-Hartman UINT16 type; 212800b3ed16SGreg Kroah-Hartman hfa384x_usb_rxfrm_t rxfrm; 212900b3ed16SGreg Kroah-Hartman hfa384x_usb_txfrm_t txfrm; 213000b3ed16SGreg Kroah-Hartman hfa384x_usb_infofrm_t infofrm; 213100b3ed16SGreg Kroah-Hartman hfa384x_usb_cmdresp_t cmdresp; 213200b3ed16SGreg Kroah-Hartman hfa384x_usb_wridresp_t wridresp; 213300b3ed16SGreg Kroah-Hartman hfa384x_usb_rridresp_t rridresp; 213400b3ed16SGreg Kroah-Hartman hfa384x_usb_wmemresp_t wmemresp; 213500b3ed16SGreg Kroah-Hartman hfa384x_usb_rmemresp_t rmemresp; 213600b3ed16SGreg Kroah-Hartman hfa384x_usb_bufavail_t bufavail; 213700b3ed16SGreg Kroah-Hartman hfa384x_usb_error_t usberror; 213800b3ed16SGreg Kroah-Hartman UINT8 boguspad[3000]; 213900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_usbin_t; 214000b3ed16SGreg Kroah-Hartman 214100b3ed16SGreg Kroah-Hartman #endif /* WLAN_USB */ 214200b3ed16SGreg Kroah-Hartman 214300b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 214400b3ed16SGreg Kroah-Hartman PD record structures. 214500b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 214600b3ed16SGreg Kroah-Hartman 214700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_pcb_partnum 214800b3ed16SGreg Kroah-Hartman { 214900b3ed16SGreg Kroah-Hartman UINT8 num[8]; 215000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_pcb_partnum_t; 215100b3ed16SGreg Kroah-Hartman 215200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_pcb_tracenum 215300b3ed16SGreg Kroah-Hartman { 215400b3ed16SGreg Kroah-Hartman UINT8 num[8]; 215500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_pcb_tracenum_t; 215600b3ed16SGreg Kroah-Hartman 215700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_nic_serial 215800b3ed16SGreg Kroah-Hartman { 215900b3ed16SGreg Kroah-Hartman UINT8 num[12]; 216000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nic_serial_t; 216100b3ed16SGreg Kroah-Hartman 216200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_mkk_measurements 216300b3ed16SGreg Kroah-Hartman { 216400b3ed16SGreg Kroah-Hartman double carrier_freq; 216500b3ed16SGreg Kroah-Hartman double occupied_band; 216600b3ed16SGreg Kroah-Hartman double power_density; 216700b3ed16SGreg Kroah-Hartman double tx_spur_f1; 216800b3ed16SGreg Kroah-Hartman double tx_spur_f2; 216900b3ed16SGreg Kroah-Hartman double tx_spur_f3; 217000b3ed16SGreg Kroah-Hartman double tx_spur_f4; 217100b3ed16SGreg Kroah-Hartman double tx_spur_l1; 217200b3ed16SGreg Kroah-Hartman double tx_spur_l2; 217300b3ed16SGreg Kroah-Hartman double tx_spur_l3; 217400b3ed16SGreg Kroah-Hartman double tx_spur_l4; 217500b3ed16SGreg Kroah-Hartman double rx_spur_f1; 217600b3ed16SGreg Kroah-Hartman double rx_spur_f2; 217700b3ed16SGreg Kroah-Hartman double rx_spur_l1; 217800b3ed16SGreg Kroah-Hartman double rx_spur_l2; 217900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mkk_measurements_t; 218000b3ed16SGreg Kroah-Hartman 218100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_nic_ramsize 218200b3ed16SGreg Kroah-Hartman { 218300b3ed16SGreg Kroah-Hartman UINT8 size[12]; /* units of KB */ 218400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nic_ramsize_t; 218500b3ed16SGreg Kroah-Hartman 218600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_mfisuprange 218700b3ed16SGreg Kroah-Hartman { 218800b3ed16SGreg Kroah-Hartman UINT16 id; 218900b3ed16SGreg Kroah-Hartman UINT16 variant; 219000b3ed16SGreg Kroah-Hartman UINT16 bottom; 219100b3ed16SGreg Kroah-Hartman UINT16 top; 219200b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mfisuprange_t; 219300b3ed16SGreg Kroah-Hartman 219400b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_cfisuprange 219500b3ed16SGreg Kroah-Hartman { 219600b3ed16SGreg Kroah-Hartman UINT16 id; 219700b3ed16SGreg Kroah-Hartman UINT16 variant; 219800b3ed16SGreg Kroah-Hartman UINT16 bottom; 219900b3ed16SGreg Kroah-Hartman UINT16 top; 220000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_cfisuprange_t; 220100b3ed16SGreg Kroah-Hartman 220200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_nicid 220300b3ed16SGreg Kroah-Hartman { 220400b3ed16SGreg Kroah-Hartman UINT16 id; 220500b3ed16SGreg Kroah-Hartman UINT16 variant; 220600b3ed16SGreg Kroah-Hartman UINT16 major; 220700b3ed16SGreg Kroah-Hartman UINT16 minor; 220800b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nicid_t; 220900b3ed16SGreg Kroah-Hartman 221000b3ed16SGreg Kroah-Hartman 221100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_refdac_measurements 221200b3ed16SGreg Kroah-Hartman { 221300b3ed16SGreg Kroah-Hartman UINT16 value[0]; 221400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_refdac_measurements_t; 221500b3ed16SGreg Kroah-Hartman 221600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_vgdac_measurements 221700b3ed16SGreg Kroah-Hartman { 221800b3ed16SGreg Kroah-Hartman UINT16 value[0]; 221900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_vgdac_measurements_t; 222000b3ed16SGreg Kroah-Hartman 222100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_level_comp_measurements 222200b3ed16SGreg Kroah-Hartman { 222300b3ed16SGreg Kroah-Hartman UINT16 value[0]; 222400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_level_compc_measurements_t; 222500b3ed16SGreg Kroah-Hartman 222600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_mac_address 222700b3ed16SGreg Kroah-Hartman { 222800b3ed16SGreg Kroah-Hartman UINT8 addr[6]; 222900b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mac_address_t; 223000b3ed16SGreg Kroah-Hartman 223100b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_mkk_callname 223200b3ed16SGreg Kroah-Hartman { 223300b3ed16SGreg Kroah-Hartman UINT8 callname[8]; 223400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_mkk_callname_t; 223500b3ed16SGreg Kroah-Hartman 223600b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_regdomain 223700b3ed16SGreg Kroah-Hartman { 223800b3ed16SGreg Kroah-Hartman UINT16 numdomains; 223900b3ed16SGreg Kroah-Hartman UINT16 domain[5]; 224000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_regdomain_t; 224100b3ed16SGreg Kroah-Hartman 224200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_allowed_channel 224300b3ed16SGreg Kroah-Hartman { 224400b3ed16SGreg Kroah-Hartman UINT16 ch_bitmap; 224500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_allowed_channel_t; 224600b3ed16SGreg Kroah-Hartman 224700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_default_channel 224800b3ed16SGreg Kroah-Hartman { 224900b3ed16SGreg Kroah-Hartman UINT16 channel; 225000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_default_channel_t; 225100b3ed16SGreg Kroah-Hartman 225200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_privacy_option 225300b3ed16SGreg Kroah-Hartman { 225400b3ed16SGreg Kroah-Hartman UINT16 available; 225500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_privacy_option_t; 225600b3ed16SGreg Kroah-Hartman 225700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_temptype 225800b3ed16SGreg Kroah-Hartman { 225900b3ed16SGreg Kroah-Hartman UINT16 type; 226000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_temptype_t; 226100b3ed16SGreg Kroah-Hartman 226200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_refdac_setup 226300b3ed16SGreg Kroah-Hartman { 226400b3ed16SGreg Kroah-Hartman UINT16 ch_value[14]; 226500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_refdac_setup_t; 226600b3ed16SGreg Kroah-Hartman 226700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_vgdac_setup 226800b3ed16SGreg Kroah-Hartman { 226900b3ed16SGreg Kroah-Hartman UINT16 ch_value[14]; 227000b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_vgdac_setup_t; 227100b3ed16SGreg Kroah-Hartman 227200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_level_comp_setup 227300b3ed16SGreg Kroah-Hartman { 227400b3ed16SGreg Kroah-Hartman UINT16 ch_value[14]; 227500b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_level_comp_setup_t; 227600b3ed16SGreg Kroah-Hartman 227700b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_trimdac_setup 227800b3ed16SGreg Kroah-Hartman { 227900b3ed16SGreg Kroah-Hartman UINT16 trimidac; 228000b3ed16SGreg Kroah-Hartman UINT16 trimqdac; 228100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_trimdac_setup_t; 228200b3ed16SGreg Kroah-Hartman 228300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_ifr_setting 228400b3ed16SGreg Kroah-Hartman { 228500b3ed16SGreg Kroah-Hartman UINT16 value[3]; 228600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_ifr_setting_t; 228700b3ed16SGreg Kroah-Hartman 228800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_rfr_setting 228900b3ed16SGreg Kroah-Hartman { 229000b3ed16SGreg Kroah-Hartman UINT16 value[3]; 229100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_rfr_setting_t; 229200b3ed16SGreg Kroah-Hartman 229300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_baseline 229400b3ed16SGreg Kroah-Hartman { 229500b3ed16SGreg Kroah-Hartman UINT16 value[50]; 229600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_baseline_t; 229700b3ed16SGreg Kroah-Hartman 229800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_shadow 229900b3ed16SGreg Kroah-Hartman { 230000b3ed16SGreg Kroah-Hartman UINT32 value[32]; 230100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_shadow_t; 230200b3ed16SGreg Kroah-Hartman 230300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_ifrf 230400b3ed16SGreg Kroah-Hartman { 230500b3ed16SGreg Kroah-Hartman UINT32 value[20]; 230600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_ifrf_t; 230700b3ed16SGreg Kroah-Hartman 230800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_chcalsp 230900b3ed16SGreg Kroah-Hartman { 231000b3ed16SGreg Kroah-Hartman UINT16 value[14]; 231100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_chcalsp_t; 231200b3ed16SGreg Kroah-Hartman 231300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_chcali 231400b3ed16SGreg Kroah-Hartman { 231500b3ed16SGreg Kroah-Hartman UINT16 value[17]; 231600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_chcali_t; 231700b3ed16SGreg Kroah-Hartman 231800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_nic_config 231900b3ed16SGreg Kroah-Hartman { 232000b3ed16SGreg Kroah-Hartman UINT16 config_bitmap; 232100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_nic_config_t; 232200b3ed16SGreg Kroah-Hartman 232300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfo_delay 232400b3ed16SGreg Kroah-Hartman { 232500b3ed16SGreg Kroah-Hartman UINT8 hfo_delay; 232600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_hfo_delay_t; 232700b3ed16SGreg Kroah-Hartman 232800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_manf_testsp 232900b3ed16SGreg Kroah-Hartman { 233000b3ed16SGreg Kroah-Hartman UINT16 value[30]; 233100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_manf_testsp_t; 233200b3ed16SGreg Kroah-Hartman 233300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdr_hfa3861_manf_testi 233400b3ed16SGreg Kroah-Hartman { 233500b3ed16SGreg Kroah-Hartman UINT16 value[30]; 233600b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_hfa3861_manf_testi_t; 233700b3ed16SGreg Kroah-Hartman 233800b3ed16SGreg Kroah-Hartman typedef struct hfa384x_end_of_pda 233900b3ed16SGreg Kroah-Hartman { 234000b3ed16SGreg Kroah-Hartman UINT16 crc; 234100b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdr_end_of_pda_t; 234200b3ed16SGreg Kroah-Hartman 234300b3ed16SGreg Kroah-Hartman typedef struct hfa384x_pdrec 234400b3ed16SGreg Kroah-Hartman { 234500b3ed16SGreg Kroah-Hartman UINT16 len; /* in words */ 234600b3ed16SGreg Kroah-Hartman UINT16 code; 234700b3ed16SGreg Kroah-Hartman union pdr { 234800b3ed16SGreg Kroah-Hartman hfa384x_pdr_pcb_partnum_t pcb_partnum; 234900b3ed16SGreg Kroah-Hartman hfa384x_pdr_pcb_tracenum_t pcb_tracenum; 235000b3ed16SGreg Kroah-Hartman hfa384x_pdr_nic_serial_t nic_serial; 235100b3ed16SGreg Kroah-Hartman hfa384x_pdr_mkk_measurements_t mkk_measurements; 235200b3ed16SGreg Kroah-Hartman hfa384x_pdr_nic_ramsize_t nic_ramsize; 235300b3ed16SGreg Kroah-Hartman hfa384x_pdr_mfisuprange_t mfisuprange; 235400b3ed16SGreg Kroah-Hartman hfa384x_pdr_cfisuprange_t cfisuprange; 235500b3ed16SGreg Kroah-Hartman hfa384x_pdr_nicid_t nicid; 235600b3ed16SGreg Kroah-Hartman hfa384x_pdr_refdac_measurements_t refdac_measurements; 235700b3ed16SGreg Kroah-Hartman hfa384x_pdr_vgdac_measurements_t vgdac_measurements; 235800b3ed16SGreg Kroah-Hartman hfa384x_pdr_level_compc_measurements_t level_compc_measurements; 235900b3ed16SGreg Kroah-Hartman hfa384x_pdr_mac_address_t mac_address; 236000b3ed16SGreg Kroah-Hartman hfa384x_pdr_mkk_callname_t mkk_callname; 236100b3ed16SGreg Kroah-Hartman hfa384x_pdr_regdomain_t regdomain; 236200b3ed16SGreg Kroah-Hartman hfa384x_pdr_allowed_channel_t allowed_channel; 236300b3ed16SGreg Kroah-Hartman hfa384x_pdr_default_channel_t default_channel; 236400b3ed16SGreg Kroah-Hartman hfa384x_pdr_privacy_option_t privacy_option; 236500b3ed16SGreg Kroah-Hartman hfa384x_pdr_temptype_t temptype; 236600b3ed16SGreg Kroah-Hartman hfa384x_pdr_refdac_setup_t refdac_setup; 236700b3ed16SGreg Kroah-Hartman hfa384x_pdr_vgdac_setup_t vgdac_setup; 236800b3ed16SGreg Kroah-Hartman hfa384x_pdr_level_comp_setup_t level_comp_setup; 236900b3ed16SGreg Kroah-Hartman hfa384x_pdr_trimdac_setup_t trimdac_setup; 237000b3ed16SGreg Kroah-Hartman hfa384x_pdr_ifr_setting_t ifr_setting; 237100b3ed16SGreg Kroah-Hartman hfa384x_pdr_rfr_setting_t rfr_setting; 237200b3ed16SGreg Kroah-Hartman hfa384x_pdr_hfa3861_baseline_t hfa3861_baseline; 237300b3ed16SGreg Kroah-Hartman hfa384x_pdr_hfa3861_shadow_t hfa3861_shadow; 237400b3ed16SGreg Kroah-Hartman hfa384x_pdr_hfa3861_ifrf_t hfa3861_ifrf; 237500b3ed16SGreg Kroah-Hartman hfa384x_pdr_hfa3861_chcalsp_t hfa3861_chcalsp; 237600b3ed16SGreg Kroah-Hartman hfa384x_pdr_hfa3861_chcali_t hfa3861_chcali; 237700b3ed16SGreg Kroah-Hartman hfa384x_pdr_nic_config_t nic_config; 237800b3ed16SGreg Kroah-Hartman hfa384x_hfo_delay_t hfo_delay; 237900b3ed16SGreg Kroah-Hartman hfa384x_pdr_hfa3861_manf_testsp_t hfa3861_manf_testsp; 238000b3ed16SGreg Kroah-Hartman hfa384x_pdr_hfa3861_manf_testi_t hfa3861_manf_testi; 238100b3ed16SGreg Kroah-Hartman hfa384x_pdr_end_of_pda_t end_of_pda; 238200b3ed16SGreg Kroah-Hartman 238300b3ed16SGreg Kroah-Hartman } data; 238400b3ed16SGreg Kroah-Hartman } __WLAN_ATTRIB_PACK__ hfa384x_pdrec_t; 238500b3ed16SGreg Kroah-Hartman 238600b3ed16SGreg Kroah-Hartman 238700b3ed16SGreg Kroah-Hartman #ifdef __KERNEL__ 238800b3ed16SGreg Kroah-Hartman /*-------------------------------------------------------------------- 238900b3ed16SGreg Kroah-Hartman --- MAC state structure, argument to all functions -- 239000b3ed16SGreg Kroah-Hartman --- Also, a collection of support types -- 239100b3ed16SGreg Kroah-Hartman --------------------------------------------------------------------*/ 239200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_statusresult 239300b3ed16SGreg Kroah-Hartman { 239400b3ed16SGreg Kroah-Hartman UINT16 status; 239500b3ed16SGreg Kroah-Hartman UINT16 resp0; 239600b3ed16SGreg Kroah-Hartman UINT16 resp1; 239700b3ed16SGreg Kroah-Hartman UINT16 resp2; 239800b3ed16SGreg Kroah-Hartman } hfa384x_cmdresult_t; 239900b3ed16SGreg Kroah-Hartman 240000b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF == WLAN_USB) 240100b3ed16SGreg Kroah-Hartman 240200b3ed16SGreg Kroah-Hartman /* USB Control Exchange (CTLX): 240300b3ed16SGreg Kroah-Hartman * A queue of the structure below is maintained for all of the 240400b3ed16SGreg Kroah-Hartman * Request/Response type USB packets supported by Prism2. 240500b3ed16SGreg Kroah-Hartman */ 240600b3ed16SGreg Kroah-Hartman /* The following hfa384x_* structures are arguments to 240700b3ed16SGreg Kroah-Hartman * the usercb() for the different CTLX types. 240800b3ed16SGreg Kroah-Hartman */ 240900b3ed16SGreg Kroah-Hartman typedef hfa384x_cmdresult_t hfa384x_wridresult_t; 241000b3ed16SGreg Kroah-Hartman typedef hfa384x_cmdresult_t hfa384x_wmemresult_t; 241100b3ed16SGreg Kroah-Hartman 241200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_rridresult 241300b3ed16SGreg Kroah-Hartman { 241400b3ed16SGreg Kroah-Hartman UINT16 rid; 241500b3ed16SGreg Kroah-Hartman const void *riddata; 241600b3ed16SGreg Kroah-Hartman UINT riddata_len; 241700b3ed16SGreg Kroah-Hartman } hfa384x_rridresult_t; 241800b3ed16SGreg Kroah-Hartman 241900b3ed16SGreg Kroah-Hartman enum ctlx_state { 242000b3ed16SGreg Kroah-Hartman CTLX_START = 0, /* Start state, not queued */ 242100b3ed16SGreg Kroah-Hartman 242200b3ed16SGreg Kroah-Hartman CTLX_COMPLETE, /* CTLX successfully completed */ 242300b3ed16SGreg Kroah-Hartman CTLX_REQ_FAILED, /* OUT URB completed w/ error */ 242400b3ed16SGreg Kroah-Hartman 242500b3ed16SGreg Kroah-Hartman CTLX_PENDING, /* Queued, data valid */ 242600b3ed16SGreg Kroah-Hartman CTLX_REQ_SUBMITTED, /* OUT URB submitted */ 242700b3ed16SGreg Kroah-Hartman CTLX_REQ_COMPLETE, /* OUT URB complete */ 242800b3ed16SGreg Kroah-Hartman CTLX_RESP_COMPLETE /* IN URB received */ 242900b3ed16SGreg Kroah-Hartman }; 243000b3ed16SGreg Kroah-Hartman typedef enum ctlx_state CTLX_STATE; 243100b3ed16SGreg Kroah-Hartman 243200b3ed16SGreg Kroah-Hartman struct hfa384x_usbctlx; 243300b3ed16SGreg Kroah-Hartman struct hfa384x; 243400b3ed16SGreg Kroah-Hartman 243500b3ed16SGreg Kroah-Hartman typedef void (*ctlx_cmdcb_t)( struct hfa384x*, const struct hfa384x_usbctlx* ); 243600b3ed16SGreg Kroah-Hartman 243700b3ed16SGreg Kroah-Hartman typedef void (*ctlx_usercb_t)( 243800b3ed16SGreg Kroah-Hartman struct hfa384x *hw, 243900b3ed16SGreg Kroah-Hartman void *ctlxresult, 244000b3ed16SGreg Kroah-Hartman void *usercb_data); 244100b3ed16SGreg Kroah-Hartman 244200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usbctlx 244300b3ed16SGreg Kroah-Hartman { 244400b3ed16SGreg Kroah-Hartman struct list_head list; 244500b3ed16SGreg Kroah-Hartman 244600b3ed16SGreg Kroah-Hartman size_t outbufsize; 244700b3ed16SGreg Kroah-Hartman hfa384x_usbout_t outbuf; /* pkt buf for OUT */ 244800b3ed16SGreg Kroah-Hartman hfa384x_usbin_t inbuf; /* pkt buf for IN(a copy) */ 244900b3ed16SGreg Kroah-Hartman 245000b3ed16SGreg Kroah-Hartman CTLX_STATE state; /* Tracks running state */ 245100b3ed16SGreg Kroah-Hartman 245200b3ed16SGreg Kroah-Hartman struct completion done; 245300b3ed16SGreg Kroah-Hartman volatile int reapable; /* Food for the reaper task */ 245400b3ed16SGreg Kroah-Hartman 245500b3ed16SGreg Kroah-Hartman ctlx_cmdcb_t cmdcb; /* Async command callback */ 245600b3ed16SGreg Kroah-Hartman ctlx_usercb_t usercb; /* Async user callback, */ 245700b3ed16SGreg Kroah-Hartman void *usercb_data; /* at CTLX completion */ 245800b3ed16SGreg Kroah-Hartman 245900b3ed16SGreg Kroah-Hartman int variant; /* Identifies cmd variant */ 246000b3ed16SGreg Kroah-Hartman } hfa384x_usbctlx_t; 246100b3ed16SGreg Kroah-Hartman 246200b3ed16SGreg Kroah-Hartman typedef struct hfa384x_usbctlxq 246300b3ed16SGreg Kroah-Hartman { 246400b3ed16SGreg Kroah-Hartman spinlock_t lock; 246500b3ed16SGreg Kroah-Hartman struct list_head pending; 246600b3ed16SGreg Kroah-Hartman struct list_head active; 246700b3ed16SGreg Kroah-Hartman struct list_head completing; 246800b3ed16SGreg Kroah-Hartman struct list_head reapable; 246900b3ed16SGreg Kroah-Hartman } hfa384x_usbctlxq_t; 247000b3ed16SGreg Kroah-Hartman #endif 247100b3ed16SGreg Kroah-Hartman 247200b3ed16SGreg Kroah-Hartman typedef struct hfa484x_metacmd 247300b3ed16SGreg Kroah-Hartman { 247400b3ed16SGreg Kroah-Hartman UINT16 cmd; 247500b3ed16SGreg Kroah-Hartman 247600b3ed16SGreg Kroah-Hartman UINT16 parm0; 247700b3ed16SGreg Kroah-Hartman UINT16 parm1; 247800b3ed16SGreg Kroah-Hartman UINT16 parm2; 247900b3ed16SGreg Kroah-Hartman 248000b3ed16SGreg Kroah-Hartman #if 0 //XXX cmd irq stuff 248100b3ed16SGreg Kroah-Hartman UINT16 bulkid; /* what RID/FID to copy down. */ 248200b3ed16SGreg Kroah-Hartman int bulklen; /* how much to copy from BAP */ 248300b3ed16SGreg Kroah-Hartman char *bulkdata; /* And to where? */ 248400b3ed16SGreg Kroah-Hartman #endif 248500b3ed16SGreg Kroah-Hartman 248600b3ed16SGreg Kroah-Hartman hfa384x_cmdresult_t result; 248700b3ed16SGreg Kroah-Hartman } hfa384x_metacmd_t; 248800b3ed16SGreg Kroah-Hartman 248900b3ed16SGreg Kroah-Hartman #define MAX_PRISM2_GRP_ADDR 16 249000b3ed16SGreg Kroah-Hartman #define MAX_GRP_ADDR 32 249100b3ed16SGreg Kroah-Hartman #define WLAN_COMMENT_MAX 80 /* Max. length of user comment string. */ 249200b3ed16SGreg Kroah-Hartman 249300b3ed16SGreg Kroah-Hartman #define MM_SAT_PCF (BIT14) 249400b3ed16SGreg Kroah-Hartman #define MM_GCSD_PCF (BIT15) 249500b3ed16SGreg Kroah-Hartman #define MM_GCSD_PCF_EB (BIT14 | BIT15) 249600b3ed16SGreg Kroah-Hartman 249700b3ed16SGreg Kroah-Hartman #define WLAN_STATE_STOPPED 0 /* Network is not active. */ 249800b3ed16SGreg Kroah-Hartman #define WLAN_STATE_STARTED 1 /* Network has been started. */ 249900b3ed16SGreg Kroah-Hartman 250000b3ed16SGreg Kroah-Hartman #define WLAN_AUTH_MAX 60 /* Max. # of authenticated stations. */ 250100b3ed16SGreg Kroah-Hartman #define WLAN_ACCESS_MAX 60 /* Max. # of stations in an access list. */ 250200b3ed16SGreg Kroah-Hartman #define WLAN_ACCESS_NONE 0 /* No stations may be authenticated. */ 250300b3ed16SGreg Kroah-Hartman #define WLAN_ACCESS_ALL 1 /* All stations may be authenticated. */ 250400b3ed16SGreg Kroah-Hartman #define WLAN_ACCESS_ALLOW 2 /* Authenticate only "allowed" stations. */ 250500b3ed16SGreg Kroah-Hartman #define WLAN_ACCESS_DENY 3 /* Do not authenticate "denied" stations. */ 250600b3ed16SGreg Kroah-Hartman 250700b3ed16SGreg Kroah-Hartman /* XXX These are going away ASAP */ 250800b3ed16SGreg Kroah-Hartman typedef struct prism2sta_authlist 250900b3ed16SGreg Kroah-Hartman { 251000b3ed16SGreg Kroah-Hartman UINT cnt; 251100b3ed16SGreg Kroah-Hartman UINT8 addr[WLAN_AUTH_MAX][WLAN_ADDR_LEN]; 251200b3ed16SGreg Kroah-Hartman UINT8 assoc[WLAN_AUTH_MAX]; 251300b3ed16SGreg Kroah-Hartman } prism2sta_authlist_t; 251400b3ed16SGreg Kroah-Hartman 251500b3ed16SGreg Kroah-Hartman typedef struct prism2sta_accesslist 251600b3ed16SGreg Kroah-Hartman { 251700b3ed16SGreg Kroah-Hartman UINT modify; 251800b3ed16SGreg Kroah-Hartman UINT cnt; 251900b3ed16SGreg Kroah-Hartman UINT8 addr[WLAN_ACCESS_MAX][WLAN_ADDR_LEN]; 252000b3ed16SGreg Kroah-Hartman UINT cnt1; 252100b3ed16SGreg Kroah-Hartman UINT8 addr1[WLAN_ACCESS_MAX][WLAN_ADDR_LEN]; 252200b3ed16SGreg Kroah-Hartman } prism2sta_accesslist_t; 252300b3ed16SGreg Kroah-Hartman 252400b3ed16SGreg Kroah-Hartman typedef struct hfa384x 252500b3ed16SGreg Kroah-Hartman { 252600b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF != WLAN_USB) 252700b3ed16SGreg Kroah-Hartman /* Resource config */ 252800b3ed16SGreg Kroah-Hartman UINT32 iobase; 252900b3ed16SGreg Kroah-Hartman char __iomem *membase; 253000b3ed16SGreg Kroah-Hartman UINT32 irq; 253100b3ed16SGreg Kroah-Hartman #else 253200b3ed16SGreg Kroah-Hartman /* USB support data */ 253300b3ed16SGreg Kroah-Hartman struct usb_device *usb; 253400b3ed16SGreg Kroah-Hartman struct urb rx_urb; 253500b3ed16SGreg Kroah-Hartman struct sk_buff *rx_urb_skb; 253600b3ed16SGreg Kroah-Hartman struct urb tx_urb; 253700b3ed16SGreg Kroah-Hartman struct urb ctlx_urb; 253800b3ed16SGreg Kroah-Hartman hfa384x_usbout_t txbuff; 253900b3ed16SGreg Kroah-Hartman hfa384x_usbctlxq_t ctlxq; 254000b3ed16SGreg Kroah-Hartman struct timer_list reqtimer; 254100b3ed16SGreg Kroah-Hartman struct timer_list resptimer; 254200b3ed16SGreg Kroah-Hartman 254300b3ed16SGreg Kroah-Hartman struct timer_list throttle; 254400b3ed16SGreg Kroah-Hartman 254500b3ed16SGreg Kroah-Hartman struct tasklet_struct reaper_bh; 254600b3ed16SGreg Kroah-Hartman struct tasklet_struct completion_bh; 254700b3ed16SGreg Kroah-Hartman 254800b3ed16SGreg Kroah-Hartman struct work_struct usb_work; 254900b3ed16SGreg Kroah-Hartman 255000b3ed16SGreg Kroah-Hartman unsigned long usb_flags; 255100b3ed16SGreg Kroah-Hartman #define THROTTLE_RX 0 255200b3ed16SGreg Kroah-Hartman #define THROTTLE_TX 1 255300b3ed16SGreg Kroah-Hartman #define WORK_RX_HALT 2 255400b3ed16SGreg Kroah-Hartman #define WORK_TX_HALT 3 255500b3ed16SGreg Kroah-Hartman #define WORK_RX_RESUME 4 255600b3ed16SGreg Kroah-Hartman #define WORK_TX_RESUME 5 255700b3ed16SGreg Kroah-Hartman 255800b3ed16SGreg Kroah-Hartman unsigned short req_timer_done:1; 255900b3ed16SGreg Kroah-Hartman unsigned short resp_timer_done:1; 256000b3ed16SGreg Kroah-Hartman 256100b3ed16SGreg Kroah-Hartman int endp_in; 256200b3ed16SGreg Kroah-Hartman int endp_out; 256300b3ed16SGreg Kroah-Hartman #endif /* !USB */ 256400b3ed16SGreg Kroah-Hartman 256500b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF == WLAN_PCMCIA) 256600b3ed16SGreg Kroah-Hartman #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,16) 256700b3ed16SGreg Kroah-Hartman struct pcmcia_device *pdev; 256800b3ed16SGreg Kroah-Hartman #else 256900b3ed16SGreg Kroah-Hartman dev_link_t *link; 257000b3ed16SGreg Kroah-Hartman #endif 257100b3ed16SGreg Kroah-Hartman dev_node_t node; 257200b3ed16SGreg Kroah-Hartman #endif 257300b3ed16SGreg Kroah-Hartman 257400b3ed16SGreg Kroah-Hartman int sniff_fcs; 257500b3ed16SGreg Kroah-Hartman int sniff_channel; 257600b3ed16SGreg Kroah-Hartman int sniff_truncate; 257700b3ed16SGreg Kroah-Hartman int sniffhdr; 257800b3ed16SGreg Kroah-Hartman 257900b3ed16SGreg Kroah-Hartman wait_queue_head_t cmdq; /* wait queue itself */ 258000b3ed16SGreg Kroah-Hartman 258100b3ed16SGreg Kroah-Hartman /* Controller state */ 258200b3ed16SGreg Kroah-Hartman UINT32 state; 258300b3ed16SGreg Kroah-Hartman UINT32 isap; 258400b3ed16SGreg Kroah-Hartman UINT8 port_enabled[HFA384x_NUMPORTS_MAX]; 258500b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF != WLAN_USB) 258600b3ed16SGreg Kroah-Hartman UINT auxen; 258700b3ed16SGreg Kroah-Hartman UINT isram16; 258800b3ed16SGreg Kroah-Hartman #endif /* !USB */ 258900b3ed16SGreg Kroah-Hartman 259000b3ed16SGreg Kroah-Hartman /* Download support */ 259100b3ed16SGreg Kroah-Hartman UINT dlstate; 259200b3ed16SGreg Kroah-Hartman hfa384x_downloadbuffer_t bufinfo; 259300b3ed16SGreg Kroah-Hartman UINT16 dltimeout; 259400b3ed16SGreg Kroah-Hartman 259500b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF != WLAN_USB) 259600b3ed16SGreg Kroah-Hartman spinlock_t cmdlock; 259700b3ed16SGreg Kroah-Hartman volatile int cmdflag; /* wait queue flag */ 259800b3ed16SGreg Kroah-Hartman hfa384x_metacmd_t *cmddata; /* for our async callback */ 259900b3ed16SGreg Kroah-Hartman 260000b3ed16SGreg Kroah-Hartman /* BAP support */ 260100b3ed16SGreg Kroah-Hartman spinlock_t baplock; 260200b3ed16SGreg Kroah-Hartman struct tasklet_struct bap_tasklet; 260300b3ed16SGreg Kroah-Hartman 260400b3ed16SGreg Kroah-Hartman /* MAC buffer ids */ 260500b3ed16SGreg Kroah-Hartman UINT16 txfid_head; 260600b3ed16SGreg Kroah-Hartman UINT16 txfid_tail; 260700b3ed16SGreg Kroah-Hartman UINT txfid_N; 260800b3ed16SGreg Kroah-Hartman UINT16 txfid_queue[HFA384x_DRVR_FIDSTACKLEN_MAX]; 260900b3ed16SGreg Kroah-Hartman UINT16 infofid; 261000b3ed16SGreg Kroah-Hartman struct semaphore infofid_sem; 261100b3ed16SGreg Kroah-Hartman #endif /* !USB */ 261200b3ed16SGreg Kroah-Hartman 261300b3ed16SGreg Kroah-Hartman int scanflag; /* to signal scan comlete */ 261400b3ed16SGreg Kroah-Hartman int join_ap; /* are we joined to a specific ap */ 261500b3ed16SGreg Kroah-Hartman int join_retries; /* number of join retries till we fail */ 261600b3ed16SGreg Kroah-Hartman hfa384x_JoinRequest_data_t joinreq; /* join request saved data */ 261700b3ed16SGreg Kroah-Hartman 261800b3ed16SGreg Kroah-Hartman wlandevice_t *wlandev; 261900b3ed16SGreg Kroah-Hartman /* Timer to allow for the deferred processing of linkstatus messages */ 262000b3ed16SGreg Kroah-Hartman struct work_struct link_bh; 262100b3ed16SGreg Kroah-Hartman 262200b3ed16SGreg Kroah-Hartman struct work_struct commsqual_bh; 262300b3ed16SGreg Kroah-Hartman hfa384x_commsquality_t qual; 262400b3ed16SGreg Kroah-Hartman struct timer_list commsqual_timer; 262500b3ed16SGreg Kroah-Hartman 262600b3ed16SGreg Kroah-Hartman UINT16 link_status; 262700b3ed16SGreg Kroah-Hartman UINT16 link_status_new; 262800b3ed16SGreg Kroah-Hartman struct sk_buff_head authq; 262900b3ed16SGreg Kroah-Hartman 263000b3ed16SGreg Kroah-Hartman /* And here we have stuff that used to be in priv */ 263100b3ed16SGreg Kroah-Hartman 263200b3ed16SGreg Kroah-Hartman /* State variables */ 263300b3ed16SGreg Kroah-Hartman UINT presniff_port_type; 263400b3ed16SGreg Kroah-Hartman UINT16 presniff_wepflags; 263500b3ed16SGreg Kroah-Hartman UINT32 dot11_desired_bss_type; 263600b3ed16SGreg Kroah-Hartman int ap; /* AP flag: 0 - Station, 1 - Access Point. */ 263700b3ed16SGreg Kroah-Hartman 263800b3ed16SGreg Kroah-Hartman int dbmadjust; 263900b3ed16SGreg Kroah-Hartman 264000b3ed16SGreg Kroah-Hartman /* Group Addresses - right now, there are up to a total 264100b3ed16SGreg Kroah-Hartman of MAX_GRP_ADDR group addresses */ 264200b3ed16SGreg Kroah-Hartman UINT8 dot11_grp_addr[MAX_GRP_ADDR][WLAN_ADDR_LEN]; 264300b3ed16SGreg Kroah-Hartman UINT dot11_grpcnt; 264400b3ed16SGreg Kroah-Hartman 264500b3ed16SGreg Kroah-Hartman /* Component Identities */ 264600b3ed16SGreg Kroah-Hartman hfa384x_compident_t ident_nic; 264700b3ed16SGreg Kroah-Hartman hfa384x_compident_t ident_pri_fw; 264800b3ed16SGreg Kroah-Hartman hfa384x_compident_t ident_sta_fw; 264900b3ed16SGreg Kroah-Hartman hfa384x_compident_t ident_ap_fw; 265000b3ed16SGreg Kroah-Hartman UINT16 mm_mods; 265100b3ed16SGreg Kroah-Hartman 265200b3ed16SGreg Kroah-Hartman /* Supplier compatibility ranges */ 265300b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_sup_mfi; 265400b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_sup_cfi; 265500b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_sup_pri; 265600b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_sup_sta; 265700b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_sup_ap; 265800b3ed16SGreg Kroah-Hartman 265900b3ed16SGreg Kroah-Hartman /* Actor compatibility ranges */ 266000b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_act_pri_cfi; /* pri f/w to controller interface */ 266100b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_act_sta_cfi; /* sta f/w to controller interface */ 266200b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_act_sta_mfi; /* sta f/w to modem interface */ 266300b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_act_ap_cfi; /* ap f/w to controller interface */ 266400b3ed16SGreg Kroah-Hartman hfa384x_caplevel_t cap_act_ap_mfi; /* ap f/w to modem interface */ 266500b3ed16SGreg Kroah-Hartman 266600b3ed16SGreg Kroah-Hartman UINT32 psusercount; /* Power save user count. */ 266700b3ed16SGreg Kroah-Hartman hfa384x_CommTallies32_t tallies; /* Communication tallies. */ 266800b3ed16SGreg Kroah-Hartman UINT8 comment[WLAN_COMMENT_MAX+1]; /* User comment */ 266900b3ed16SGreg Kroah-Hartman 267000b3ed16SGreg Kroah-Hartman /* Channel Info request results (AP only) */ 267100b3ed16SGreg Kroah-Hartman struct { 267200b3ed16SGreg Kroah-Hartman atomic_t done; 267300b3ed16SGreg Kroah-Hartman UINT8 count; 267400b3ed16SGreg Kroah-Hartman hfa384x_ChInfoResult_t results; 267500b3ed16SGreg Kroah-Hartman } channel_info; 267600b3ed16SGreg Kroah-Hartman 267700b3ed16SGreg Kroah-Hartman hfa384x_InfFrame_t *scanresults; 267800b3ed16SGreg Kroah-Hartman 267900b3ed16SGreg Kroah-Hartman 268000b3ed16SGreg Kroah-Hartman prism2sta_authlist_t authlist; /* Authenticated station list. */ 268100b3ed16SGreg Kroah-Hartman UINT accessmode; /* Access mode. */ 268200b3ed16SGreg Kroah-Hartman prism2sta_accesslist_t allow; /* Allowed station list. */ 268300b3ed16SGreg Kroah-Hartman prism2sta_accesslist_t deny; /* Denied station list. */ 268400b3ed16SGreg Kroah-Hartman 268500b3ed16SGreg Kroah-Hartman } hfa384x_t; 268600b3ed16SGreg Kroah-Hartman 268700b3ed16SGreg Kroah-Hartman /*=============================================================*/ 268800b3ed16SGreg Kroah-Hartman /*--- Function Declarations -----------------------------------*/ 268900b3ed16SGreg Kroah-Hartman /*=============================================================*/ 269000b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF == WLAN_USB) 269100b3ed16SGreg Kroah-Hartman void 269200b3ed16SGreg Kroah-Hartman hfa384x_create( 269300b3ed16SGreg Kroah-Hartman hfa384x_t *hw, 269400b3ed16SGreg Kroah-Hartman struct usb_device *usb); 269500b3ed16SGreg Kroah-Hartman #else 269600b3ed16SGreg Kroah-Hartman void 269700b3ed16SGreg Kroah-Hartman hfa384x_create( 269800b3ed16SGreg Kroah-Hartman hfa384x_t *hw, 269900b3ed16SGreg Kroah-Hartman UINT irq, 270000b3ed16SGreg Kroah-Hartman UINT32 iobase, 270100b3ed16SGreg Kroah-Hartman UINT8 __iomem *membase); 270200b3ed16SGreg Kroah-Hartman #endif 270300b3ed16SGreg Kroah-Hartman 270400b3ed16SGreg Kroah-Hartman void hfa384x_destroy(hfa384x_t *hw); 270500b3ed16SGreg Kroah-Hartman 270600b3ed16SGreg Kroah-Hartman irqreturn_t 270700b3ed16SGreg Kroah-Hartman hfa384x_interrupt(int irq, void *dev_id PT_REGS); 270800b3ed16SGreg Kroah-Hartman int 270900b3ed16SGreg Kroah-Hartman hfa384x_corereset( hfa384x_t *hw, int holdtime, int settletime, int genesis); 271000b3ed16SGreg Kroah-Hartman int 271100b3ed16SGreg Kroah-Hartman hfa384x_drvr_chinforesults( hfa384x_t *hw); 271200b3ed16SGreg Kroah-Hartman int 271300b3ed16SGreg Kroah-Hartman hfa384x_drvr_commtallies( hfa384x_t *hw); 271400b3ed16SGreg Kroah-Hartman int 271500b3ed16SGreg Kroah-Hartman hfa384x_drvr_disable(hfa384x_t *hw, UINT16 macport); 271600b3ed16SGreg Kroah-Hartman int 271700b3ed16SGreg Kroah-Hartman hfa384x_drvr_enable(hfa384x_t *hw, UINT16 macport); 271800b3ed16SGreg Kroah-Hartman int 271900b3ed16SGreg Kroah-Hartman hfa384x_drvr_flashdl_enable(hfa384x_t *hw); 272000b3ed16SGreg Kroah-Hartman int 272100b3ed16SGreg Kroah-Hartman hfa384x_drvr_flashdl_disable(hfa384x_t *hw); 272200b3ed16SGreg Kroah-Hartman int 272300b3ed16SGreg Kroah-Hartman hfa384x_drvr_flashdl_write(hfa384x_t *hw, UINT32 daddr, void* buf, UINT32 len); 272400b3ed16SGreg Kroah-Hartman int 272500b3ed16SGreg Kroah-Hartman hfa384x_drvr_getconfig(hfa384x_t *hw, UINT16 rid, void *buf, UINT16 len); 272600b3ed16SGreg Kroah-Hartman int 272700b3ed16SGreg Kroah-Hartman hfa384x_drvr_handover( hfa384x_t *hw, UINT8 *addr); 272800b3ed16SGreg Kroah-Hartman int 272900b3ed16SGreg Kroah-Hartman hfa384x_drvr_hostscanresults( hfa384x_t *hw); 273000b3ed16SGreg Kroah-Hartman int 273100b3ed16SGreg Kroah-Hartman hfa384x_drvr_low_level(hfa384x_t *hw, hfa384x_metacmd_t *cmd); 273200b3ed16SGreg Kroah-Hartman int 273300b3ed16SGreg Kroah-Hartman hfa384x_drvr_mmi_read(hfa384x_t *hw, UINT32 address, UINT32 *result); 273400b3ed16SGreg Kroah-Hartman int 273500b3ed16SGreg Kroah-Hartman hfa384x_drvr_mmi_write(hfa384x_t *hw, UINT32 address, UINT32 data); 273600b3ed16SGreg Kroah-Hartman int 273700b3ed16SGreg Kroah-Hartman hfa384x_drvr_ramdl_enable(hfa384x_t *hw, UINT32 exeaddr); 273800b3ed16SGreg Kroah-Hartman int 273900b3ed16SGreg Kroah-Hartman hfa384x_drvr_ramdl_disable(hfa384x_t *hw); 274000b3ed16SGreg Kroah-Hartman int 274100b3ed16SGreg Kroah-Hartman hfa384x_drvr_ramdl_write(hfa384x_t *hw, UINT32 daddr, void* buf, UINT32 len); 274200b3ed16SGreg Kroah-Hartman int 274300b3ed16SGreg Kroah-Hartman hfa384x_drvr_readpda(hfa384x_t *hw, void *buf, UINT len); 274400b3ed16SGreg Kroah-Hartman int 274500b3ed16SGreg Kroah-Hartman hfa384x_drvr_scanresults( hfa384x_t *hw); 274600b3ed16SGreg Kroah-Hartman 274700b3ed16SGreg Kroah-Hartman int 274800b3ed16SGreg Kroah-Hartman hfa384x_drvr_setconfig(hfa384x_t *hw, UINT16 rid, void *buf, UINT16 len); 274900b3ed16SGreg Kroah-Hartman 275000b3ed16SGreg Kroah-Hartman static inline int 275100b3ed16SGreg Kroah-Hartman hfa384x_drvr_getconfig16(hfa384x_t *hw, UINT16 rid, void *val) 275200b3ed16SGreg Kroah-Hartman { 275300b3ed16SGreg Kroah-Hartman int result = 0; 275400b3ed16SGreg Kroah-Hartman result = hfa384x_drvr_getconfig(hw, rid, val, sizeof(UINT16)); 275500b3ed16SGreg Kroah-Hartman if ( result == 0 ) { 275600b3ed16SGreg Kroah-Hartman *((UINT16*)val) = hfa384x2host_16(*((UINT16*)val)); 275700b3ed16SGreg Kroah-Hartman } 275800b3ed16SGreg Kroah-Hartman return result; 275900b3ed16SGreg Kroah-Hartman } 276000b3ed16SGreg Kroah-Hartman 276100b3ed16SGreg Kroah-Hartman static inline int 276200b3ed16SGreg Kroah-Hartman hfa384x_drvr_getconfig32(hfa384x_t *hw, UINT16 rid, void *val) 276300b3ed16SGreg Kroah-Hartman { 276400b3ed16SGreg Kroah-Hartman int result = 0; 276500b3ed16SGreg Kroah-Hartman 276600b3ed16SGreg Kroah-Hartman result = hfa384x_drvr_getconfig(hw, rid, val, sizeof(UINT32)); 276700b3ed16SGreg Kroah-Hartman if ( result == 0 ) { 276800b3ed16SGreg Kroah-Hartman *((UINT32*)val) = hfa384x2host_32(*((UINT32*)val)); 276900b3ed16SGreg Kroah-Hartman } 277000b3ed16SGreg Kroah-Hartman 277100b3ed16SGreg Kroah-Hartman return result; 277200b3ed16SGreg Kroah-Hartman } 277300b3ed16SGreg Kroah-Hartman 277400b3ed16SGreg Kroah-Hartman static inline int 277500b3ed16SGreg Kroah-Hartman hfa384x_drvr_setconfig16(hfa384x_t *hw, UINT16 rid, UINT16 val) 277600b3ed16SGreg Kroah-Hartman { 277700b3ed16SGreg Kroah-Hartman UINT16 value = host2hfa384x_16(val); 277800b3ed16SGreg Kroah-Hartman return hfa384x_drvr_setconfig(hw, rid, &value, sizeof(value)); 277900b3ed16SGreg Kroah-Hartman } 278000b3ed16SGreg Kroah-Hartman 278100b3ed16SGreg Kroah-Hartman static inline int 278200b3ed16SGreg Kroah-Hartman hfa384x_drvr_setconfig32(hfa384x_t *hw, UINT16 rid, UINT32 val) 278300b3ed16SGreg Kroah-Hartman { 278400b3ed16SGreg Kroah-Hartman UINT32 value = host2hfa384x_32(val); 278500b3ed16SGreg Kroah-Hartman return hfa384x_drvr_setconfig(hw, rid, &value, sizeof(value)); 278600b3ed16SGreg Kroah-Hartman } 278700b3ed16SGreg Kroah-Hartman 278800b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF == WLAN_USB) 278900b3ed16SGreg Kroah-Hartman int 279000b3ed16SGreg Kroah-Hartman hfa384x_drvr_getconfig_async(hfa384x_t *hw, 279100b3ed16SGreg Kroah-Hartman UINT16 rid, 279200b3ed16SGreg Kroah-Hartman ctlx_usercb_t usercb, 279300b3ed16SGreg Kroah-Hartman void *usercb_data); 279400b3ed16SGreg Kroah-Hartman 279500b3ed16SGreg Kroah-Hartman int 279600b3ed16SGreg Kroah-Hartman hfa384x_drvr_setconfig_async(hfa384x_t *hw, 279700b3ed16SGreg Kroah-Hartman UINT16 rid, 279800b3ed16SGreg Kroah-Hartman void *buf, 279900b3ed16SGreg Kroah-Hartman UINT16 len, 280000b3ed16SGreg Kroah-Hartman ctlx_usercb_t usercb, 280100b3ed16SGreg Kroah-Hartman void *usercb_data); 280200b3ed16SGreg Kroah-Hartman #else 280300b3ed16SGreg Kroah-Hartman static inline int 280400b3ed16SGreg Kroah-Hartman hfa384x_drvr_setconfig_async(hfa384x_t *hw, UINT16 rid, void *buf, UINT16 len, 280500b3ed16SGreg Kroah-Hartman void *ptr1, void *ptr2) 280600b3ed16SGreg Kroah-Hartman { 280700b3ed16SGreg Kroah-Hartman (void)ptr1; 280800b3ed16SGreg Kroah-Hartman (void)ptr2; 280900b3ed16SGreg Kroah-Hartman return hfa384x_drvr_setconfig(hw, rid, buf, len); 281000b3ed16SGreg Kroah-Hartman } 281100b3ed16SGreg Kroah-Hartman #endif 281200b3ed16SGreg Kroah-Hartman 281300b3ed16SGreg Kroah-Hartman static inline int 281400b3ed16SGreg Kroah-Hartman hfa384x_drvr_setconfig16_async(hfa384x_t *hw, UINT16 rid, UINT16 val) 281500b3ed16SGreg Kroah-Hartman { 281600b3ed16SGreg Kroah-Hartman UINT16 value = host2hfa384x_16(val); 281700b3ed16SGreg Kroah-Hartman return hfa384x_drvr_setconfig_async(hw, rid, &value, sizeof(value), 281800b3ed16SGreg Kroah-Hartman NULL , NULL); 281900b3ed16SGreg Kroah-Hartman } 282000b3ed16SGreg Kroah-Hartman 282100b3ed16SGreg Kroah-Hartman static inline int 282200b3ed16SGreg Kroah-Hartman hfa384x_drvr_setconfig32_async(hfa384x_t *hw, UINT16 rid, UINT32 val) 282300b3ed16SGreg Kroah-Hartman { 282400b3ed16SGreg Kroah-Hartman UINT32 value = host2hfa384x_32(val); 282500b3ed16SGreg Kroah-Hartman return hfa384x_drvr_setconfig_async(hw, rid, &value, sizeof(value), 282600b3ed16SGreg Kroah-Hartman NULL , NULL); 282700b3ed16SGreg Kroah-Hartman } 282800b3ed16SGreg Kroah-Hartman 282900b3ed16SGreg Kroah-Hartman 283000b3ed16SGreg Kroah-Hartman int 283100b3ed16SGreg Kroah-Hartman hfa384x_drvr_start(hfa384x_t *hw); 283200b3ed16SGreg Kroah-Hartman int 283300b3ed16SGreg Kroah-Hartman hfa384x_drvr_stop(hfa384x_t *hw); 283400b3ed16SGreg Kroah-Hartman int 283500b3ed16SGreg Kroah-Hartman hfa384x_drvr_txframe(hfa384x_t *hw, struct sk_buff *skb, p80211_hdr_t *p80211_hdr, p80211_metawep_t *p80211_wep); 283600b3ed16SGreg Kroah-Hartman void 283700b3ed16SGreg Kroah-Hartman hfa384x_tx_timeout(wlandevice_t *wlandev); 283800b3ed16SGreg Kroah-Hartman 283900b3ed16SGreg Kroah-Hartman int 284000b3ed16SGreg Kroah-Hartman hfa384x_cmd_initialize(hfa384x_t *hw); 284100b3ed16SGreg Kroah-Hartman int 284200b3ed16SGreg Kroah-Hartman hfa384x_cmd_enable(hfa384x_t *hw, UINT16 macport); 284300b3ed16SGreg Kroah-Hartman int 284400b3ed16SGreg Kroah-Hartman hfa384x_cmd_disable(hfa384x_t *hw, UINT16 macport); 284500b3ed16SGreg Kroah-Hartman int 284600b3ed16SGreg Kroah-Hartman hfa384x_cmd_diagnose(hfa384x_t *hw); 284700b3ed16SGreg Kroah-Hartman int 284800b3ed16SGreg Kroah-Hartman hfa384x_cmd_allocate(hfa384x_t *hw, UINT16 len); 284900b3ed16SGreg Kroah-Hartman int 285000b3ed16SGreg Kroah-Hartman hfa384x_cmd_transmit(hfa384x_t *hw, UINT16 reclaim, UINT16 qos, UINT16 fid); 285100b3ed16SGreg Kroah-Hartman int 285200b3ed16SGreg Kroah-Hartman hfa384x_cmd_clearpersist(hfa384x_t *hw, UINT16 fid); 285300b3ed16SGreg Kroah-Hartman int 285400b3ed16SGreg Kroah-Hartman hfa384x_cmd_notify(hfa384x_t *hw, UINT16 reclaim, UINT16 fid, void *buf, UINT16 len); 285500b3ed16SGreg Kroah-Hartman int 285600b3ed16SGreg Kroah-Hartman hfa384x_cmd_inquire(hfa384x_t *hw, UINT16 fid); 285700b3ed16SGreg Kroah-Hartman int 285800b3ed16SGreg Kroah-Hartman hfa384x_cmd_access(hfa384x_t *hw, UINT16 write, UINT16 rid, void *buf, UINT16 len); 285900b3ed16SGreg Kroah-Hartman int 286000b3ed16SGreg Kroah-Hartman hfa384x_cmd_monitor(hfa384x_t *hw, UINT16 enable); 286100b3ed16SGreg Kroah-Hartman int 286200b3ed16SGreg Kroah-Hartman hfa384x_cmd_download( 286300b3ed16SGreg Kroah-Hartman hfa384x_t *hw, 286400b3ed16SGreg Kroah-Hartman UINT16 mode, 286500b3ed16SGreg Kroah-Hartman UINT16 lowaddr, 286600b3ed16SGreg Kroah-Hartman UINT16 highaddr, 286700b3ed16SGreg Kroah-Hartman UINT16 codelen); 286800b3ed16SGreg Kroah-Hartman int 286900b3ed16SGreg Kroah-Hartman hfa384x_cmd_aux_enable(hfa384x_t *hw, int force); 287000b3ed16SGreg Kroah-Hartman int 287100b3ed16SGreg Kroah-Hartman hfa384x_cmd_aux_disable(hfa384x_t *hw); 287200b3ed16SGreg Kroah-Hartman int 287300b3ed16SGreg Kroah-Hartman hfa384x_copy_from_bap( 287400b3ed16SGreg Kroah-Hartman hfa384x_t *hw, 287500b3ed16SGreg Kroah-Hartman UINT16 bap, 287600b3ed16SGreg Kroah-Hartman UINT16 id, 287700b3ed16SGreg Kroah-Hartman UINT16 offset, 287800b3ed16SGreg Kroah-Hartman void *buf, 287900b3ed16SGreg Kroah-Hartman UINT len); 288000b3ed16SGreg Kroah-Hartman int 288100b3ed16SGreg Kroah-Hartman hfa384x_copy_to_bap( 288200b3ed16SGreg Kroah-Hartman hfa384x_t *hw, 288300b3ed16SGreg Kroah-Hartman UINT16 bap, 288400b3ed16SGreg Kroah-Hartman UINT16 id, 288500b3ed16SGreg Kroah-Hartman UINT16 offset, 288600b3ed16SGreg Kroah-Hartman void *buf, 288700b3ed16SGreg Kroah-Hartman UINT len); 288800b3ed16SGreg Kroah-Hartman void 288900b3ed16SGreg Kroah-Hartman hfa384x_copy_from_aux( 289000b3ed16SGreg Kroah-Hartman hfa384x_t *hw, 289100b3ed16SGreg Kroah-Hartman UINT32 cardaddr, 289200b3ed16SGreg Kroah-Hartman UINT32 auxctl, 289300b3ed16SGreg Kroah-Hartman void *buf, 289400b3ed16SGreg Kroah-Hartman UINT len); 289500b3ed16SGreg Kroah-Hartman void 289600b3ed16SGreg Kroah-Hartman hfa384x_copy_to_aux( 289700b3ed16SGreg Kroah-Hartman hfa384x_t *hw, 289800b3ed16SGreg Kroah-Hartman UINT32 cardaddr, 289900b3ed16SGreg Kroah-Hartman UINT32 auxctl, 290000b3ed16SGreg Kroah-Hartman void *buf, 290100b3ed16SGreg Kroah-Hartman UINT len); 290200b3ed16SGreg Kroah-Hartman 290300b3ed16SGreg Kroah-Hartman #if (WLAN_HOSTIF != WLAN_USB) 290400b3ed16SGreg Kroah-Hartman 290500b3ed16SGreg Kroah-Hartman /* 290600b3ed16SGreg Kroah-Hartman HFA384x is a LITTLE ENDIAN part. 290700b3ed16SGreg Kroah-Hartman 290800b3ed16SGreg Kroah-Hartman the get/setreg functions implicitly byte-swap the data to LE. 290900b3ed16SGreg Kroah-Hartman the _noswap variants do not perform a byte-swap on the data. 291000b3ed16SGreg Kroah-Hartman */ 291100b3ed16SGreg Kroah-Hartman 291200b3ed16SGreg Kroah-Hartman static inline UINT16 291300b3ed16SGreg Kroah-Hartman __hfa384x_getreg(hfa384x_t *hw, UINT reg); 291400b3ed16SGreg Kroah-Hartman 291500b3ed16SGreg Kroah-Hartman static inline void 291600b3ed16SGreg Kroah-Hartman __hfa384x_setreg(hfa384x_t *hw, UINT16 val, UINT reg); 291700b3ed16SGreg Kroah-Hartman 291800b3ed16SGreg Kroah-Hartman static inline UINT16 291900b3ed16SGreg Kroah-Hartman __hfa384x_getreg_noswap(hfa384x_t *hw, UINT reg); 292000b3ed16SGreg Kroah-Hartman 292100b3ed16SGreg Kroah-Hartman static inline void 292200b3ed16SGreg Kroah-Hartman __hfa384x_setreg_noswap(hfa384x_t *hw, UINT16 val, UINT reg); 292300b3ed16SGreg Kroah-Hartman 292400b3ed16SGreg Kroah-Hartman #ifdef REVERSE_ENDIAN 292500b3ed16SGreg Kroah-Hartman #define hfa384x_getreg __hfa384x_getreg_noswap 292600b3ed16SGreg Kroah-Hartman #define hfa384x_setreg __hfa384x_setreg_noswap 292700b3ed16SGreg Kroah-Hartman #define hfa384x_getreg_noswap __hfa384x_getreg 292800b3ed16SGreg Kroah-Hartman #define hfa384x_setreg_noswap __hfa384x_setreg 292900b3ed16SGreg Kroah-Hartman #else 293000b3ed16SGreg Kroah-Hartman #define hfa384x_getreg __hfa384x_getreg 293100b3ed16SGreg Kroah-Hartman #define hfa384x_setreg __hfa384x_setreg 293200b3ed16SGreg Kroah-Hartman #define hfa384x_getreg_noswap __hfa384x_getreg_noswap 293300b3ed16SGreg Kroah-Hartman #define hfa384x_setreg_noswap __hfa384x_setreg_noswap 293400b3ed16SGreg Kroah-Hartman #endif 293500b3ed16SGreg Kroah-Hartman 293600b3ed16SGreg Kroah-Hartman /*---------------------------------------------------------------- 293700b3ed16SGreg Kroah-Hartman * hfa384x_getreg 293800b3ed16SGreg Kroah-Hartman * 293900b3ed16SGreg Kroah-Hartman * Retrieve the value of one of the MAC registers. Done here 294000b3ed16SGreg Kroah-Hartman * because different PRISM2 MAC parts use different buses and such. 294100b3ed16SGreg Kroah-Hartman * NOTE: This function returns the value in HOST ORDER!!!!!! 294200b3ed16SGreg Kroah-Hartman * 294300b3ed16SGreg Kroah-Hartman * Arguments: 294400b3ed16SGreg Kroah-Hartman * hw MAC part structure 294500b3ed16SGreg Kroah-Hartman * reg Register identifier (offset for I/O based i/f) 294600b3ed16SGreg Kroah-Hartman * 294700b3ed16SGreg Kroah-Hartman * Returns: 294800b3ed16SGreg Kroah-Hartman * Value from the register in HOST ORDER!!!! 294900b3ed16SGreg Kroah-Hartman ----------------------------------------------------------------*/ 295000b3ed16SGreg Kroah-Hartman static inline UINT16 295100b3ed16SGreg Kroah-Hartman __hfa384x_getreg(hfa384x_t *hw, UINT reg) 295200b3ed16SGreg Kroah-Hartman { 295300b3ed16SGreg Kroah-Hartman /* printk(KERN_DEBUG "Reading from 0x%0x\n", hw->membase + reg); */ 295400b3ed16SGreg Kroah-Hartman #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX)) 295500b3ed16SGreg Kroah-Hartman return wlan_inw_le16_to_cpu(hw->iobase+reg); 295600b3ed16SGreg Kroah-Hartman #elif (WLAN_HOSTIF == WLAN_PCI) 295700b3ed16SGreg Kroah-Hartman return __le16_to_cpu(readw(hw->membase + reg)); 295800b3ed16SGreg Kroah-Hartman #endif 295900b3ed16SGreg Kroah-Hartman } 296000b3ed16SGreg Kroah-Hartman 296100b3ed16SGreg Kroah-Hartman /*---------------------------------------------------------------- 296200b3ed16SGreg Kroah-Hartman * hfa384x_setreg 296300b3ed16SGreg Kroah-Hartman * 296400b3ed16SGreg Kroah-Hartman * Set the value of one of the MAC registers. Done here 296500b3ed16SGreg Kroah-Hartman * because different PRISM2 MAC parts use different buses and such. 296600b3ed16SGreg Kroah-Hartman * NOTE: This function assumes the value is in HOST ORDER!!!!!! 296700b3ed16SGreg Kroah-Hartman * 296800b3ed16SGreg Kroah-Hartman * Arguments: 296900b3ed16SGreg Kroah-Hartman * hw MAC part structure 297000b3ed16SGreg Kroah-Hartman * val Value, in HOST ORDER!!, to put in the register 297100b3ed16SGreg Kroah-Hartman * reg Register identifier (offset for I/O based i/f) 297200b3ed16SGreg Kroah-Hartman * 297300b3ed16SGreg Kroah-Hartman * Returns: 297400b3ed16SGreg Kroah-Hartman * Nothing 297500b3ed16SGreg Kroah-Hartman ----------------------------------------------------------------*/ 297600b3ed16SGreg Kroah-Hartman static inline void 297700b3ed16SGreg Kroah-Hartman __hfa384x_setreg(hfa384x_t *hw, UINT16 val, UINT reg) 297800b3ed16SGreg Kroah-Hartman { 297900b3ed16SGreg Kroah-Hartman #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX)) 298000b3ed16SGreg Kroah-Hartman wlan_outw_cpu_to_le16( val, hw->iobase + reg); 298100b3ed16SGreg Kroah-Hartman return; 298200b3ed16SGreg Kroah-Hartman #elif (WLAN_HOSTIF == WLAN_PCI) 298300b3ed16SGreg Kroah-Hartman writew(__cpu_to_le16(val), hw->membase + reg); 298400b3ed16SGreg Kroah-Hartman return; 298500b3ed16SGreg Kroah-Hartman #endif 298600b3ed16SGreg Kroah-Hartman } 298700b3ed16SGreg Kroah-Hartman 298800b3ed16SGreg Kroah-Hartman 298900b3ed16SGreg Kroah-Hartman /*---------------------------------------------------------------- 299000b3ed16SGreg Kroah-Hartman * hfa384x_getreg_noswap 299100b3ed16SGreg Kroah-Hartman * 299200b3ed16SGreg Kroah-Hartman * Retrieve the value of one of the MAC registers. Done here 299300b3ed16SGreg Kroah-Hartman * because different PRISM2 MAC parts use different buses and such. 299400b3ed16SGreg Kroah-Hartman * 299500b3ed16SGreg Kroah-Hartman * Arguments: 299600b3ed16SGreg Kroah-Hartman * hw MAC part structure 299700b3ed16SGreg Kroah-Hartman * reg Register identifier (offset for I/O based i/f) 299800b3ed16SGreg Kroah-Hartman * 299900b3ed16SGreg Kroah-Hartman * Returns: 300000b3ed16SGreg Kroah-Hartman * Value from the register. 300100b3ed16SGreg Kroah-Hartman ----------------------------------------------------------------*/ 300200b3ed16SGreg Kroah-Hartman static inline UINT16 300300b3ed16SGreg Kroah-Hartman __hfa384x_getreg_noswap(hfa384x_t *hw, UINT reg) 300400b3ed16SGreg Kroah-Hartman { 300500b3ed16SGreg Kroah-Hartman #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX)) 300600b3ed16SGreg Kroah-Hartman return wlan_inw(hw->iobase+reg); 300700b3ed16SGreg Kroah-Hartman #elif (WLAN_HOSTIF == WLAN_PCI) 300800b3ed16SGreg Kroah-Hartman return readw(hw->membase + reg); 300900b3ed16SGreg Kroah-Hartman #endif 301000b3ed16SGreg Kroah-Hartman } 301100b3ed16SGreg Kroah-Hartman 301200b3ed16SGreg Kroah-Hartman 301300b3ed16SGreg Kroah-Hartman /*---------------------------------------------------------------- 301400b3ed16SGreg Kroah-Hartman * hfa384x_setreg_noswap 301500b3ed16SGreg Kroah-Hartman * 301600b3ed16SGreg Kroah-Hartman * Set the value of one of the MAC registers. Done here 301700b3ed16SGreg Kroah-Hartman * because different PRISM2 MAC parts use different buses and such. 301800b3ed16SGreg Kroah-Hartman * 301900b3ed16SGreg Kroah-Hartman * Arguments: 302000b3ed16SGreg Kroah-Hartman * hw MAC part structure 302100b3ed16SGreg Kroah-Hartman * val Value to put in the register 302200b3ed16SGreg Kroah-Hartman * reg Register identifier (offset for I/O based i/f) 302300b3ed16SGreg Kroah-Hartman * 302400b3ed16SGreg Kroah-Hartman * Returns: 302500b3ed16SGreg Kroah-Hartman * Nothing 302600b3ed16SGreg Kroah-Hartman ----------------------------------------------------------------*/ 302700b3ed16SGreg Kroah-Hartman static inline void 302800b3ed16SGreg Kroah-Hartman __hfa384x_setreg_noswap(hfa384x_t *hw, UINT16 val, UINT reg) 302900b3ed16SGreg Kroah-Hartman { 303000b3ed16SGreg Kroah-Hartman #if ((WLAN_HOSTIF == WLAN_PCMCIA) || (WLAN_HOSTIF == WLAN_PLX)) 303100b3ed16SGreg Kroah-Hartman wlan_outw( val, hw->iobase + reg); 303200b3ed16SGreg Kroah-Hartman return; 303300b3ed16SGreg Kroah-Hartman #elif (WLAN_HOSTIF == WLAN_PCI) 303400b3ed16SGreg Kroah-Hartman writew(val, hw->membase + reg); 303500b3ed16SGreg Kroah-Hartman return; 303600b3ed16SGreg Kroah-Hartman #endif 303700b3ed16SGreg Kroah-Hartman } 303800b3ed16SGreg Kroah-Hartman 303900b3ed16SGreg Kroah-Hartman 304000b3ed16SGreg Kroah-Hartman static inline void hfa384x_events_all(hfa384x_t *hw) 304100b3ed16SGreg Kroah-Hartman { 304200b3ed16SGreg Kroah-Hartman hfa384x_setreg(hw, 304300b3ed16SGreg Kroah-Hartman HFA384x_INT_NORMAL 304400b3ed16SGreg Kroah-Hartman #ifdef CMD_IRQ 304500b3ed16SGreg Kroah-Hartman | HFA384x_INTEN_CMD_SET(1) 304600b3ed16SGreg Kroah-Hartman #endif 304700b3ed16SGreg Kroah-Hartman , 304800b3ed16SGreg Kroah-Hartman HFA384x_INTEN); 304900b3ed16SGreg Kroah-Hartman 305000b3ed16SGreg Kroah-Hartman } 305100b3ed16SGreg Kroah-Hartman 305200b3ed16SGreg Kroah-Hartman static inline void hfa384x_events_nobap(hfa384x_t *hw) 305300b3ed16SGreg Kroah-Hartman { 305400b3ed16SGreg Kroah-Hartman hfa384x_setreg(hw, 305500b3ed16SGreg Kroah-Hartman (HFA384x_INT_NORMAL & ~HFA384x_INT_BAP_OP) 305600b3ed16SGreg Kroah-Hartman #ifdef CMD_IRQ 305700b3ed16SGreg Kroah-Hartman | HFA384x_INTEN_CMD_SET(1) 305800b3ed16SGreg Kroah-Hartman #endif 305900b3ed16SGreg Kroah-Hartman , 306000b3ed16SGreg Kroah-Hartman HFA384x_INTEN); 306100b3ed16SGreg Kroah-Hartman 306200b3ed16SGreg Kroah-Hartman } 306300b3ed16SGreg Kroah-Hartman 306400b3ed16SGreg Kroah-Hartman #endif /* WLAN_HOSTIF != WLAN_USB */ 306500b3ed16SGreg Kroah-Hartman #endif /* __KERNEL__ */ 306600b3ed16SGreg Kroah-Hartman 306700b3ed16SGreg Kroah-Hartman #endif /* _HFA384x_H */ 3068