Staging: rt28x0: remove typedefs (part one)
[firewire-audio.git] / drivers / staging / rt2860 / rtusb_io.h
blob547f6ab4ef32e7eed1fb10a9a8e28df7ae1ff1c0
1 /*
2 *************************************************************************
3 * Ralink Tech Inc.
4 * 5F., No.36, Taiyuan St., Jhubei City,
5 * Hsinchu County 302,
6 * Taiwan, R.O.C.
8 * (c) Copyright 2002-2007, Ralink Technology, Inc.
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 * This program is distributed in the hope that it will be useful, *
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
18 * GNU General Public License for more details. *
19 * *
20 * You should have received a copy of the GNU General Public License *
21 * along with this program; if not, write to the *
22 * Free Software Foundation, Inc., *
23 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
24 * *
25 *************************************************************************
28 #ifndef __RTUSB_IO_H__
29 #define __RTUSB_IO_H__
31 #include "rtmp_type.h"
33 /* New for MeetingHouse Api support */
34 #define CMDTHREAD_VENDOR_RESET 0x0D730101 /* cmd */
35 #define CMDTHREAD_VENDOR_UNPLUG 0x0D730102 /* cmd */
36 #define CMDTHREAD_VENDOR_SWITCH_FUNCTION 0x0D730103 /* cmd */
37 #define CMDTHREAD_MULTI_WRITE_MAC 0x0D730107 /* cmd */
38 #define CMDTHREAD_MULTI_READ_MAC 0x0D730108 /* cmd */
39 #define CMDTHREAD_VENDOR_EEPROM_WRITE 0x0D73010A /* cmd */
40 #define CMDTHREAD_VENDOR_EEPROM_READ 0x0D73010B /* cmd */
41 #define CMDTHREAD_VENDOR_ENTER_TESTMODE 0x0D73010C /* cmd */
42 #define CMDTHREAD_VENDOR_EXIT_TESTMODE 0x0D73010D /* cmd */
43 #define CMDTHREAD_VENDOR_WRITE_BBP 0x0D730119 /* cmd */
44 #define CMDTHREAD_VENDOR_READ_BBP 0x0D730118 /* cmd */
45 #define CMDTHREAD_VENDOR_WRITE_RF 0x0D73011A /* cmd */
46 #define CMDTHREAD_VENDOR_FLIP_IQ 0x0D73011D /* cmd */
47 #define CMDTHREAD_RESET_BULK_OUT 0x0D730210 /* cmd */
48 #define CMDTHREAD_RESET_BULK_IN 0x0D730211 /* cmd */
49 #define CMDTHREAD_SET_PSM_BIT 0x0D730212 /* cmd */
50 #define CMDTHREAD_SET_RADIO 0x0D730214 /* cmd */
51 #define CMDTHREAD_UPDATE_TX_RATE 0x0D730216 /* cmd */
52 #define CMDTHREAD_802_11_ADD_KEY_WEP 0x0D730218 /* cmd */
53 #define CMDTHREAD_RESET_FROM_ERROR 0x0D73021A /* cmd */
54 #define CMDTHREAD_LINK_DOWN 0x0D73021B /* cmd */
55 #define CMDTHREAD_RESET_FROM_NDIS 0x0D73021C /* cmd */
56 #define CMDTHREAD_CHECK_GPIO 0x0D730215 /* cmd */
57 #define CMDTHREAD_FORCE_WAKE_UP 0x0D730222 /* cmd */
58 #define CMDTHREAD_SET_BW 0x0D730225 /* cmd */
59 #define CMDTHREAD_SET_ASIC_WCID 0x0D730226 /* cmd */
60 #define CMDTHREAD_SET_ASIC_WCID_CIPHER 0x0D730227 /* cmd */
61 #define CMDTHREAD_QKERIODIC_EXECUT 0x0D73023D /* cmd */
62 #define RT_CMD_SET_KEY_TABLE 0x0D730228 /* cmd */
63 #define RT_CMD_SET_RX_WCID_TABLE 0x0D730229 /* cmd */
64 #define CMDTHREAD_SET_CLIENT_MAC_ENTRY 0x0D73023E /* cmd */
65 #define CMDTHREAD_SET_GROUP_KEY 0x0D73023F /* cmd */
66 #define CMDTHREAD_SET_PAIRWISE_KEY 0x0D730240 /* cmd */
68 #define CMDTHREAD_802_11_QUERY_HARDWARE_REGISTER 0x0D710105 /* cmd */
69 #define CMDTHREAD_802_11_SET_PHY_MODE 0x0D79010C /* cmd */
70 #define CMDTHREAD_802_11_SET_STA_CONFIG 0x0D790111 /* cmd */
71 #define CMDTHREAD_802_11_SET_PREAMBLE 0x0D790101 /* cmd */
72 #define CMDTHREAD_802_11_COUNTER_MEASURE 0x0D790102 /* cmd */
73 /* add by johnli, fix "in_interrupt" error when call "MacTableDeleteEntry" in Rx tasklet */
74 #define CMDTHREAD_UPDATE_PROTECT 0x0D790103 /* cmd */
75 /* end johnli */
77 /*CMDTHREAD_MULTI_READ_MAC */
78 /*CMDTHREAD_MULTI_WRITE_MAC */
79 /*CMDTHREAD_VENDOR_EEPROM_READ */
80 /*CMDTHREAD_VENDOR_EEPROM_WRITE */
81 typedef struct _CMDHandler_TLV {
82 u16 Offset;
83 u16 Length;
84 u8 DataFirst;
85 } CMDHandler_TLV, *PCMDHandler_TLV;
87 typedef struct _CmdQElmt {
88 u32 command;
89 void *buffer;
90 unsigned long bufferlength;
91 BOOLEAN CmdFromNdis;
92 BOOLEAN SetOperation;
93 struct _CmdQElmt *next;
94 } CmdQElmt, *PCmdQElmt;
96 typedef struct _CmdQ {
97 u32 size;
98 CmdQElmt *head;
99 CmdQElmt *tail;
100 u32 CmdQState;
101 } CmdQ, *PCmdQ;
103 #define EnqueueCmd(cmdq, cmdqelmt) \
105 if (cmdq->size == 0) \
106 cmdq->head = cmdqelmt; \
107 else \
108 cmdq->tail->next = cmdqelmt; \
109 cmdq->tail = cmdqelmt; \
110 cmdqelmt->next = NULL; \
111 cmdq->size++; \
114 /******************************************************************************
116 USB Cmd to ASIC Related MACRO
118 ******************************************************************************/
119 /* reset MAC of a station entry to 0xFFFFFFFFFFFF */
120 #define RTMP_STA_ENTRY_MAC_RESET(pAd, Wcid) \
121 { RT_SET_ASIC_WCID SetAsicWcid; \
122 SetAsicWcid.WCID = Wcid; \
123 SetAsicWcid.SetTid = 0xffffffff; \
124 SetAsicWcid.DeleteTid = 0xffffffff; \
125 RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_SET_ASIC_WCID, \
126 &SetAsicWcid, sizeof(RT_SET_ASIC_WCID)); }
128 /* add this entry into ASIC RX WCID search table */
129 #define RTMP_STA_ENTRY_ADD(pAd, pEntry) \
130 RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_SET_CLIENT_MAC_ENTRY, \
131 pEntry, sizeof(MAC_TABLE_ENTRY));
133 /* add by johnli, fix "in_interrupt" error when call "MacTableDeleteEntry" in Rx tasklet */
134 /* Set MAC register value according operation mode */
135 #define RTMP_UPDATE_PROTECT(pAd) \
136 RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_UPDATE_PROTECT, NULL, 0);
137 /* end johnli */
139 /* remove Pair-wise key material from ASIC */
140 /* yet implement */
141 #define RTMP_STA_ENTRY_KEY_DEL(pAd, BssIdx, Wcid)
143 /* add Client security information into ASIC WCID table and IVEIV table */
144 #define RTMP_STA_SECURITY_INFO_ADD(pAd, apidx, KeyID, pEntry) \
145 { RTMP_STA_ENTRY_MAC_RESET(pAd, pEntry->Aid); \
146 if (pEntry->Aid >= 1) { \
147 RT_SET_ASIC_WCID_ATTRI SetAsicWcidAttri; \
148 SetAsicWcidAttri.WCID = pEntry->Aid; \
149 if ((pEntry->AuthMode <= Ndis802_11AuthModeAutoSwitch) && \
150 (pEntry->WepStatus == Ndis802_11Encryption1Enabled)) \
152 SetAsicWcidAttri.Cipher = pAd->SharedKey[apidx][KeyID].CipherAlg; \
154 else if (pEntry->AuthMode == Ndis802_11AuthModeWPANone) \
156 SetAsicWcidAttri.Cipher = pAd->SharedKey[apidx][KeyID].CipherAlg; \
158 else SetAsicWcidAttri.Cipher = 0; \
159 DBGPRINT(RT_DEBUG_TRACE, ("aid cipher = %ld\n",SetAsicWcidAttri.Cipher)); \
160 RTUSBEnqueueInternalCmd(pAd, CMDTHREAD_SET_ASIC_WCID_CIPHER, \
161 &SetAsicWcidAttri, sizeof(RT_SET_ASIC_WCID_ATTRI)); } }
163 /* Insert the BA bitmap to ASIC for the Wcid entry */
164 #define RTMP_ADD_BA_SESSION_TO_ASIC(_pAd, _Aid, _TID) \
165 do{ \
166 RT_SET_ASIC_WCID SetAsicWcid; \
167 SetAsicWcid.WCID = (_Aid); \
168 SetAsicWcid.SetTid = (0x10000<<(_TID)); \
169 SetAsicWcid.DeleteTid = 0xffffffff; \
170 RTUSBEnqueueInternalCmd((_pAd), CMDTHREAD_SET_ASIC_WCID, &SetAsicWcid, sizeof(RT_SET_ASIC_WCID)); \
171 }while(0)
173 /* Remove the BA bitmap from ASIC for the Wcid entry */
174 #define RTMP_DEL_BA_SESSION_FROM_ASIC(_pAd, _Wcid, _TID) \
175 do{ \
176 RT_SET_ASIC_WCID SetAsicWcid; \
177 SetAsicWcid.WCID = (_Wcid); \
178 SetAsicWcid.SetTid = (0xffffffff); \
179 SetAsicWcid.DeleteTid = (0x10000<<(_TID) ); \
180 RTUSBEnqueueInternalCmd((_pAd), CMDTHREAD_SET_ASIC_WCID, &SetAsicWcid, sizeof(RT_SET_ASIC_WCID)); \
181 }while(0)
183 #endif /* __RTUSB_IO_H__ // */