xref: /onnv-gate/usr/src/uts/common/io/uath/uath_reg.h (revision 10128:648d338d133c)
1*10128SFei.Feng@Sun.COM /*
2*10128SFei.Feng@Sun.COM  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3*10128SFei.Feng@Sun.COM  * Use is subject to license terms.
4*10128SFei.Feng@Sun.COM  */
5*10128SFei.Feng@Sun.COM 
6*10128SFei.Feng@Sun.COM /*
7*10128SFei.Feng@Sun.COM  * Copyright (c) 2006
8*10128SFei.Feng@Sun.COM  *	Damien Bergamini <damien.bergamini@free.fr>
9*10128SFei.Feng@Sun.COM  * Copyright (c) 2006 Sam Leffler, Errno Consulting
10*10128SFei.Feng@Sun.COM  *
11*10128SFei.Feng@Sun.COM  * Permission to use, copy, modify, and distribute this software for any
12*10128SFei.Feng@Sun.COM  * purpose with or without fee is hereby granted, provided that the above
13*10128SFei.Feng@Sun.COM  * copyright notice and this permission notice appear in all copies.
14*10128SFei.Feng@Sun.COM  *
15*10128SFei.Feng@Sun.COM  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16*10128SFei.Feng@Sun.COM  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17*10128SFei.Feng@Sun.COM  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18*10128SFei.Feng@Sun.COM  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19*10128SFei.Feng@Sun.COM  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
20*10128SFei.Feng@Sun.COM  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
21*10128SFei.Feng@Sun.COM  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22*10128SFei.Feng@Sun.COM  */
23*10128SFei.Feng@Sun.COM 
24*10128SFei.Feng@Sun.COM 
25*10128SFei.Feng@Sun.COM #ifndef _UATH_REG_H
26*10128SFei.Feng@Sun.COM #define	_UATH_REG_H
27*10128SFei.Feng@Sun.COM 
28*10128SFei.Feng@Sun.COM #ifdef __cplusplus
29*10128SFei.Feng@Sun.COM extern "C" {
30*10128SFei.Feng@Sun.COM #endif
31*10128SFei.Feng@Sun.COM 
32*10128SFei.Feng@Sun.COM /* Location in the endpoint descriptor tree used by the device */
33*10128SFei.Feng@Sun.COM #define	UATH_CONFIG_NO		1
34*10128SFei.Feng@Sun.COM #define	UATH_IFACE_INDEX	0
35*10128SFei.Feng@Sun.COM #define	UATH_ALT_IF_INDEX	0
36*10128SFei.Feng@Sun.COM 
37*10128SFei.Feng@Sun.COM /* all fields are big endian */
38*10128SFei.Feng@Sun.COM #pragma pack(1)
39*10128SFei.Feng@Sun.COM struct uath_fwblock {
40*10128SFei.Feng@Sun.COM 	uint32_t	flags;
41*10128SFei.Feng@Sun.COM #define	UATH_WRITE_BLOCK	(1 << 4)
42*10128SFei.Feng@Sun.COM 	uint32_t	len;
43*10128SFei.Feng@Sun.COM #define	UATH_MAX_FWBLOCK_SIZE	2048
44*10128SFei.Feng@Sun.COM 	uint32_t	total;
45*10128SFei.Feng@Sun.COM 	uint32_t	remain;
46*10128SFei.Feng@Sun.COM 	uint32_t	rxtotal;
47*10128SFei.Feng@Sun.COM 	uint32_t	pad[123];
48*10128SFei.Feng@Sun.COM };
49*10128SFei.Feng@Sun.COM #pragma pack()
50*10128SFei.Feng@Sun.COM 
51*10128SFei.Feng@Sun.COM #define	UATH_MAX_CMDSZ		512
52*10128SFei.Feng@Sun.COM 
53*10128SFei.Feng@Sun.COM /*
54*10128SFei.Feng@Sun.COM  * Messages are passed in Target Endianness.  All fixed-size
55*10128SFei.Feng@Sun.COM  * fields of a WDS Control Message are treated as 32-bit
56*10128SFei.Feng@Sun.COM  * values and Control Msgs are guaranteed to be 32-bit aligned.
57*10128SFei.Feng@Sun.COM  *
58*10128SFei.Feng@Sun.COM  * The format of a WDS Control Message is as follows:
59*10128SFei.Feng@Sun.COM  *    Message Length	32 bits
60*10128SFei.Feng@Sun.COM  *    Message Opcode	32 bits
61*10128SFei.Feng@Sun.COM  *    Message ID	32 bits
62*10128SFei.Feng@Sun.COM  *    parameter 1
63*10128SFei.Feng@Sun.COM  *    parameter 2
64*10128SFei.Feng@Sun.COM  *       ...
65*10128SFei.Feng@Sun.COM  *
66*10128SFei.Feng@Sun.COM  * A variable-length parameter, or a parmeter that is larger than
67*10128SFei.Feng@Sun.COM  * 32 bits is passed as <length, data> pair, where length is a
68*10128SFei.Feng@Sun.COM  * 32-bit quantity and data is padded to 32 bits.
69*10128SFei.Feng@Sun.COM  */
70*10128SFei.Feng@Sun.COM #pragma pack(1)
71*10128SFei.Feng@Sun.COM struct uath_cmd_hdr {
72*10128SFei.Feng@Sun.COM 	uint32_t	len;		/* msg length including header */
73*10128SFei.Feng@Sun.COM 	uint32_t	code;		/* operation code */
74*10128SFei.Feng@Sun.COM /* NB: these are defined for rev 1.5 firmware; rev 1.6 is different */
75*10128SFei.Feng@Sun.COM /* messages from Host -> Target */
76*10128SFei.Feng@Sun.COM #define	WDCMSG_HOST_AVAILABLE		0x01
77*10128SFei.Feng@Sun.COM #define	WDCMSG_BIND			0x02
78*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_RESET		0x03
79*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_GET_CAPABILITY	0x04
80*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_SET_CONFIG	0x05
81*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_GET_STATUS	0x06
82*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_GET_STATS		0x07
83*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_START		0x08
84*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_STOP		0x09
85*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_ENABLE		0x0a
86*10128SFei.Feng@Sun.COM #define	WDCMSG_TARGET_DISABLE		0x0b
87*10128SFei.Feng@Sun.COM #define	WDCMSG_CREATE_CONNECTION	0x0c
88*10128SFei.Feng@Sun.COM #define	WDCMSG_UPDATE_CONNECT_ATTR	0x0d
89*10128SFei.Feng@Sun.COM #define	WDCMSG_DELETE_CONNECT		0x0e
90*10128SFei.Feng@Sun.COM #define	WDCMSG_SEND			0x0f
91*10128SFei.Feng@Sun.COM #define	WDCMSG_FLUSH			0x10
92*10128SFei.Feng@Sun.COM /* messages from Target -> Host */
93*10128SFei.Feng@Sun.COM #define	WDCMSG_STATS_UPDATE		0x11
94*10128SFei.Feng@Sun.COM #define	WDCMSG_BMISS			0x12
95*10128SFei.Feng@Sun.COM #define	WDCMSG_DEVICE_AVAIL		0x13
96*10128SFei.Feng@Sun.COM #define	WDCMSG_SEND_COMPLETE		0x14
97*10128SFei.Feng@Sun.COM #define	WDCMSG_DATA_AVAIL		0x15
98*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_PWR_MODE		0x16
99*10128SFei.Feng@Sun.COM #define	WDCMSG_BMISS_ACK		0x17
100*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_LED_STEADY		0x18
101*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_LED_BLINK		0x19
102*10128SFei.Feng@Sun.COM /* more messages */
103*10128SFei.Feng@Sun.COM #define	WDCMSG_SETUP_BEACON_DESC	0x1a
104*10128SFei.Feng@Sun.COM #define	WDCMSG_BEACON_INIT		0x1b
105*10128SFei.Feng@Sun.COM #define	WDCMSG_RESET_KEY_CACHE		0x1c
106*10128SFei.Feng@Sun.COM #define	WDCMSG_RESET_KEY_CACHE_ENTRY	0x1d
107*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_KEY_CACHE_ENTRY	0x1e
108*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_DECOMP_MASK		0x1f
109*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_REGULATORY_DOMAIN	0x20
110*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_LED_STATE		0x21
111*10128SFei.Feng@Sun.COM #define	WDCMSG_WRITE_ASSOCID		0x22
112*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_STA_BEACON_TIMERS	0x23
113*10128SFei.Feng@Sun.COM #define	WDCMSG_GET_TSF			0x24
114*10128SFei.Feng@Sun.COM #define	WDCMSG_RESET_TSF		0x25
115*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_ADHOC_MODE		0x26
116*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_BASIC_RATE		0x27
117*10128SFei.Feng@Sun.COM #define	WDCMSG_MIB_CONTROL		0x28
118*10128SFei.Feng@Sun.COM #define	WDCMSG_GET_CHANNEL_DATA		0x29
119*10128SFei.Feng@Sun.COM #define	WDCMSG_GET_CUR_RSSI		0x2a
120*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_ANTENNA_SWITCH	0x2b
121*10128SFei.Feng@Sun.COM #define	WDCMSG_USE_SHORT_SLOT_TIME	0x2f
122*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_POWER_MODE		0x30
123*10128SFei.Feng@Sun.COM #define	WDCMSG_SETUP_PSPOLL_DESC	0x31
124*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_RX_MULTICAST_FILTER	0x32
125*10128SFei.Feng@Sun.COM #define	WDCMSG_RX_FILTER		0x33
126*10128SFei.Feng@Sun.COM #define	WDCMSG_PER_CALIBRATION		0x34
127*10128SFei.Feng@Sun.COM #define	WDCMSG_RESET			0x35
128*10128SFei.Feng@Sun.COM #define	WDCMSG_DISABLE			0x36
129*10128SFei.Feng@Sun.COM #define	WDCMSG_PHY_DISABLE		0x37
130*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_TX_POWER_LIMIT	0x38
131*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_TX_QUEUE_PARAMS	0x39
132*10128SFei.Feng@Sun.COM #define	WDCMSG_SETUP_TX_QUEUE		0x3a
133*10128SFei.Feng@Sun.COM #define	WDCMSG_RELEASE_TX_QUEUE		0x3b
134*10128SFei.Feng@Sun.COM #define	WDCMSG_SET_DEFAULT_KEY		0x43
135*10128SFei.Feng@Sun.COM 	uint32_t	msgid;		/* msg id (supplied by host) */
136*10128SFei.Feng@Sun.COM 	uint32_t	magic;		/* response desired/target status */
137*10128SFei.Feng@Sun.COM 	uint32_t	debug[4];	/* debug data area */
138*10128SFei.Feng@Sun.COM 	/* msg data follows */
139*10128SFei.Feng@Sun.COM };
140*10128SFei.Feng@Sun.COM #pragma pack()
141*10128SFei.Feng@Sun.COM 
142*10128SFei.Feng@Sun.COM #define	UATH_RX_DUMMYSIZE		4
143*10128SFei.Feng@Sun.COM 
144*10128SFei.Feng@Sun.COM #pragma pack(1)
145*10128SFei.Feng@Sun.COM struct uath_chunk {
146*10128SFei.Feng@Sun.COM 	uint8_t		seqnum;		/* sequence number for ordering */
147*10128SFei.Feng@Sun.COM 	uint8_t		flags;
148*10128SFei.Feng@Sun.COM #define	UATH_CFLAGS_FINAL	0x01	/* final chunk of a msg */
149*10128SFei.Feng@Sun.COM #define	UATH_CFLAGS_RXMSG	0x02	/* chunk contains rx completion */
150*10128SFei.Feng@Sun.COM #define	UATH_CFLAGS_DEBUG	0x04	/* for debugging */
151*10128SFei.Feng@Sun.COM 	uint16_t	length;		/* chunk size in bytes */
152*10128SFei.Feng@Sun.COM 	/* chunk data follows */
153*10128SFei.Feng@Sun.COM };
154*10128SFei.Feng@Sun.COM #pragma pack()
155*10128SFei.Feng@Sun.COM 
156*10128SFei.Feng@Sun.COM /*
157*10128SFei.Feng@Sun.COM  * Message format for a WDCMSG_DATA_AVAIL message from Target to Host.
158*10128SFei.Feng@Sun.COM  */
159*10128SFei.Feng@Sun.COM #pragma pack(1)
160*10128SFei.Feng@Sun.COM struct uath_rx_desc {
161*10128SFei.Feng@Sun.COM 	uint32_t	len;		/* msg length including header */
162*10128SFei.Feng@Sun.COM 	uint32_t	code;		/* WDCMSG_DATA_AVAIL */
163*10128SFei.Feng@Sun.COM 	uint32_t	gennum;		/* generation number */
164*10128SFei.Feng@Sun.COM 	uint32_t	status;		/* start of RECEIVE_INFO */
165*10128SFei.Feng@Sun.COM #define	UATH_STATUS_OK			0
166*10128SFei.Feng@Sun.COM #define	UATH_STATUS_STOP_IN_PROGRESS	1
167*10128SFei.Feng@Sun.COM #define	UATH_STATUS_CRC_ERR		2
168*10128SFei.Feng@Sun.COM #define	UATH_STATUS_PHY_ERR		3
169*10128SFei.Feng@Sun.COM #define	UATH_STATUS_DECRYPT_CRC_ERR	4
170*10128SFei.Feng@Sun.COM #define	UATH_STATUS_DECRYPT_MIC_ERR	5
171*10128SFei.Feng@Sun.COM #define	UATH_STATUS_DECOMP_ERR		6
172*10128SFei.Feng@Sun.COM #define	UATH_STATUS_KEY_ERR		7
173*10128SFei.Feng@Sun.COM #define	UATH_STATUS_ERR			8
174*10128SFei.Feng@Sun.COM 	uint32_t	tstamp_low;	/* low-order 32-bits of rx timestamp */
175*10128SFei.Feng@Sun.COM 	uint32_t	tstamp_high;	/* high-order 32-bits of rx timestamp */
176*10128SFei.Feng@Sun.COM 	uint32_t	framelen;	/* frame length */
177*10128SFei.Feng@Sun.COM 	uint32_t	rate;		/* rx rate code */
178*10128SFei.Feng@Sun.COM 	uint32_t	antenna;
179*10128SFei.Feng@Sun.COM 	int32_t		rssi;
180*10128SFei.Feng@Sun.COM 	uint32_t	channel;
181*10128SFei.Feng@Sun.COM 	uint32_t	phyerror;
182*10128SFei.Feng@Sun.COM 	uint32_t	connix;		/* key table ix for bss traffic */
183*10128SFei.Feng@Sun.COM 	uint32_t	decrypterror;
184*10128SFei.Feng@Sun.COM 	uint32_t	keycachemiss;
185*10128SFei.Feng@Sun.COM 	uint32_t	pad;		/* XXX? */
186*10128SFei.Feng@Sun.COM };
187*10128SFei.Feng@Sun.COM #pragma pack()
188*10128SFei.Feng@Sun.COM 
189*10128SFei.Feng@Sun.COM #pragma pack(1)
190*10128SFei.Feng@Sun.COM struct uath_tx_desc {
191*10128SFei.Feng@Sun.COM 	uint32_t	msglen;
192*10128SFei.Feng@Sun.COM 	uint32_t	msgid;		/* msg id (supplied by host) */
193*10128SFei.Feng@Sun.COM 	uint32_t	type;		/* opcode: WDMSG_SEND or WDCMSG_FLUSH */
194*10128SFei.Feng@Sun.COM 	uint32_t	txqid;		/* tx queue id and flags */
195*10128SFei.Feng@Sun.COM #define	UATH_TXQID_MASK		0x0f
196*10128SFei.Feng@Sun.COM #define	UATH_TXQID_MINRATE	0x10	/* use min tx rate */
197*10128SFei.Feng@Sun.COM #define	UATH_TXQID_FF		0x20	/* content is fast frame */
198*10128SFei.Feng@Sun.COM 	uint32_t	connid;		/* tx connection id */
199*10128SFei.Feng@Sun.COM #define	UATH_ID_INVALID	0xffffffff	/* for sending prior to connection */
200*10128SFei.Feng@Sun.COM 	uint32_t	flags;		/* non-zero if response desired */
201*10128SFei.Feng@Sun.COM #define	UATH_TX_NOTIFY	(1 << 24)	/* f/w will send a UATH_NOTIF_TX */
202*10128SFei.Feng@Sun.COM 	uint32_t	buflen;		/* payload length */
203*10128SFei.Feng@Sun.COM };
204*10128SFei.Feng@Sun.COM #pragma pack()
205*10128SFei.Feng@Sun.COM 
206*10128SFei.Feng@Sun.COM #pragma pack(1)
207*10128SFei.Feng@Sun.COM struct uath_cmd_host_available {
208*10128SFei.Feng@Sun.COM 	uint32_t	sw_ver_major;
209*10128SFei.Feng@Sun.COM 	uint32_t	sw_ver_minor;
210*10128SFei.Feng@Sun.COM 	uint32_t	sw_ver_patch;
211*10128SFei.Feng@Sun.COM 	uint32_t	sw_ver_build;
212*10128SFei.Feng@Sun.COM };
213*10128SFei.Feng@Sun.COM #pragma pack()
214*10128SFei.Feng@Sun.COM 
215*10128SFei.Feng@Sun.COM #define	ATH_SW_VER_MAJOR	1
216*10128SFei.Feng@Sun.COM #define	ATH_SW_VER_MINOR	5
217*10128SFei.Feng@Sun.COM #define	ATH_SW_VER_PATCH	0
218*10128SFei.Feng@Sun.COM #define	ATH_SW_VER_BUILD	9999
219*10128SFei.Feng@Sun.COM 
220*10128SFei.Feng@Sun.COM 
221*10128SFei.Feng@Sun.COM /* structure for command UATH_CMD_WRITE_MAC */
222*10128SFei.Feng@Sun.COM #pragma pack(1)
223*10128SFei.Feng@Sun.COM struct uath_write_mac {
224*10128SFei.Feng@Sun.COM 	uint32_t	reg;
225*10128SFei.Feng@Sun.COM 	uint32_t	len;
226*10128SFei.Feng@Sun.COM 	uint8_t		data[32];
227*10128SFei.Feng@Sun.COM };
228*10128SFei.Feng@Sun.COM #pragma pack()
229*10128SFei.Feng@Sun.COM 
230*10128SFei.Feng@Sun.COM #pragma pack(1)
231*10128SFei.Feng@Sun.COM struct uath_cmd_ledsteady {		/* WDCMSG_SET_LED_STEADY */
232*10128SFei.Feng@Sun.COM 	uint32_t	lednum;
233*10128SFei.Feng@Sun.COM #define	UATH_LED_LINK		0
234*10128SFei.Feng@Sun.COM #define	UATH_LED_ACTIVITY	1
235*10128SFei.Feng@Sun.COM 	uint32_t	ledmode;
236*10128SFei.Feng@Sun.COM #define	UATH_LED_OFF	0
237*10128SFei.Feng@Sun.COM #define	UATH_LED_ON	1
238*10128SFei.Feng@Sun.COM };
239*10128SFei.Feng@Sun.COM #pragma pack()
240*10128SFei.Feng@Sun.COM 
241*10128SFei.Feng@Sun.COM #pragma pack(1)
242*10128SFei.Feng@Sun.COM struct uath_cmd_ledblink {		/* WDCMSG_SET_LED_BLINK */
243*10128SFei.Feng@Sun.COM 	uint32_t	lednum;
244*10128SFei.Feng@Sun.COM 	uint32_t	ledmode;
245*10128SFei.Feng@Sun.COM 	uint32_t	blinkrate;
246*10128SFei.Feng@Sun.COM 	uint32_t	slowmode;
247*10128SFei.Feng@Sun.COM };
248*10128SFei.Feng@Sun.COM #pragma pack()
249*10128SFei.Feng@Sun.COM 
250*10128SFei.Feng@Sun.COM /* structure for command WDCMSG_RESET */
251*10128SFei.Feng@Sun.COM #pragma pack(1)
252*10128SFei.Feng@Sun.COM struct uath_cmd_reset {
253*10128SFei.Feng@Sun.COM 	uint32_t	flags;		/* channel flags */
254*10128SFei.Feng@Sun.COM #define	UATH_CHAN_TURBO	0x0100
255*10128SFei.Feng@Sun.COM #define	UATH_CHAN_CCK	0x0200
256*10128SFei.Feng@Sun.COM #define	UATH_CHAN_OFDM	0x0400
257*10128SFei.Feng@Sun.COM #define	UATH_CHAN_2GHZ	0x1000
258*10128SFei.Feng@Sun.COM #define	UATH_CHAN_5GHZ	0x2000
259*10128SFei.Feng@Sun.COM 	uint32_t	freq;		/* channel frequency */
260*10128SFei.Feng@Sun.COM 	uint32_t	maxrdpower;
261*10128SFei.Feng@Sun.COM 	uint32_t	cfgctl;
262*10128SFei.Feng@Sun.COM 	uint32_t	twiceantennareduction;
263*10128SFei.Feng@Sun.COM 	uint32_t	channelchange;
264*10128SFei.Feng@Sun.COM 	uint32_t	keeprccontent;
265*10128SFei.Feng@Sun.COM };
266*10128SFei.Feng@Sun.COM #pragma pack()
267*10128SFei.Feng@Sun.COM 
268*10128SFei.Feng@Sun.COM #pragma pack(1)
269*10128SFei.Feng@Sun.COM struct uath_cmd_rateset {
270*10128SFei.Feng@Sun.COM 	uint8_t		length;
271*10128SFei.Feng@Sun.COM #define	UATH_MAX_NRATES	32
272*10128SFei.Feng@Sun.COM 	uint8_t		set[UATH_MAX_NRATES];
273*10128SFei.Feng@Sun.COM };
274*10128SFei.Feng@Sun.COM #pragma pack()
275*10128SFei.Feng@Sun.COM 
276*10128SFei.Feng@Sun.COM #pragma pack(1)
277*10128SFei.Feng@Sun.COM /* structure for command WDCMSG_SET_BASIC_RATE */
278*10128SFei.Feng@Sun.COM struct uath_cmd_rates {
279*10128SFei.Feng@Sun.COM 	uint32_t	connid;
280*10128SFei.Feng@Sun.COM 	uint32_t	keeprccontent;
281*10128SFei.Feng@Sun.COM 	uint32_t	size;
282*10128SFei.Feng@Sun.COM 	struct uath_cmd_rateset rateset;
283*10128SFei.Feng@Sun.COM };
284*10128SFei.Feng@Sun.COM #pragma pack()
285*10128SFei.Feng@Sun.COM 
286*10128SFei.Feng@Sun.COM enum {
287*10128SFei.Feng@Sun.COM 	WLAN_MODE_NONE = 0,
288*10128SFei.Feng@Sun.COM 	WLAN_MODE_11b,
289*10128SFei.Feng@Sun.COM 	WLAN_MODE_11a,
290*10128SFei.Feng@Sun.COM 	WLAN_MODE_11g,
291*10128SFei.Feng@Sun.COM 	WLAN_MODE_11a_TURBO,
292*10128SFei.Feng@Sun.COM 	WLAN_MODE_11g_TURBO,
293*10128SFei.Feng@Sun.COM 	WLAN_MODE_11a_TURBO_PRIME,
294*10128SFei.Feng@Sun.COM 	WLAN_MODE_11g_TURBO_PRIME,
295*10128SFei.Feng@Sun.COM 	WLAN_MODE_11a_XR,
296*10128SFei.Feng@Sun.COM 	WLAN_MODE_11g_XR,
297*10128SFei.Feng@Sun.COM };
298*10128SFei.Feng@Sun.COM 
299*10128SFei.Feng@Sun.COM #pragma pack(1)
300*10128SFei.Feng@Sun.COM struct uath_cmd_connection_attr {
301*10128SFei.Feng@Sun.COM 	uint32_t	longpreambleonly;
302*10128SFei.Feng@Sun.COM 	struct uath_cmd_rateset	rateset;
303*10128SFei.Feng@Sun.COM 	uint32_t	wlanmode;
304*10128SFei.Feng@Sun.COM };
305*10128SFei.Feng@Sun.COM #pragma pack()
306*10128SFei.Feng@Sun.COM 
307*10128SFei.Feng@Sun.COM #pragma pack(1)
308*10128SFei.Feng@Sun.COM /* structure for command WDCMSG_CREATE_CONNECTION */
309*10128SFei.Feng@Sun.COM struct uath_cmd_create_connection {
310*10128SFei.Feng@Sun.COM 	uint32_t	connid;
311*10128SFei.Feng@Sun.COM 	uint32_t	bssid;
312*10128SFei.Feng@Sun.COM 	uint32_t	size;
313*10128SFei.Feng@Sun.COM 	struct uath_cmd_connection_attr	connattr;
314*10128SFei.Feng@Sun.COM };
315*10128SFei.Feng@Sun.COM #pragma pack()
316*10128SFei.Feng@Sun.COM 
317*10128SFei.Feng@Sun.COM #pragma pack(1)
318*10128SFei.Feng@Sun.COM struct uath_cmd_txq_attr {
319*10128SFei.Feng@Sun.COM 	uint32_t	priority;
320*10128SFei.Feng@Sun.COM 	uint32_t	aifs;
321*10128SFei.Feng@Sun.COM 	uint32_t	logcwmin;
322*10128SFei.Feng@Sun.COM 	uint32_t	logcwmax;
323*10128SFei.Feng@Sun.COM 	uint32_t	bursttime;
324*10128SFei.Feng@Sun.COM 	uint32_t	mode;
325*10128SFei.Feng@Sun.COM 	uint32_t	qflags;
326*10128SFei.Feng@Sun.COM };
327*10128SFei.Feng@Sun.COM #pragma pack()
328*10128SFei.Feng@Sun.COM 
329*10128SFei.Feng@Sun.COM #pragma pack(1)
330*10128SFei.Feng@Sun.COM struct uath_cmd_txq_setup {		/* WDCMSG_SETUP_TX_QUEUE */
331*10128SFei.Feng@Sun.COM 	uint32_t	qid;
332*10128SFei.Feng@Sun.COM 	uint32_t	len;
333*10128SFei.Feng@Sun.COM 	struct uath_cmd_txq_attr attr;
334*10128SFei.Feng@Sun.COM };
335*10128SFei.Feng@Sun.COM #pragma pack()
336*10128SFei.Feng@Sun.COM 
337*10128SFei.Feng@Sun.COM #pragma pack(1)
338*10128SFei.Feng@Sun.COM struct uath_cmd_rx_filter {		/* WDCMSG_RX_FILTER */
339*10128SFei.Feng@Sun.COM 	uint32_t	bits;
340*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_UCAST		0x00000001
341*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_MCAST		0x00000002
342*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_BCAST		0x00000004
343*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_CONTROL		0x00000008
344*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_BEACON		0x00000010	/* beacon frames */
345*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_PROM		0x00000020	/* promiscuous mode */
346*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_PHY_ERR		0x00000040	/* phy errors */
347*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_PHY_RADAR	0x00000080	/* radar phy errors */
348*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_XR_POOL		0x00000400	/* XR group polls */
349*10128SFei.Feng@Sun.COM #define	UATH_FILTER_RX_PROBE_REQ	0x00000800
350*10128SFei.Feng@Sun.COM 	uint32_t	op;
351*10128SFei.Feng@Sun.COM #define	UATH_FILTER_OP_INIT		0x0
352*10128SFei.Feng@Sun.COM #define	UATH_FILTER_OP_SET		0x1
353*10128SFei.Feng@Sun.COM #define	UATH_FILTER_OP_CLEAR		0x2
354*10128SFei.Feng@Sun.COM #define	UATH_FILTER_OP_TEMP		0x3
355*10128SFei.Feng@Sun.COM #define	UATH_FILTER_OP_RESTORE		0x4
356*10128SFei.Feng@Sun.COM };
357*10128SFei.Feng@Sun.COM #pragma pack()
358*10128SFei.Feng@Sun.COM 
359*10128SFei.Feng@Sun.COM #pragma pack(1)
360*10128SFei.Feng@Sun.COM struct uath_cmd_set_associd {		/* WDCMSG_WRITE_ASSOCID */
361*10128SFei.Feng@Sun.COM 	uint32_t	defaultrateix;
362*10128SFei.Feng@Sun.COM 	uint32_t	associd;
363*10128SFei.Feng@Sun.COM 	uint32_t	timoffset;
364*10128SFei.Feng@Sun.COM 	uint32_t	turboprime;
365*10128SFei.Feng@Sun.COM 	uint32_t	bssid[2];
366*10128SFei.Feng@Sun.COM };
367*10128SFei.Feng@Sun.COM #pragma pack()
368*10128SFei.Feng@Sun.COM 
369*10128SFei.Feng@Sun.COM enum {
370*10128SFei.Feng@Sun.COM 	CFG_NONE,			/* Sentinal to indicate "no config" */
371*10128SFei.Feng@Sun.COM 	CFG_REG_DOMAIN,			/* Regulatory Domain */
372*10128SFei.Feng@Sun.COM 	CFG_RATE_CONTROL_ENABLE,
373*10128SFei.Feng@Sun.COM 	CFG_DEF_XMIT_DATA_RATE,		/* NB: if rate control is not enabled */
374*10128SFei.Feng@Sun.COM 	CFG_HW_TX_RETRIES,
375*10128SFei.Feng@Sun.COM 	CFG_SW_TX_RETRIES,
376*10128SFei.Feng@Sun.COM 	CFG_SLOW_CLOCK_ENABLE,
377*10128SFei.Feng@Sun.COM 	CFG_COMP_PROC,
378*10128SFei.Feng@Sun.COM 	CFG_USER_RTS_THRESHOLD,
379*10128SFei.Feng@Sun.COM 	CFG_XR2NORM_RATE_THRESHOLD,
380*10128SFei.Feng@Sun.COM 	CFG_XRMODE_SWITCH_COUNT,
381*10128SFei.Feng@Sun.COM 	CFG_PROTECTION_TYPE,
382*10128SFei.Feng@Sun.COM 	CFG_BURST_SEQ_THRESHOLD,
383*10128SFei.Feng@Sun.COM 	CFG_ABOLT,
384*10128SFei.Feng@Sun.COM 	CFG_IQ_LOG_COUNT_MAX,
385*10128SFei.Feng@Sun.COM 	CFG_MODE_CTS,
386*10128SFei.Feng@Sun.COM 	CFG_WME_ENABLED,
387*10128SFei.Feng@Sun.COM 	CFG_GPRS_CBR_PERIOD,
388*10128SFei.Feng@Sun.COM 	CFG_SERVICE_TYPE,
389*10128SFei.Feng@Sun.COM 	/* MAC Address to use.  Overrides EEPROM */
390*10128SFei.Feng@Sun.COM 	CFG_MAC_ADDR,
391*10128SFei.Feng@Sun.COM 	CFG_DEBUG_EAR,
392*10128SFei.Feng@Sun.COM 	CFG_INIT_REGS,
393*10128SFei.Feng@Sun.COM 	/* An ID for use in error & debug messages */
394*10128SFei.Feng@Sun.COM 	CFG_DEBUG_ID,
395*10128SFei.Feng@Sun.COM 	CFG_COMP_WIN_SZ,
396*10128SFei.Feng@Sun.COM 	CFG_DIVERSITY_CTL,
397*10128SFei.Feng@Sun.COM 	CFG_TP_SCALE,
398*10128SFei.Feng@Sun.COM 	CFG_TPC_HALF_DBM5,
399*10128SFei.Feng@Sun.COM 	CFG_TPC_HALF_DBM2,
400*10128SFei.Feng@Sun.COM 	CFG_OVERRD_TX_POWER,
401*10128SFei.Feng@Sun.COM 	CFG_USE_32KHZ_CLOCK,
402*10128SFei.Feng@Sun.COM 	CFG_GMODE_PROTECTION,
403*10128SFei.Feng@Sun.COM 	CFG_GMODE_PROTECT_RATE_INDEX,
404*10128SFei.Feng@Sun.COM 	CFG_GMODE_NON_ERP_PREAMBLE,
405*10128SFei.Feng@Sun.COM 	CFG_WDC_TRANSPORT_CHUNK_SIZE,
406*10128SFei.Feng@Sun.COM };
407*10128SFei.Feng@Sun.COM 
408*10128SFei.Feng@Sun.COM enum {
409*10128SFei.Feng@Sun.COM 	/* Sentinal to indicate "no capability" */
410*10128SFei.Feng@Sun.COM 	CAP_NONE,
411*10128SFei.Feng@Sun.COM 	CAP_ALL,			/* ALL capabilities */
412*10128SFei.Feng@Sun.COM 	CAP_TARGET_VERSION,
413*10128SFei.Feng@Sun.COM 	CAP_TARGET_REVISION,
414*10128SFei.Feng@Sun.COM 	CAP_MAC_VERSION,
415*10128SFei.Feng@Sun.COM 	CAP_MAC_REVISION,
416*10128SFei.Feng@Sun.COM 	CAP_PHY_REVISION,
417*10128SFei.Feng@Sun.COM 	CAP_ANALOG_5GHz_REVISION,
418*10128SFei.Feng@Sun.COM 	CAP_ANALOG_2GHz_REVISION,
419*10128SFei.Feng@Sun.COM 	/* Target supports WDC message debug features */
420*10128SFei.Feng@Sun.COM 	CAP_DEBUG_WDCMSG_SUPPORT,
421*10128SFei.Feng@Sun.COM 
422*10128SFei.Feng@Sun.COM 	CAP_REG_DOMAIN,
423*10128SFei.Feng@Sun.COM 	CAP_COUNTRY_CODE,
424*10128SFei.Feng@Sun.COM 	CAP_REG_CAP_BITS,
425*10128SFei.Feng@Sun.COM 
426*10128SFei.Feng@Sun.COM 	CAP_WIRELESS_MODES,
427*10128SFei.Feng@Sun.COM 	CAP_CHAN_SPREAD_SUPPORT,
428*10128SFei.Feng@Sun.COM 	CAP_SLEEP_AFTER_BEACON_BROKEN,
429*10128SFei.Feng@Sun.COM 	CAP_COMPRESS_SUPPORT,
430*10128SFei.Feng@Sun.COM 	CAP_BURST_SUPPORT,
431*10128SFei.Feng@Sun.COM 	CAP_FAST_FRAMES_SUPPORT,
432*10128SFei.Feng@Sun.COM 	CAP_CHAP_TUNING_SUPPORT,
433*10128SFei.Feng@Sun.COM 	CAP_TURBOG_SUPPORT,
434*10128SFei.Feng@Sun.COM 	CAP_TURBO_PRIME_SUPPORT,
435*10128SFei.Feng@Sun.COM 	CAP_DEVICE_TYPE,
436*10128SFei.Feng@Sun.COM 	CAP_XR_SUPPORT,
437*10128SFei.Feng@Sun.COM 	CAP_WME_SUPPORT,
438*10128SFei.Feng@Sun.COM 	CAP_TOTAL_QUEUES,
439*10128SFei.Feng@Sun.COM 	CAP_CONNECTION_ID_MAX,		/* Should absorb CAP_KEY_CACHE_SIZE */
440*10128SFei.Feng@Sun.COM 
441*10128SFei.Feng@Sun.COM 	CAP_LOW_5GHZ_CHAN,
442*10128SFei.Feng@Sun.COM 	CAP_HIGH_5GHZ_CHAN,
443*10128SFei.Feng@Sun.COM 	CAP_LOW_2GHZ_CHAN,
444*10128SFei.Feng@Sun.COM 	CAP_HIGH_2GHZ_CHAN,
445*10128SFei.Feng@Sun.COM 
446*10128SFei.Feng@Sun.COM 	CAP_MIC_AES_CCM,
447*10128SFei.Feng@Sun.COM 	CAP_MIC_CKIP,
448*10128SFei.Feng@Sun.COM 	CAP_MIC_TKIP,
449*10128SFei.Feng@Sun.COM 	CAP_MIC_TKIP_WME,
450*10128SFei.Feng@Sun.COM 	CAP_CIPHER_AES_CCM,
451*10128SFei.Feng@Sun.COM 	CAP_CIPHER_CKIP,
452*10128SFei.Feng@Sun.COM 	CAP_CIPHER_TKIP,
453*10128SFei.Feng@Sun.COM 
454*10128SFei.Feng@Sun.COM 	CAP_TWICE_ANTENNAGAIN_5G,
455*10128SFei.Feng@Sun.COM 	CAP_TWICE_ANTENNAGAIN_2G,
456*10128SFei.Feng@Sun.COM };
457*10128SFei.Feng@Sun.COM 
458*10128SFei.Feng@Sun.COM enum {
459*10128SFei.Feng@Sun.COM 	ST_NONE,			/* Sentinal to indicate "no status" */
460*10128SFei.Feng@Sun.COM 	ST_ALL,
461*10128SFei.Feng@Sun.COM 	ST_SERVICE_TYPE,
462*10128SFei.Feng@Sun.COM 	ST_WLAN_MODE,
463*10128SFei.Feng@Sun.COM 	ST_FREQ,
464*10128SFei.Feng@Sun.COM 	ST_BAND,
465*10128SFei.Feng@Sun.COM 	ST_LAST_RSSI,
466*10128SFei.Feng@Sun.COM 	ST_PS_FRAMES_DROPPED,
467*10128SFei.Feng@Sun.COM 	ST_CACHED_DEF_ANT,
468*10128SFei.Feng@Sun.COM 	ST_COUNT_OTHER_RX_ANT,
469*10128SFei.Feng@Sun.COM 	ST_USE_FAST_DIVERSITY,
470*10128SFei.Feng@Sun.COM 	ST_MAC_ADDR,
471*10128SFei.Feng@Sun.COM 	ST_RX_GENERATION_NUM,
472*10128SFei.Feng@Sun.COM 	ST_TX_QUEUE_DEPTH,
473*10128SFei.Feng@Sun.COM 	ST_SERIAL_NUMBER,
474*10128SFei.Feng@Sun.COM 	ST_WDC_TRANSPORT_CHUNK_SIZE,
475*10128SFei.Feng@Sun.COM };
476*10128SFei.Feng@Sun.COM 
477*10128SFei.Feng@Sun.COM enum {
478*10128SFei.Feng@Sun.COM 	TARGET_DEVICE_AWAKE,
479*10128SFei.Feng@Sun.COM 	TARGET_DEVICE_SLEEP,
480*10128SFei.Feng@Sun.COM 	TARGET_DEVICE_PWRDN,
481*10128SFei.Feng@Sun.COM 	TARGET_DEVICE_PWRSAVE,
482*10128SFei.Feng@Sun.COM 	TARGET_DEVICE_SUSPEND,
483*10128SFei.Feng@Sun.COM 	TARGET_DEVICE_RESUME,
484*10128SFei.Feng@Sun.COM };
485*10128SFei.Feng@Sun.COM 
486*10128SFei.Feng@Sun.COM #define	UATH_MAX_TXBUFSZ						\
487*10128SFei.Feng@Sun.COM 	(sizeof (struct uath_chunk) + sizeof (struct uath_tx_desc) +	\
488*10128SFei.Feng@Sun.COM 	IEEE80211_MAX_LEN)
489*10128SFei.Feng@Sun.COM 
490*10128SFei.Feng@Sun.COM /*
491*10128SFei.Feng@Sun.COM  * it's not easy to measure how the chunk is passed into the host if the target
492*10128SFei.Feng@Sun.COM  * passed the multi-chunks so just we check a minimal size we can imagine.
493*10128SFei.Feng@Sun.COM  */
494*10128SFei.Feng@Sun.COM #define	UATH_MIN_RXBUFSZ	(sizeof (struct uath_chunk))
495*10128SFei.Feng@Sun.COM 
496*10128SFei.Feng@Sun.COM #define	USB_VENDOR_ACCTON		0x083a	/* Accton Technology */
497*10128SFei.Feng@Sun.COM #define	USB_VENDOR_ATHEROS		0x168c	/* Atheros Communications */
498*10128SFei.Feng@Sun.COM #define	USB_VENDOR_ATHEROS2		0x0cf3	/* Atheros Communications */
499*10128SFei.Feng@Sun.COM #define	USB_VENDOR_CONCEPTRONIC		0x0d8e	/* Conceptronic */
500*10128SFei.Feng@Sun.COM #define	USB_VENDOR_DLINK		0x2001	/* D-Link */
501*10128SFei.Feng@Sun.COM #define	USB_VENDOR_GIGASET		0x1690	/* Gigaset */
502*10128SFei.Feng@Sun.COM #define	USB_VENDOR_GLOBALSUN		0x16ab	/* Global Sun Technology */
503*10128SFei.Feng@Sun.COM #define	USB_VENDOR_IODATA		0x04bb	/* I/O Data */
504*10128SFei.Feng@Sun.COM #define	USB_VENDOR_MELCO		0x0411	/* Melco */
505*10128SFei.Feng@Sun.COM #define	USB_VENDOR_NETGEAR		0x0846	/* BayNETGEAR */
506*10128SFei.Feng@Sun.COM #define	USB_VENDOR_NETGEAR3		0x1385	/* Netgear */
507*10128SFei.Feng@Sun.COM #define	USB_VENDOR_PHILIPS		0x0471	/* Philips */
508*10128SFei.Feng@Sun.COM #define	USB_VENDOR_UMEDIA		0x157e	/* U-MEDIA Communications */
509*10128SFei.Feng@Sun.COM #define	USB_VENDOR_WISTRONNEWEB		0x1435	/* Wistron NeWeb */
510*10128SFei.Feng@Sun.COM #define	USB_VENDOR_ZCOM			0x0cde	/* Z-Com */
511*10128SFei.Feng@Sun.COM 
512*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ACCTON_SMCWUSBTG2		0x4506	/* SMCWUSBT-G2 */
513*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ACCTON_SMCWUSBTG2_NF	0x4507	/* SMCWUSBT-G2 */
514*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS_AR5523		0x0001	/* AR5523 */
515*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS_AR5523_NF		0x0002	/* AR5523 */
516*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS2_AR5523_1		0x0003	/* AR5523 */
517*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS2_AR5523_1_NF	0x0002	/* AR5523 */
518*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS2_AR5523_2		0x0005	/* AR5523 */
519*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS2_AR5523_2_NF	0x0004	/* AR5523 */
520*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS2_AR5523_3		0x0007	/* AR5523 */
521*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ATHEROS2_AR5523_3_NF	0x0006	/* AR5523 */
522*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_CONCEPTRONIC_AR5523_1	0x7801	/* AR5523 */
523*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_CONCEPTRONIC_AR5523_1_NF	0x7802	/* AR5523 */
524*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_CONCEPTRONIC_AR5523_2	0x7811	/* AR5523 */
525*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_CONCEPTRONIC_AR5523_2_NF	0x7812	/* AR5523 */
526*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_DLINK_DWLAG122		0x3a04	/* DWL-AG122 */
527*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_DLINK_DWLAG122_NF		0x3a05	/* DWL-AG122 */
528*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_DLINK_DWLAG132		0x3a00	/* DWL-AG132 */
529*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_DLINK_DWLAG132_NF		0x3a01	/* DWL-AG132 */
530*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_DLINK_DWLG132		0x3a02	/* DWL-G132 */
531*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_DLINK_DWLG132_NF		0x3a03	/* DWL-G132 */
532*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GIGASET_AR5523		0x0712	/* AR5523 */
533*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GIGASET_AR5523_NF		0x0713	/* AR5523 */
534*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GIGASET_SMCWUSBTG		0x0710	/* SMCWUSBT-G */
535*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GIGASET_SMCWUSBTG_NF	0x0711	/* SMCWUSBT-G */
536*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GLOBALSUN_AR5523_1		0x7801	/* AR5523 */
537*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GLOBALSUN_AR5523_1_NF	0x7802	/* AR5523 */
538*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GLOBALSUN_AR5523_2		0x7811	/* AR5523 */
539*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_GLOBALSUN_AR5523_2_NF	0x7812	/* AR5523 */
540*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_IODATA_USBWNG54US		0x0928	/* USB WN-G54/US */
541*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_IODATA_USBWNG54US_NF	0x0929	/* USB WN-G54/US */
542*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_MELCO_WLIU2KAMG54		0x0091	/* WLI-U2-KAMG54 */
543*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_MELCO_WLIU2KAMG54_NF	0x0092	/* WLI-U2-KAMG54 */
544*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_NETGEAR_WG111U		0x4300	/* WG111U */
545*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_NETGEAR_WG111U_NF		0x4301	/* WG111U */
546*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_NETGEAR3_WG111T		0x4252	/* WG111T */
547*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_NETGEAR3_WG111T_NF		0x4251	/* WG111T */
548*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_NETGEAR3_WPN111		0x5f00	/* WPN111 */
549*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_NETGEAR3_WPN111_NF		0x5f01	/* WPN111 */
550*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_PHILIPS_SNU6500		0x1232	/* SNU6500 */
551*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_PHILIPS_SNU6500_NF		0x1233	/* SNU6500 */
552*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_UMEDIA_AR5523_2		0x3205	/* AR5523 */
553*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_UMEDIA_AR5523_2_NF		0x3206	/* AR5523 */
554*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_UMEDIA_TEW444UBEU		0x3006	/* TEW-444UB EU */
555*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_UMEDIA_TEW444UBEU_NF	0x3007	/* TEW-444UB EU */
556*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_WISTRONNEWEB_AR5523_1	0x0826	/* AR5523 */
557*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_WISTRONNEWEB_AR5523_1_NF	0x0827	/* AR5523 */
558*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_WISTRONNEWEB_AR5523_2	0x082a	/* AR5523 */
559*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_WISTRONNEWEB_AR5523_2_NF	0x0829	/* AR5523 */
560*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ZCOM_AR5523			0x0012	/* AR5523 */
561*10128SFei.Feng@Sun.COM #define	USB_PRODUCT_ZCOM_AR5523_NF		0x0013	/* AR5523 */
562*10128SFei.Feng@Sun.COM 
563*10128SFei.Feng@Sun.COM #ifdef __cplusplus
564*10128SFei.Feng@Sun.COM }
565*10128SFei.Feng@Sun.COM #endif
566*10128SFei.Feng@Sun.COM 
567*10128SFei.Feng@Sun.COM #endif /* _UATH_REG_H */
568