• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *************************************************************************
3  * Ralink Tech Inc.
4  * 5F., No.36, Taiyuan St., Jhubei City,
5  * Hsinchu County 302,
6  * Taiwan, R.O.C.
7  *
8  * (c) Copyright 2002-2007, Ralink Technology, Inc.
9  *
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  *************************************************************************
26  */
27 
28 #ifndef __ATE_H__
29 #define __ATE_H__
30 
31 #ifndef UCOS
32 #define ate_print printk
33 #define ATEDBGPRINT DBGPRINT
34 
35 #ifdef RT2870
36 #define EEPROM_SIZE								0x400
37 #ifdef CONFIG_STA_SUPPORT
38 #define EEPROM_BIN_FILE_NAME  "/etc/Wireless/RT2870STA/e2p.bin"
39 #endif // CONFIG_STA_SUPPORT //
40 #endif // RT2870 //
41 #else // !UCOS //
42 #define fATE_LOAD_EEPROM						0x0C43
43 #ifdef CONFIG_PRINTK
44 extern INT ConsoleResponse(IN PUCHAR buff);
45 extern int (*remote_display)(char *);
46 extern void puts (const char *s);
47 
48 /* specificly defined to redirect and show ate-related messages to host. */
49 /* Try to define ate_print as a macro. */
50 #define ate_print(fmt, args...)                 \
51 do{   int (*org_remote_display)(char *) = NULL;   \
52 	org_remote_display = remote_display;\
53 	/* Save original "remote_display" */\
54 	remote_display = (int (*)(char *))ConsoleResponse;           \
55 	printk(fmt, ## args);                       \
56 	/* Restore the remote_display function pointer */        \
57 	remote_display = org_remote_display; }while(0)
58 
59 #define ATEDBGPRINT(Level, Fmt)    	\
60 {                                   \
61     if ((Level) <= RTDebugLevel)      \
62     {                               \
63         ate_print Fmt;					\
64     }                               \
65 }
66 #endif // CONFIG_PRINTK //
67 #endif // !UCOS //
68 
69 #define ATE_ON(_p)              (((_p)->ate.Mode) != ATE_STOP)
70 
71 /* RT2880_iNIC will define "RT2860". */
72 
73 /* RT2880_iNIC will define RT2860. */
74 
75 #ifdef RT2870
76 #define EEPROM_SIZE								0x400
77 #ifdef CONFIG_STA_SUPPORT
78 #define EEPROM_BIN_FILE_NAME  "/etc/Wireless/RT2870STA/e2p.bin"
79 #endif // CONFIG_STA_SUPPORT //
80 #endif // RT2870 //
81 
82 #ifdef RT2870
83 #define ATE_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV)    RTMP_BBP_IO_READ8_BY_REG_ID(_A, _I, _pV)
84 #define ATE_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V)    RTMP_BBP_IO_WRITE8_BY_REG_ID(_A, _I, _V)
85 
86 #define BULK_OUT_LOCK(pLock, IrqFlags)	\
87 		if(1 /*!(in_interrupt() & 0xffff0000)*/)	\
88 			RTMP_IRQ_LOCK((pLock), IrqFlags);
89 
90 #define BULK_OUT_UNLOCK(pLock, IrqFlags)	\
91 		if(1 /*!(in_interrupt() & 0xffff0000)*/)	\
92 			RTMP_IRQ_UNLOCK((pLock), IrqFlags);
93 
94 // Prototypes of completion funuc.
95 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
96 #define ATE_RTUSBBulkOutDataPacketComplete(purb, pt_regs)    ATE_RTUSBBulkOutDataPacketComplete(purb)
97 #endif
98 
99 VOID ATE_RTUSBBulkOutDataPacketComplete(
100 	IN purbb_t purb,
101 	OUT struct pt_regs *pt_regs);
102 
103 VOID ATE_RTUSBBulkOutDataPacket(
104 	IN	PRTMP_ADAPTER	pAd,
105 	IN	UCHAR			BulkOutPipeId);
106 
107 VOID ATE_RTUSBCancelPendingBulkInIRP(
108 	IN	PRTMP_ADAPTER	pAd);
109 #endif // RT2870 //
110 
111 VOID rt_ee_read_all(
112 	IN  PRTMP_ADAPTER   pAd,
113 	OUT USHORT *Data);
114 
115 
116 VOID rt_ee_write_all(
117 	IN  PRTMP_ADAPTER   pAd,
118 	IN  USHORT *Data);
119 
120 INT Set_ATE_Proc(
121 	IN	PRTMP_ADAPTER	pAd,
122 	IN	PUCHAR			arg);
123 
124 INT	Set_ATE_DA_Proc(
125 	IN	PRTMP_ADAPTER	pAd,
126 	IN	PUCHAR			arg);
127 
128 INT	Set_ATE_SA_Proc(
129 	IN	PRTMP_ADAPTER	pAd,
130 	IN	PUCHAR			arg);
131 
132 INT	Set_ATE_BSSID_Proc(
133 	IN	PRTMP_ADAPTER	pAd,
134 	IN	PUCHAR			arg);
135 
136 INT	Set_ATE_CHANNEL_Proc(
137 	IN	PRTMP_ADAPTER	pAd,
138 	IN	PUCHAR			arg);
139 
140 INT	Set_ATE_TX_POWER0_Proc(
141 	IN	PRTMP_ADAPTER	pAd,
142 	IN	PUCHAR			arg);
143 
144 INT	Set_ATE_TX_POWER1_Proc(
145 	IN	PRTMP_ADAPTER	pAd,
146 	IN	PUCHAR			arg);
147 
148 INT	Set_ATE_TX_Antenna_Proc(
149 	IN	PRTMP_ADAPTER	pAd,
150 	IN	PUCHAR			arg);
151 
152 INT	Set_ATE_RX_Antenna_Proc(
153 	IN	PRTMP_ADAPTER	pAd,
154 	IN	PUCHAR			arg);
155 
156 INT	Set_ATE_TX_FREQOFFSET_Proc(
157 	IN	PRTMP_ADAPTER	pAd,
158 	IN	PUCHAR			arg);
159 
160 INT	Set_ATE_TX_BW_Proc(
161 	IN	PRTMP_ADAPTER	pAd,
162 	IN	PUCHAR			arg);
163 
164 INT	Set_ATE_TX_LENGTH_Proc(
165 	IN	PRTMP_ADAPTER	pAd,
166 	IN	PUCHAR			arg);
167 
168 INT	Set_ATE_TX_COUNT_Proc(
169 	IN	PRTMP_ADAPTER	pAd,
170 	IN	PUCHAR			arg);
171 
172 INT	Set_ATE_TX_MCS_Proc(
173 	IN	PRTMP_ADAPTER	pAd,
174 	IN	PUCHAR			arg);
175 
176 INT	Set_ATE_TX_MODE_Proc(
177 	IN	PRTMP_ADAPTER	pAd,
178 	IN	PUCHAR			arg);
179 
180 INT	Set_ATE_TX_GI_Proc(
181 	IN	PRTMP_ADAPTER	pAd,
182 	IN	PUCHAR			arg);
183 
184 
185 INT	Set_ATE_RX_FER_Proc(
186 	IN	PRTMP_ADAPTER	pAd,
187 	IN	PUCHAR			arg);
188 
189 INT Set_ATE_Read_RF_Proc(
190 	IN	PRTMP_ADAPTER	pAd,
191 	IN	PUCHAR			arg);
192 
193 INT Set_ATE_Write_RF1_Proc(
194 	IN	PRTMP_ADAPTER	pAd,
195 	IN	PUCHAR			arg);
196 
197 INT Set_ATE_Write_RF2_Proc(
198 	IN	PRTMP_ADAPTER	pAd,
199 	IN	PUCHAR			arg);
200 
201 INT Set_ATE_Write_RF3_Proc(
202 	IN	PRTMP_ADAPTER	pAd,
203 	IN	PUCHAR			arg);
204 
205 INT Set_ATE_Write_RF4_Proc(
206 	IN	PRTMP_ADAPTER	pAd,
207 	IN	PUCHAR			arg);
208 
209 INT Set_ATE_Load_E2P_Proc(
210 	IN	PRTMP_ADAPTER	pAd,
211 	IN	PUCHAR			arg);
212 
213 INT Set_ATE_Read_E2P_Proc(
214 	IN	PRTMP_ADAPTER	pAd,
215 	IN	PUCHAR			arg);
216 
217 INT	Set_ATE_Show_Proc(
218 	IN	PRTMP_ADAPTER	pAd,
219 	IN	PUCHAR			arg);
220 
221 INT	Set_ATE_Help_Proc(
222 	IN	PRTMP_ADAPTER	pAd,
223 	IN	PUCHAR			arg);
224 
225 #ifdef RALINK_ATE
226 #ifdef RALINK_28xx_QA
227 VOID ATE_QA_Statistics(
228 	IN PRTMP_ADAPTER		pAd,
229 	IN PRXWI_STRUC			pRxWI,
230 	IN PRT28XX_RXD_STRUC    p28xxRxD,
231 	IN PHEADER_802_11		pHeader);
232 
233 VOID RtmpDoAte(
234 	IN	PRTMP_ADAPTER	pAdapter,
235 	IN	struct iwreq	*wrq);
236 
237 VOID BubbleSort(
238 	IN  INT32 n,
239 	IN  INT32 a[]);
240 
241 VOID CalNoiseLevel(
242 	IN  PRTMP_ADAPTER   pAdapter,
243 	IN  UCHAR           channel,
244 	OUT INT32           buffer[3][10]);
245 
246 BOOLEAN SyncTxRxConfig(
247 	IN	PRTMP_ADAPTER	pAdapter,
248 	IN	USHORT			offset,
249 	IN	UCHAR			value);
250 
251 #if 0
252 INT Set_TxStart_Proc(
253 	IN	PRTMP_ADAPTER	pAd,
254 	IN	PUCHAR			arg);
255 #endif  // 0 //
256 
257 INT Set_TxStop_Proc(
258 	IN	PRTMP_ADAPTER	pAd,
259 	IN	PUCHAR			arg);
260 
261 INT Set_RxStop_Proc(
262 	IN	PRTMP_ADAPTER	pAd,
263 	IN	PUCHAR			arg);
264 
265 #if 0
266 INT Set_EERead_Proc(
267 	IN	PRTMP_ADAPTER	pAd,
268 	IN	PUCHAR			arg);
269 
270 INT Set_EEWrite_Proc(
271 	IN	PRTMP_ADAPTER	pAd,
272 	IN	PUCHAR			arg);
273 
274 INT Set_BBPRead_Proc(
275 	IN	PRTMP_ADAPTER	pAd,
276 	IN	PUCHAR			arg);
277 
278 INT Set_BBPWrite_Proc(
279 	IN	PRTMP_ADAPTER	pAd,
280 	IN	PUCHAR			arg);
281 
282 INT Set_RFWrite_Proc(
283 	IN	PRTMP_ADAPTER	pAd,
284 	IN	PUCHAR			arg);
285 #endif // end of #if 0 //
286 #endif // RALINK_28xx_QA //
287 #endif // RALINK_ATE //
288 
289 VOID ATEAsicSwitchChannel(
290 	IN PRTMP_ADAPTER pAd);
291 
292 VOID ATEAsicAdjustTxPower(
293 	IN PRTMP_ADAPTER pAd);
294 
295 VOID ATEDisableAsicProtect(
296 	IN		PRTMP_ADAPTER	pAd);
297 
298 CHAR ATEConvertToRssi(
299 	IN PRTMP_ADAPTER  pAd,
300 	IN CHAR				Rssi,
301 	IN UCHAR    RssiNumber);
302 
303 VOID ATESampleRssi(
304 	IN PRTMP_ADAPTER	pAd,
305 	IN PRXWI_STRUC		pRxWI);
306 
307 
308 #ifdef CONFIG_STA_SUPPORT
309 VOID RTMPStationStop(
310     IN  PRTMP_ADAPTER   pAd);
311 
312 VOID RTMPStationStart(
313     IN  PRTMP_ADAPTER   pAd);
314 #endif // CONFIG_STA_SUPPORT //
315 #endif // __ATE_H__ //
316